VERSÃO ATUAL: 2.0

INTRODUÇÃO

ÚLTIMAS ATUALIZAÇÕES DO AZPAY

[31/07/2016] - Checkout transparente 
[10/07/2016] - Aceitação de uso de JSON 
[18/04/2016] - Integração com BIN (First Data)
[13/03/2016] - Integração com Global Payments
[25/02/2016] - Integração com Pagcoin (Bitcoin)
[15/01/2016] - ClearSale - Integração com "Start"
[11/12/2015] - TokenCard - Gerar e pesquisar
[05/06/2015] - Snapcard (moedas digitais)
[07/05/2015] - Integração com Stone Pagamentos

ATENDIMENTO & SUPORTE

Azpay Soluções para pagamentos Ltda.

E-mail                 azpay@azpay.com.br
Website                azpay.com.br

<SUPORTE>
  E-mail               atendimento@azpay.com.br


Atendimento de segunda a sexta das 9h as 18hs.

Seja bem-vindo a documentação da API do gateway de pagamento AZPAY! Você pode usar nossa API para acessar nossos recursos, é a maneira mais fácil de integrar a sua aplicação com nosso gateway de pagamento!

Este método de comunicação oferece maior flexibilidade para realizar pagamentos através das operadoras mas exige um maior conhecimento técnico de linguagem de programação.

A forma de fazer a requisição à API de Pagamentos é informar os dados do pagamento no formato XML ou JSON, esta forma pode ser mais interessante se você já trabalha com XML em seu sistema e prefere estruturar os dados do pagamento neste formato.

Uma vantagem de utilizar o formato XML ou JSON é informar os itens do pagamento de forma mais estruturada, cada item é informado dentro de uma tag.

Vamos começar!

Público alvo

As informacões deste guia são destinadas aos desenvolvedores, analistas programadores e público em geral interessado em aprender como se integrar ao Gateway de pagamento e-Commerce. Serão abordados assuntos técnicos e de negócios que visam facilitar o entendimento da solução para receber pagamentos online.

Pré-requisitos técnicos

O sistema de integração com o AZPAY é bastante simples, exigindo um grau intermediário em linguagem de programação, requisitos como HTTP/HTTPS e maninupalação de arquivos XML / JSON, são necessários para realizar a integração.

Suporte Técnico

O suporte técnico pode ser atendido pelo canal atendimento@azpay.com.br. Mais informações em AZPAY.COM.BR

GITHUB - SCRIPTS DE APOIO

O AZPay mantem um canal no GitHub onde é possível encontrar plugins para facilitar ainda mais a integração. https://github.com/AZPay.

Operadoras suportadas

Operadoras Produtos Operacões
BIN Visa, Mastercard, Sorocred e Cabal Crédito à vista, Crédito Parcelado e Débito.
Cielo Visa, Mastercard, Amex, Elo, Diners, Discover, JCB e Aura Crédito à vista, Crédito Parcelado Loja, Crédito Parcelado Loja e Débito.
Gloabal Payments Visa e Mastercard Crédito à vista, Crédito Parcelado Loja, Crédito Parcelado Loja e Débito.
Elavon Visa, Mastercard, Discover e Diners Crédito à vista, Crédito Parcelado Loja, Crédito Parcelado Loja.
Redecard Visa, Mastercard, Diners e Hipercard Crédito à vista, Crédito Parcelado Loja e Crédito Parcelado Loja.
Stone Visa e Mastercard Crédito à vista, Crédito Parcelado Loja e Débito.
Snapcard Bitcoin, Litecoin e Dogecoin Criptomoeda e pagamentos eletrônicos.
Pagcoin Bitcoin Criptomoeda e pagamentos eletrônicos.

Painel de Controle

O painel de controle do AZPAY é uma interface gráfica que ajuda na configuração dos dados do lojista para transacionar os pagamentos utilizando o gateway.

Endereço do painel de controle

https://painel.azpay.com.br

Dados de acesso

Ao contratar o serviço será disponibilizado os dados de acesso, login e senha.

XML - Primeiros passos

Autenticação

Exemplo de configuração de autenticação no XML/JSON

<transaction-request>
... (nós acima estão ocultos)
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
</transaction-request>
... (nós abaixo estão ocultos)
{
  "...": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    }
  }

Para transacionar pelo gateway de pagamento AZPAY precisa ser informado o merchantIde o merchantKey

TAG Descrição
merchantId Identificação do cliente, fornecido ao contratar o serviço. Este valor é único para cada conta.
merchantKey Token de acesso à API, fornecido dentro do painel de controle painel.azpay.com.br. Pode ser alterado a qualquer momento. O merchantKey é forma segura de validar os XML’s que estão transacionando utilizando sua conta.

Enviando o xml

Exemplo de envio do XML para o AZPAY usando PHP e a biblioteca cURL.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.azpay.com.br/v1/receiver/");
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"SEU_XML_STRING_AQUI" );
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec ($ch);
?>

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/receiver/

XML Schema

A validação inicialmente é feita através de XML Schema Definition (XSD).

CARTÕES DE CRÉDITO

Autorizar

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Exemplo de como fazer uma transação de autorização:

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <authorize>
    <order>
      <reference>123456789</reference>
      <totalAmount>50000</totalAmount>
    </order>
    <payment>
      <acquirer>1</acquirer>
      <method>1</method>
      <amount>50000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <numberOfPayments>1</numberOfPayments>
      <groupNumber>0</groupNumber>
      <flag>mastercard</flag>
      <cardHolder>Jose da Silva</cardHolder>
      <cardNumber>5453010000066167</cardNumber>
      <cardSecurityCode>123</cardSecurityCode>
      <cardExpirationDate>201805</cardExpirationDate>
      <saveCreditCard>true</saveCreditCard>
      <generateToken>false</generateToken>
      <departureTax>0</departureTax>
      <softDescriptor></softDescriptor>
    </payment>
    <billing>
      <customerIdentity>1</customerIdentity>
      <name>Fulano de Tal</name>
      <address>Av. Federativa, 230</address>
      <address2>10 Andar</address2>
      <city>Mogi das Cruzes</city>
      <state>SP</state>
      <postalCode>20031170</postalCode>
      <country>BR</country>
      <phone>1147770000</phone>
      <email>fulanodetal@email.com</email>
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <fraud>false</fraud>
    <customField/>
  </authorize>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "authorize": {
      "order": {
        "reference": "123456789",
        "totalAmount": "50000"
      },
      "payment": {
        "acquirer": "1",
        "method": "1",
        "amount": "50000",
        "currency": "986",
        "country": "BRA",
        "numberOfPayments": "1",
        "groupNumber": "0",
        "flag": "mastercard",
        "cardHolder": "Jose da Silva",
        "cardNumber": "5453010000066167",
        "cardSecurityCode": "123",
        "cardExpirationDate": "201805",
        "saveCreditCard": "true",
        "generateToken": "false",
        "departureTax": "0"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Av. Federativa, 230",
        "address2": "10 Andar",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "http://loja.exemplo.com.br",
      "fraud": "false"
    }
  }
}

Transação de autorização com 2 cartões.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    ...
  </verification>
  <authorize>
    <order>
      <reference>123456789</reference>
      <totalAmount>50000</totalAmount>
    </order>
    <payment>
      <acquirer>1</acquirer>
      <method>1</method>
      <amount>40000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <numberOfPayments>1</numberOfPayments>
      <groupNumber>0</groupNumber>
      <flag>mastercard</flag>
      <cardHolder>Jose da Silva</cardHolder>
      <cardNumber>5453010000066167</cardNumber>
      <cardSecurityCode>123</cardSecurityCode>
      <cardExpirationDate>201805</cardExpirationDate>
      <saveCreditCard>true</saveCreditCard>
      <generateToken>false</generateToken>
      <departureTax>0</departureTax>
      <softDescriptor></softDescriptor>
    </payment>
    <payment>
      <acquirer>2</acquirer>
      <method>1</method>
      <amount>10000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <numberOfPayments>1</numberOfPayments>
      <groupNumber>0</groupNumber>
      <flag>mastercard</flag>
      <cardHolder>Jose da Silva</cardHolder>
      <cardNumber>5453010000066168</cardNumber>
      <cardSecurityCode>123</cardSecurityCode>
      <cardExpirationDate>201805</cardExpirationDate>
      <saveCreditCard>true</saveCreditCard>
      <generateToken>false</generateToken>
      <departureTax>0</departureTax>
      <softDescriptor></softDescriptor>
    </payment>
    <billing>
        ...
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <fraud>false</fraud>
    <customField/>
  </authorize>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": "
    ...
  ",
    "authorize": {
      "order": {
        "reference": "123456789",
        "totalAmount": "50000"
      },
      "payment": [
        {
          "acquirer": "1",
          "method": "1",
          "amount": "40000",
          "currency": "986",
          "country": "BRA",
          "numberOfPayments": "1",
          "groupNumber": "0",
          "flag": "mastercard",
          "cardHolder": "Jose da Silva",
          "cardNumber": "5453010000066167",
          "cardSecurityCode": "123",
          "cardExpirationDate": "201805",
          "saveCreditCard": "true",
          "generateToken": "false",
          "departureTax": "0"
        },
        {
          "acquirer": "2",
          "method": "1",
          "amount": "10000",
          "currency": "986",
          "country": "BRA",
          "numberOfPayments": "1",
          "groupNumber": "0",
          "flag": "mastercard",
          "cardHolder": "Jose da Silva",
          "cardNumber": "5453010000066168",
          "cardSecurityCode": "123",
          "cardExpirationDate": "201805",
          "saveCreditCard": "true",
          "generateToken": "false",
          "departureTax": "0"
        }
      ],
      "billing": "
        ...
    ",
      "urlReturn": "http://loja.exemplo.com.br",
      "fraud": "false"
    }
  }
}

Caso um dos cartões não autorize a transação no cartão anterior será automaticamente cancelada.

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/receiver/

A requisição de autorização é a principal operação do AZPAY, pois é através dela que uma venda pode ser concretizada e finalizar o processo de venda. A autorização possui uma série de configurações que podem ser customizadas, além de funcionalidades que agregam valor ao lojista e seus consumidores.

Características:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
method O [1…9] ID de identificação da operação, verificar tabela de operações.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
numberOfPayments O [1…2] Número de parcelas. Para crédito à vista ou débito, utilizar “1”.
groupNumber O [0…0] Verificar
flag O [0…0] Nome da bandeira (minúsculo):
“visa” “mastercard” “diners” “discover” “elo” “amex” “jcb” “aura”.
cardHolder O [1..25] Nome impresso no cartão
cardNumber O [12…19] Número do cartão de crédito
cardSecurityCode O [3…4] Número do código de segurança
cardExpirationDate O [0…0] Validade do cartão no formato aaaamm. Exemplo: 201412 (dez/2014).
saveCreditCard O [true ou false] Permitir salvar o cartão truncado na base para consulta.
generateToken O [true ou false] Gerar token de acesso.
departureTax N [1…10] Taxa de embarque (verificar disponibilidade)
softDescriptor N [1…13] Descrição na fatura do cartão de crédito (verificar disponibilidade)
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
fraud N [true ou false] Sistema de anti-fraude (verificar disponibilidade)
customField N [0…255] Campos para uso diverso
Legenda Descrição
N Não-obrigatório
O Dado obrigatório

Resposta da Autorização

Resposta da transação de autorização após o XML ser submetido para o AZPAY via POST.

Exemplo de uma resposta de transação de autorização

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>738ED5E0-5248-6587-A338-EB017D21DD98</transactionId>
    <operationId>1</operationId>
    <status>3</status>
    <message>AUTHORIZED</message>
    <log>logs/2014/05/20/1517.log</log>
    <errorCode />
    <order>
        <reference>123456789</reference>
        <currency>986</currency>
        <totalAmount>50000</totalAmount>
        <dateTime>2014-05-20T19:14:24.061-03:00</dateTime>
    </order>
    <processor>
        <flag>mastercard</flag>
        <amount>50000</amount>
        <numberOfPayments>1</numberOfPayments>
        <acquirer>CIELO</acquirer>
        <acquirerId>1</acquirerId>
        <urlAuthentication />
        <code>4</code>
        <message>Transação autorizada</message>
        <lr>00</lr>
        <nsu>209454</nsu>
        <tid>100699306912746E1001</tid>
        <pan>b1SQ6jpKCDt3n9C0dgD/ZkPQ1Bh+7aJESqr/CwP64P0=</pan>
        <eci>0</eci>
        <statusCode>4</statusCode>
        <avsResponseCode />
        <tokenCard>d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4</tokenCard>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "738ED5E0-5248-6587-A338-EB017D21DD98",
    "operationId": "1",
    "status": "3",
    "message": "AUTHORIZED",
    "log": "logs/2014/05/20/1517.log",
    "order": {
      "reference": "123456789",
      "currency": "986",
      "totalAmount": "50000",
      "dateTime": "2014-05-20T19:14:24.061-03:00"
    },
    "processor": {
      "flag": "mastercard",
      "amount": "50000",
      "numberOfPayments": "1",
      "acquirer": "CIELO",
      "acquirerId": "1",
      "code": "4",
      "message": "Transação autorizada",
      "lr": "00",
      "nsu": "209454",
      "tid": "100699306912746E1001",
      "pan": "b1SQ6jpKCDt3n9C0dgD/ZkPQ1Bh+7aJESqr/CwP64P0=",
      "eci": "0",
      "statusCode": "4",
      "tokenCard": "d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4"
    }
  }
}
TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
processor Contem um bloco de informações geradas pela operadora utilizada.
tokenCard Token que subistitui o envio do cartão de crédito em uma nova transação

Venda Direta

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Exemplo de como fazer uma transação de Venda Direta:

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <sale>
    <order>
      <reference>123456789</reference>
      <totalAmount>50000</totalAmount>
    </order>
    <payment>
      <acquirer>1</acquirer>
      <method>1</method>
      <amount>10000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <numberOfPayments>1</numberOfPayments>
      <groupNumber>0</groupNumber>
      <flag>mastercard</flag>
      <cardHolder>Jose da Silva</cardHolder>
      <cardNumber>5453010000066167</cardNumber>
      <cardSecurityCode>123</cardSecurityCode>
      <cardExpirationDate>201805</cardExpirationDate>
      <saveCreditCard>true</saveCreditCard>
      <generateToken>false</generateToken>
      <departureTax>0</departureTax>
      <softDescriptor></softDescriptor>
    </payment>
    <billing>
      <customerIdentity>1</customerIdentity>
      <name>Fulano de Tal</name>
      <address>Av. Federativa, 230</address>
      <address2>10 Andar</address2>
      <city>Mogi das Cruzes</city>
      <state>SP</state>
      <postalCode>20031170</postalCode>
      <country>BR</country>
      <phone>1147770000</phone>
      <email>fulanodetal@email.com</email>
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <fraud>false</fraud>
    <customField/>
  </sale>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "sale": {
      "order": {
        "reference": "123456789",
        "totalAmount": "50000"
      },
      "payment": {
        "acquirer": "1",
        "method": "1",
        "amount": "10000",
        "currency": "986",
        "country": "BRA",
        "numberOfPayments": "1",
        "groupNumber": "0",
        "flag": "mastercard",
        "cardHolder": "Jose da Silva",
        "cardNumber": "5453010000066167",
        "cardSecurityCode": "123",
        "cardExpirationDate": "201805",
        "saveCreditCard": "true",
        "generateToken": "false",
        "departureTax": "0"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Av. Federativa, 230",
        "address2": "10 Andar",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "http://loja.exemplo.com.br",
      "fraud": "false"
    }
  }
}

Transação de Venda Direta com 2 cartões.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    ...
  </verification>
  <sale>
    <order>
      <reference>123456789</reference>
      <totalAmount>50000</totalAmount>
    </order>
    <payment>
      <acquirer>1</acquirer>
      <method>1</method>
      <amount>40000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <numberOfPayments>1</numberOfPayments>
      <groupNumber>0</groupNumber>
      <flag>mastercard</flag>
      <cardHolder>Jose da Silva</cardHolder>
      <cardNumber>5453010000066167</cardNumber>
      <cardSecurityCode>123</cardSecurityCode>
      <cardExpirationDate>201805</cardExpirationDate>
      <saveCreditCard>true</saveCreditCard>
      <generateToken>false</generateToken>
      <departureTax>0</departureTax>
      <softDescriptor></softDescriptor>
    </payment>
    <payment>
      <acquirer>2</acquirer>
      <method>1</method>
      <amount>10000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <numberOfPayments>1</numberOfPayments>
      <groupNumber>0</groupNumber>
      <flag>mastercard</flag>
      <cardHolder>Jose da Silva</cardHolder>
      <cardNumber>5453010000066168</cardNumber>
      <cardSecurityCode>123</cardSecurityCode>
      <cardExpirationDate>201805</cardExpirationDate>
      <saveCreditCard>true</saveCreditCard>
      <generateToken>false</generateToken>
      <departureTax>0</departureTax>
      <softDescriptor></softDescriptor>
    </payment>
    <billing>
        ...
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <fraud>false</fraud>
    <customField/>
  </sale>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": "
    ...
  ",
    "sale": {
      "order": {
        "reference": "123456789",
        "totalAmount": "50000"
      },
      "payment": [
        {
          "acquirer": "1",
          "method": "1",
          "amount": "40000",
          "currency": "986",
          "country": "BRA",
          "numberOfPayments": "1",
          "groupNumber": "0",
          "flag": "mastercard",
          "cardHolder": "Jose da Silva",
          "cardNumber": "5453010000066167",
          "cardSecurityCode": "123",
          "cardExpirationDate": "201805",
          "saveCreditCard": "true",
          "generateToken": "false",
          "departureTax": "0"
        },
        {
          "acquirer": "2",
          "method": "1",
          "amount": "10000",
          "currency": "986",
          "country": "BRA",
          "numberOfPayments": "1",
          "groupNumber": "0",
          "flag": "mastercard",
          "cardHolder": "Jose da Silva",
          "cardNumber": "5453010000066168",
          "cardSecurityCode": "123",
          "cardExpirationDate": "201805",
          "saveCreditCard": "true",
          "generateToken": "false",
          "departureTax": "0"
        }
      ],
      "billing": "
        ...
    ",
      "urlReturn": "http://loja.exemplo.com.br",
      "fraud": "false"
    }
  }
}

Caso um dos cartões não autorize a transação no cartão anterior será automaticamente cancelada.

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/receiver/

A requisição de venda direta é uma venda que concretizada o processo de venda. Não há necessidade de capturar uma vez que utilizado esse processo a venda gera créditos para o lojista.

Características:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
method O [1…9] ID de identificação da operação, verificar tabela de operações.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
numberOfPayments O [1…2] Número de parcelas. Para crédito à vista ou débito, utilizar “1”.
groupNumber O [0…0] Verificar
flag O [0…0] Nome da bandeira (minúsculo):
“visa” “mastercard” “diners” “discover” “elo” “amex” “jcb” “aura”.
cardHolder O [1..25] Nome impresso no cartão
cardNumber O [12…19] Número do cartão de crédito
cardSecurityCode O [3…4] Número do código de segurança
cardExpirationDate O [0…0] Validade do cartão no formato aaaamm. Exemplo: 201412 (dez/2014).
saveCreditCard O [true ou false] Permitir salvar o cartão truncado na base para consulta.
generateToken O [true ou false] Gerar token de acesso.
departureTax N [1…10] Taxa de embarque (verificar disponibilidade)
softDescriptor N [1…13] Descrição na fatura do cartão de crédito (verificar disponibilidade)
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
fraud N [true ou false] Sistema de anti-fraude (verificar disponibilidade)
customField N [0…255] Campos para uso diverso
Legenda Descrição
N Não-obrigatório
O Dado obrigatório

Resposta da Venda Direta

Exemplo de uma resposta de transação de venda direta

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>738ED5E0-5248-6587-A338-EB017D21DD98</transactionId>
    <operationId>1</operationId>
    <status>8</status>
    <message>AUTHORIZED</message>
    <log>logs/2014/05/20/1517.log</log>
    <errorCode />
    <order>
        <reference>123456789</reference>
        <currency>986</currency>
        <totalAmount>50000</totalAmount>
        <dateTime>2014-05-20T19:14:24.061-03:00</dateTime>
    </order>
    <processor>
        <flag>mastercard</flag>
        <amount>50000</amount>
        <numberOfPayments>1</numberOfPayments>
        <acquirer>CIELO</acquirer>
        <acquirerId>1</acquirerId>
        <urlAuthentication />
        <code>4</code>
        <message>Transação autorizada</message>
        <lr>00</lr>
        <nsu>209454</nsu>
        <tid>100699306912746E1001</tid>
        <pan>b1SQ6jpKCDt3n9C0dgD/ZkPQ1Bh+7aJESqr/CwP64P0=</pan>
        <eci>0</eci>
        <statusCode>4</statusCode>
        <avsResponseCode />
        <tokenCard>d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4</tokenCard>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "738ED5E0-5248-6587-A338-EB017D21DD98",
    "operationId": "1",
    "status": "8",
    "message": "AUTHORIZED",
    "log": "logs/2014/05/20/1517.log",
    "order": {
      "reference": "123456789",
      "currency": "986",
      "totalAmount": "50000",
      "dateTime": "2014-05-20T19:14:24.061-03:00"
    },
    "processor": {
      "flag": "mastercard",
      "amount": "50000",
      "numberOfPayments": "1",
      "acquirer": "CIELO",
      "acquirerId": "1",
      "code": "4",
      "message": "Transação autorizada",
      "lr": "00",
      "nsu": "209454",
      "tid": "100699306912746E1001",
      "pan": "b1SQ6jpKCDt3n9C0dgD/ZkPQ1Bh+7aJESqr/CwP64P0=",
      "eci": "0",
      "statusCode": "4",
      "tokenCard": "d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4"
    }
  }
}

Resposta da transação de Venda Direta após o XML ser submetido para o AZPAY via POST.

TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
processor Contem um bloco de informações geradas pela operadora utilizada.
tokenCard Token que subistitui o envio do cartão de crédito em uma nova transação

Capturar

Exemplo de transação de Captura.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <capture>
      <transactionId>328B0E36-B2A8-3C0C-9D57-44DBA029CF86</transactionId>
  </capture>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "capture": { "transactionId": "328B0E36-B2A8-3C0C-9D57-44DBA029CF86" }
  }
}

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/receiver/

Processo que confirma uma autorizacão que foi realizada previamente. Somente após a captura, é que o portador do cartão poderá visualizá-la em seu extrato ou fatura.

Características:

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Resposta de Captura

Exemplo de resposta da transação de Captura utilizando a operadora CIELO via AZPAY.

<transaction-response id="1" versao="1.0">
    <transactionId>08122F2B-B1A5-28C4-06E0-4F1E9A06CECD</transactionId>
    <operationId>3</operationId>
    <status>8</status>
    <message>APPROVED</message>
    <log>logs/2014/05/15/1512.log</log>
    <errorCode>
    </errorCode>
    <order>
        <reference>123456789</reference>
        <currency>986</currency>
        <totalAmount>50000</totalAmount>
        <dateTime>2014-05-15T15:24:50.793-03:00</dateTime>
    </order>
    <processor>
        <flag>elo</flag>
        <numberOfPayments>1</numberOfPayments>
        <acquirer>CIELO</acquirer>
        <acquirerId>1</acquirerId>
        <urlAuthentication>
        </urlAuthentication>
        <amount>50000</amount>
        <code>6</code>
        <message>Transação autorizada</message>
        <message2>Transacao capturada com sucesso</message2>
        <lr>00</lr>
        <nsu>196675</nsu>
        <tid>10069930691242831001</tid>
        <pan>r6qvdWW+ZmrNmFdXB8jaV0fNrnhIl6LiJOL9lnuypdA=</pan>
        <eci>7</eci>
        <statusCode>6</statusCode>
        <avsResponseCode/>
        <tokenCard>d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4</tokenCard>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "08122F2B-B1A5-28C4-06E0-4F1E9A06CECD",
    "operationId": "3",
    "status": "8",
    "message": "APPROVED",
    "log": "logs/2014/05/15/1512.log",
    "errorCode": "
    ",
    "order": {
      "reference": "123456789",
      "currency": "986",
      "totalAmount": "50000",
      "dateTime": "2014-05-15T15:24:50.793-03:00"
    },
    "processor": {
      "flag": "elo",
      "numberOfPayments": "1",
      "acquirer": "CIELO",
      "acquirerId": "1",
      "urlAuthentication": "
        ",
      "amount": "50000",
      "code": "6",
      "message": "Transação autorizada",
      "message2": "Transacao capturada com sucesso",
      "lr": "00",
      "nsu": "196675",
      "tid": "10069930691242831001",
      "pan": "r6qvdWW+ZmrNmFdXB8jaV0fNrnhIl6LiJOL9lnuypdA=",
      "eci": "7",
      "statusCode": "6",
      "tokenCard": "d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4"
    }
  }
}
TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
processor Contem um bloco de informações geradas pela operadora utilizada.
tokenCard Token que subistitui o envio do cartão de crédito em uma nova transação

Consultar

Exemplo de consulta de uma transação.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <report>
      <transactionId>328B0E36-B2A8-3C0C-9D57-44DBA029CF86</transactionId>
  </report>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "report": { "transactionId": "328B0E36-B2A8-3C0C-9D57-44DBA029CF86" }
  }
}

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/receiver/

Em qualquer momento pode consultar o status de uma transação. O status depende das operadoras atualizarem seus dados para que tenhamos a replicação correta do dados.

Características:

Cancelar

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/receiver/

Exemplo de cancelamento de uma transação.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <cancel>
      <transactionId>328B0E36-B2A8-3C0C-9D57-44DBA029CF86</transactionId>
  </cancel>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "cancel": { "transactionId": "328B0E36-B2A8-3C0C-9D57-44DBA029CF86" }
  }
}

Realiza a operação de cancelamento total da transação de autorização ou venda direta dentro do prazo de cada operadora estipula.

Características:

Resposta do Cancelamento

Exemplo de uma resposta de cancelamento.

<transaction-response id="1" versao="1.0">
    <transactionId>328B0E36-B2A8-3C0C-9D57-44DBA029CF86</transactionId>
    <operationId>1</operationId>
    <status>6</status>
    <message>CANCELLED</message>
    <log>logs/2014/04/24/1419.log</log>
    <errorCode>
    </errorCode>
    <order>
        <reference>123456</reference>
        <currency>986</currency>
        <totalAmount>10000</totalAmount>
        <dateTime>2014-04-24T10:41:56-03:00</dateTime>
    </order>
    <processors>
        <processor>
            <acquirer>ELAVON</acquirer>
            <acquirerId>6</acquirerId>
            <amount>10000</amount>
            <details>
                <NSUHost>
                </NSUHost>
                <responseCode>AA</responseCode>
                <responseMessage>Transação Aprovada</responseMessage>
                <amount>10000</amount>
                <dateTime>2014-04-24T10:42:10-03:00</dateTime>
                <action>Void</action>
                <tid>1398346916C7620DDE-B</tid>
                <statusCode>6</statusCode>
            </details>
            <avsResponseCode>
            </avsResponseCode>
        </processor>
    </processors>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "328B0E36-B2A8-3C0C-9D57-44DBA029CF86",
    "operationId": "1",
    "status": "6",
    "message": "CANCELLED",
    "log": "logs/2014/04/24/1419.log",
    "errorCode": "
    ",
    "order": {
      "reference": "123456",
      "currency": "986",
      "totalAmount": "10000",
      "dateTime": "2014-04-24T10:41:56-03:00"
    },
    "processors": {
      "processor": {
        "acquirer": "ELAVON",
        "acquirerId": "6",
        "amount": "10000",
        "details": {
          "NSUHost": "
                ",
          "responseCode": "AA",
          "responseMessage": "Transação Aprovada",
          "amount": "10000",
          "dateTime": "2014-04-24T10:42:10-03:00",
          "action": "Void",
          "tid": "1398346916C7620DDE-B",
          "statusCode": "6"
        },
        "avsResponseCode": "
            "
      }
    }
  }
}

Resposta da transação de Cancelamento após o XML ser submetido para o AZPAY via POST.

TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
processor Contem um bloco de informações geradas pela operadora utilizada.

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Exemplo de como fazer uma transação de autorização utilizando token

 <transaction-request>
      <version>1.0.0</version>
      <verification>
         ...
      </verification>
      <authorize>
          <order>
             ...
          </order>
          <payment>
              <tokenCard>106c7989d097a17d61cc1193fd35d77279a01ccc6b5d7b63a14d7f10b9dfe374</tokenCard>
              <acquirer>1</acquirer>
              <method>1</method>
              <amount>10000</amount>
              <currency>986</currency>
              <country>BRA</country> 
              <numberOfPayments>1</numberOfPayments>
              <groupNumber>0</groupNumber>
          </payment>
          <billing>
              ...
          </billing>
          <urlReturn></urlReturn>
          <fraud>true</fraud>
          <customField/>
      </authorize>
  </transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": "
         ...
      ",
    "authorize": {
      "order": "
             ...
          ",
      "payment": {
        "tokenCard": "106c7989d097a17d61cc1193fd35d77279a01ccc6b5d7b63a14d7f10b9dfe374",
        "acquirer": "1",
        "method": "1",
        "amount": "10000",
        "currency": "986",
        "country": "BRA",
        "numberOfPayments": "1",
        "groupNumber": "0"
      },
      "billing": "
              ...
          ",
      "fraud": "true"
    }
  }
}

Transação de venda direta com 2 tokens (1 token utilizando a Cielo e outro a Elavon).

 <transaction-request>
      <version>1.0.0</version>
      <verification>
         ...
      </verification>
      <sale>
          <order>
             ...
          </order>
          <payment>
              <tokenCard>106c7989d097a17d61cc1193fd35d77279a01ccc6b5d7b63a14d7f10b9dfe374</tokenCard>
              <acquirer>1</acquirer>
              <method>1</method>
              <amount>10000</amount>
              <currency>986</currency>
              <country>BRA</country> 
              <numberOfPayments>1</numberOfPayments>
              <groupNumber>0</groupNumber>
          </payment>
          <payment>
            <tokenCard>106c7989d097a17d61cc1193fd35d77279a01ccc6b5d7b63a14d7f10b9dfe374</tokenCard>
              <acquirer>6</acquirer>
              <method>1</method>
              <amount>10000</amount>
              <currency>986</currency>
              <country>BRA</country>
              <numberOfPayments>1</numberOfPayments>
              <groupNumber>0</groupNumber>
          </payment>
          <billing>
              ...
          </billing>
          <urlReturn></urlReturn>
          <fraud>true</fraud>
          <customField/>
      </sale>
  </transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": "
         ...
      ",
    "sale": {
      "order": "
             ...
          ",
      "payment": [
        {
          "tokenCard": "106c7989d097a17d61cc1193fd35d77279a01ccc6b5d7b63a14d7f10b9dfe374",
          "acquirer": "1",
          "method": "1",
          "amount": "10000",
          "currency": "986",
          "country": "BRA",
          "numberOfPayments": "1",
          "groupNumber": "0"
        },
        {
          "tokenCard": "106c7989d097a17d61cc1193fd35d77279a01ccc6b5d7b63a14d7f10b9dfe374",
          "acquirer": "6",
          "method": "1",
          "amount": "10000",
          "currency": "986",
          "country": "BRA",
          "numberOfPayments": "1",
          "groupNumber": "0"
        }
      ],
      "billing": "
              ...
          ",
      "fraud": "true"
    }
  }
}

Caso um dos cartões não autorize a transação no cartão anterior será automaticamente cancelada.

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/receiver/

A requisição de autorização é a principal operação do AZPAY, pois é através dela que uma venda pode ser concretizada e finalizar o processo de venda. A autorização possui uma série de configurações que podem ser customizadas, além de funcionalidades que agregam valor ao lojista e seus consumidores.

Características:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
tokencard O [64…64] hash do cartão de crédito válido.
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
method O [1…9] ID de identificação da operação, verificar tabela de operações.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
numberOfPayments O [1…2] Número de parcelas. Para crédito à vista ou débito, utilizar “1”.
groupNumber O [0…0] Verificar
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
fraud N [true ou false] Sistema de anti-fraude (verificar disponibilidade)
customField N [0…255] Campos para uso diverso
Legenda Descrição
N Não-obrigatório
O Dado obrigatório

Resposta da Autorização

Resposta da transação de autorização após o XML ser submetido para o AZPAY via POST.

Exemplo de uma resposta de transação de autorização

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>738ED5E0-5248-6587-A338-EB017D21DD98</transactionId>
    <operationId>1</operationId>
    <status>3</status>
    <message>AUTHORIZED</message>
    <log>logs/2014/05/20/1517.log</log>
    <errorCode />
    <order>
        <reference>123456789</reference>
        <currency>986</currency>
        <totalAmount>50000</totalAmount>
        <dateTime>2014-05-20T19:14:24.061-03:00</dateTime>
    </order>
    <processor>
        <flag>mastercard</flag>
        <amount>50000</amount>
        <numberOfPayments>1</numberOfPayments>
        <acquirer>CIELO</acquirer>
        <acquirerId>1</acquirerId>
        <urlAuthentication />
        <code>4</code>
        <message>Transação autorizada</message>
        <lr>00</lr>
        <nsu>209454</nsu>
        <tid>100699306912746E1001</tid>
        <pan>b1SQ6jpKCDt3n9C0dgD/ZkPQ1Bh+7aJESqr/CwP64P0=</pan>
        <eci>0</eci>
        <statusCode>4</statusCode>
        <avsResponseCode />
        <tokenCard>d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4</tokenCard>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "738ED5E0-5248-6587-A338-EB017D21DD98",
    "operationId": "1",
    "status": "3",
    "message": "AUTHORIZED",
    "log": "logs/2014/05/20/1517.log",
    "order": {
      "reference": "123456789",
      "currency": "986",
      "totalAmount": "50000",
      "dateTime": "2014-05-20T19:14:24.061-03:00"
    },
    "processor": {
      "flag": "mastercard",
      "amount": "50000",
      "numberOfPayments": "1",
      "acquirer": "CIELO",
      "acquirerId": "1",
      "code": "4",
      "message": "Transação autorizada",
      "lr": "00",
      "nsu": "209454",
      "tid": "100699306912746E1001",
      "pan": "b1SQ6jpKCDt3n9C0dgD/ZkPQ1Bh+7aJESqr/CwP64P0=",
      "eci": "0",
      "statusCode": "4",
      "tokenCard": "d01d884cfd6ecdcfc047e9d4d2783b2a9d067189f32942e4d4ff3313f83475d4"
    }
  }
}
TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
processor Contem um bloco de informações geradas pela operadora utilizada.
tokenCard Token que subistitui o envio do cartão de crédito em uma nova transação

CHECKOUT TRANSPARENTE

Adicionar o javascript azpay.checkout.min.js no header da sua página;

<html>
    <head>
        <script language="JavaScript" src="https://azpay-assets.s3-sa-east-1.amazonaws.com/checkout.azpay.com.br/1.0.0/azpay.checkout.min.js"></script>
</head>
<body>
...

Em qualquer parte do seu site você pode adicionar as seguintes linhas abaixo:

<button name="Azpay"
        class="azpay-checkout"
        data-price="200.00"
        data-installments="[1,3,6,12]"
        data-token="d41d8cd98f00b204e9800998"
        data-mercahntid="10993"
        data-acquirer="1"
        data-action="click"
        data-reference="1"
        data-price-label="Price $"
        data-billing-customerIdentity="12"
        data-billing-name="Bruno paz"
        data-billing-address="Calle revillagigedo 18"
        data-billing-address2="Colonia centro"
        data-billing-city="Mexico"
        data-billing-state="DF"
        data-billing-postalcode="06000"
        data-billing-phone="119912133556"
        data-billing-email="meucliente@dominio.com"
        data-url-return="http://meusite.com.br/pagina_de_sucesso.html"
        data-callback="paymentResult">Finalizar compra com callback - CIELO</button>

Exemplo completo de uma transação com CALLBACK usando CIELO

<!DOCTYPE html>
<html>
<head>
    <title>EXEMPLO - AZPAY CHECKOUT</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script language="JavaScript" src="https://azpay-assets.s3-sa-east-1.amazonaws.com/checkout.azpay.com.br/1.0.0/azpay.checkout.min.js"></script>
</head>
<body>
<script type="application/javascript">
    function paymentResult(data){
        console.log(data);
        alert('O resultado foi :' + data.message);
        //close modal
        $('div.azpay-checkout-container .close-modal').click();
    }
</script>
<button name="Azpay"
        class="azpay-checkout"
        data-price="200.00"
        data-installments="[1,3,6,12]"
        data-token="d41d8cd98f00b204e9800998"
        data-mercahntid="10993"
        data-acquirer="1"
        data-action="click"
        data-reference="1"
        data-price-label="Price $"
        data-billing-customerIdentity="12"
        data-billing-name="Bruno paz"
        data-billing-address="Calle revillagigedo 18"
        data-billing-address2="Colonia centro"
        data-billing-city="Mexico"
        data-billing-state="DF"
        data-billing-postalcode="06000"
        data-billing-phone="119912133556"
        data-billing-email="meucliente@dominio.com"
        data-url-return="http://meusite.com.br/pagina_de_sucesso.html"
        data-callback="paymentResult">Finalizar compra com callback - CIELO</button>
    </body>
</html>

Exemplo de um CALLBACK

<script type="application/javascript">
function paymentResult(data){
    console.log(data);
    alert('O resultado foi :' + data.message);
    //close modal
    $('div.azpay-checkout-container .close-modal').click();
}
</script>

O Checkout Azpay é uma ferramenta integrada a um checkout transparente, customizável às suas necessidades e padrões de design. Integrado via AZPAY com Cielo, Rede, Stone, Elavon, Getnet, Bin, Global payments, etc…

Algumas características:

Você também pode usar como:

CRIPTOGRAFIA RSA DE PONTA-A-PONTA

O AZPAY utiliza o algorítmo de criptografia chamado RSA, que envolve um par de chaves, uma chave pública que pode ser conhecida por todos e uma chave privada que deve ser mantida em sigilo. Toda mensagem cifrada usando uma chave pública só pode ser decifrada usando a respectiva chave privada. A criptografia RSA atua diretamente na internet, por exemplo, em mensagens de emails, em compras on-line e o que você imaginar; tudo isso é codificado e recodificado pela criptografia RSA.

DEMONSTRAÇÃO

A págia de demonstração

INSTALAÇÃO E CONFIGURAÇÃO

O checkout do Azpay requer uma conta no Azpay para rodar.

PARAMETROS DE CONFIGURAÇÃO

Nome Descrição Requerido editável
name nome do elemento sim sim
class nome da classe html, esse valor não pode ser alterado sim não
data-price Preço em reais que será processado pelo AZPAY. sim sim
data-installments Parcelamento do pagamento, para valores à vista deixar como [1] sim sim
data-token Token do Azpay, este dado está disponível no painel de controle da sua conta sim sim
data-mercahntid Mercahnt ID da sua conta, este dado está disponível no painel de controle sim sim
data-acquirer Adquerente que deseja executar a operação, a relação de códigos está disponível nesta página sim sim
data-action Ação do elemeno, possíveis opções: mouseover, click, mouseout, mouseenter ou mouseleave sim não
data-reference SKU do produto ou código único de identificação da venda não sim
data-price-label Texto customizável do botão de pagar não sim
data-billing-customerIdentity Identificação única do usuário - inteiro somente não sim
data-billing-name Nome do seu cliente
data-billing-address Endereço do seu cliente não sim
data-billing-address2 Complemento do endereço não
data-billing-city Cidade do cliente não sim
data-billing-state UF do cliente - ex SP, MG, RJ, etc não sim
data-billing-postalcode CEP do cliente sem - não sim
data-billing-phone Telefone do cliente - somente números não sim
data-billing-email Email do cliente não sim
data-url-return URL para onde o cliente será redirecionado após a venda aprovada não sim
data-callback Nome da função callback após o resultado da transação não sim

BOLETO BANCÁRIO

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Exemplo de como gerar um boleto bancário do Banco Santander.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <boleto>
    <order>
      <reference>123456789</reference>
      <totalAmount>20000</totalAmount>
    </order>
    <payment>
      <acquirer>13</acquirer> -----> 13 = Banco Santander
      <expire>2015-09-24</expire>
      <nrDocument>123456789</nrDocument>
      <nossoNumero>87654321</nossoNumero>
      <amount>10000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <instructions>Não aceitar pagamento em cheques. \n Percentual Juros Dia: 1%. Percentual Multa: 1%.</instructions>
    </payment>
    <billing>
      <customerIdentity>10</customerIdentity>
      <name>Fulano de Tal</name>
      <address>Rua Cabo Diogo Oliver,536</address>
      <address2>Centro</address2>
      <city>Mogi das Cruzes</city>
      <state>SP</state>
      <postalCode>20031170</postalCode>
      <country>BR</country>
      <phone>1147770000</phone>
      <email>fulanodetal@email.com</email>
    </billing>
    <urlReturn/>
    <customField/>
  </boleto>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "boleto": {
      "order": {
        "reference": "123456789",
        "totalAmount": "20000"
      },
      "payment": {
        "acquirer": "13",
        "#text": " -----> 13 = Banco Santander
      ",
        "expire": "2015-09-24",
        "nrDocument": "123456789",
        "nossoNumero": "87654321",
        "amount": "10000",
        "currency": "986",
        "country": "BRA",
        "instructions": "Não aceitar pagamento em cheques. \\n Percentual Juros Dia: 1%. Percentual Multa: 1%."
      },
      "billing": {
        "customerIdentity": "10",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      }
    }
  }
}

Código Operadora de Boleto

Código utilizado para definir o banco, o valor deve ser definido dentro da TAG <acquirer> igual em todas as transações com Cartão de crédito.

Código Operadora ou Adquirente Observação
10 BRADESCO (sem registro) Fale com seu gerente para habilitar a carteira de boleto.
18 BRADESCONET Fale com seu gerente para habilitar a carteira de boleto.
11 ITAÚ (sem registro) Fale com seu gerente para habilitar a carteira de boleto.
20 ITAÚ (Itaú Shopline) Fale com seu gerente para habilitar a carteira de boleto.
12 BANCO DO BRASIL Fale com seu gerente para habilitar a carteira de boleto.
13 BANCO SANTANDER Fale com seu gerente para habilitar a carteira de boleto.
14 CAIXA - SEM REGISTRO Fale com seu gerente para habilitar a carteira de boleto.
15 CAIXA - SINCO Fale com seu gerente para habilitar a carteira de boleto.
16 CAIXA - SIGCB Fale com seu gerente para habilitar a carteira de boleto.
17 HSBC Fale com seu gerente para habilitar a carteira de boleto.

Gerar Boleto Bancário

O XML de geração de um boleto bancário é semelhante ao XML de transação de Cartão de Crédito, com exceção de alguns campos:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
expire O [10…10]
nrDocument O [1…9] Número de identificação do boleto (Número do documento), número que será identificado no extrado bancário para liquidação financeira.
nossoNumero N [1…9] Número de identificação do boleto (Nosso número), número que será identificado no extrado bancário para liquidação financeira.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
instructions [0…255] Texto impresso como intruções de pagamento no boleto
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
customField N [0…255] Campos para uso diverso

Resposta do Boleto Bancário

Exemplo de resposta da geração de um boleto bancário do Banco Santander.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>BE9C0F01-7B9C-441F-6C28-7A9C103F8BCD</transactionId>
    <operationId>8</operationId>
    <status>12</status>
    <message>Boleto has been generated successfully.</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <totalAmount>10000</totalAmount>
        <currency>986</currency>
        <dateTime>1400793777</dateTime>
    </order>
    <processor>
        <Boleto>
            <acquirer>Santander</acquirer>
            <acquirerId>13</acquirerId>
            <details>
                <id>841</id>
                <expire>2015-09-24</expire>
                <amount>10000</amount>
                <urlBoleto>https://api.azpay.com.br/v1/boleto/879bfe7d4cec12d85f209c6ad7b12d50</urlBoleto>
                <nrDocument>123456789</nrDocument>
            </details>
        </Boleto>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "BE9C0F01-7B9C-441F-6C28-7A9C103F8BCD",
    "operationId": "8",
    "status": "12",
    "message": "Boleto has been generated successfully.",
    "order": {
      "reference": "123456789",
      "totalAmount": "10000",
      "currency": "986",
      "dateTime": "1400793777"
    },
    "processor": {
      "Boleto": {
        "acquirer": "Santander",
        "acquirerId": "13",
        "details": {
          "id": "841",
          "expire": "2015-09-24",
          "amount": "10000",
          "urlBoleto": "https://api.azpay.com.br/v1/boleto/879bfe7d4cec12d85f209c6ad7b12d50",
          "nrDocument": "123456789"
        }
      }
    }
  }
}

Exemplo de resposta de erro de um boleto bancário. Motivo: Data inválida.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId />
    <status>
        <code>409</code>
        <message>ERROR - XML</message>
    </status>
    <result>
        <error>
            <code>101</code>
            <action>XML</action>
            <message>XML ERROR</message>
            <details><![CDATA[Element 'expire': '2015-13-24' is not a valid value of the atomic type 'xs:date'. ]]></details>
            <moreInfo><![CDATA[Please check XML format]]></moreInfo>
        </error>
    </result>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "status": {
      "code": "409",
      "message": "ERROR - XML"
    },
    "result": {
      "error": {
        "code": "101",
        "action": "XML",
        "message": "XML ERROR",
        "details": "Element 'expire': '2015-13-24' is not a valid value of the atomic type 'xs:date'. ",
        "moreInfo": "Please check XML format"
      }
    }
  }
}
TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
Boleto Contem um bloco de informações geradas pela operadora utilizada.
acquirerId COnfirmação do Código de operadora
id Identificação única do boleto dentro do AZPAY
expire Data de validade do boleto
amount Valor do boleto
urlBoleto URL de visualização do boleto gerado
nrDocument Número do documento fornecido no XML para identificação de pagamento.

PAGSEGURO

PageSeguro - Modelo simples

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Modelo do XML

Exemplo de como gerar uma transação usando o sistema PagSeguro.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>1</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <pagseguro>
    <order>
      <reference>123456789</reference>
      <totalAmount>4000</totalAmount>
    </order>
    <payment>
      <amount>4000</amount>
      <currency>986</currency>
      <country>BRA</country>
    </payment>
    <billing>
      <customerIdentity>1</customerIdentity>
      <name>Fulano de Tal</name>
      <address>Rua Cabo Diogo Oliver,536</address>
      <address2>Centro</address2>
      <city>Mogi das Cruzes</city>
      <state>SP</state>
      <postalCode>20031170</postalCode>
      <country>BR</country>
      <phone>1147770000</phone>
      <email>fulanodetal@email.com</email>
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <customField/>
  </pagseguro>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "pagseguro": {
      "order": {
        "reference": "123456789",
        "totalAmount": "4000"
      },
      "payment": {
        "amount": "4000",
        "currency": "986",
        "country": "BRA"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "http://loja.exemplo.com.br"
    }
  }
}

O XML de geração é semelhante ao XML de transação de Cartão de Crédito, com exceção de alguns campos:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de identificação do boleto (Número do documento), número que será identificado no extrado bancário para liquidação financeira.
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
customField N [0…255] Campos para uso diverso
Processo Especificação
finalizarPedido Ocorre no momento que o comprador finalizar o pedido na loja virtual.
enviarXml A loja virtual integrada com o AZPAY inicia o processo de comunicação enviando o XML.
iniciarTransação O Azpay comunica com o pagseguro para iniciar o processo.
URL Autenticação O Pagseguro devolve uma URL que precisa ser acessada pelo comprador.
XML Retorno O Azpay devolve em formato XML a transação já com uma indentificação (TID).
redireciona A loja virtual precisa redirecionar o comprador para a URL Autenticação.
autenticar O comprador realiza a autenticação e realiza o pagamento. O Pagseguro devolve os resultados para comprador diretamente
resultadoPagamento O Pagseguro devolve os resultados para o Azpay, que processa a transação.
sendPost Caso tenha alteração no status da transação o Azpay notifica a loja virtual.
confirmarPagamento A loja virtual comunica-se com o comprador caso haja necessidade.

Resposta da transação

Exemplo de resposta da geração de uma transação utilizando Pagseguro.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>7D5B6B98-5DC2-C7CD-4DB4-EB466486BDA4</transactionId>
    <operationId>10</operationId>
    <status>0</status>
    <message>PagSeguro URL has been generated successfully.</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <totalAmount>4000</totalAmount>
        <currency>986</currency>
        <dateTime>1403880106</dateTime>
    </order>
    <processor>
        <acquirer>Pagseguro</acquirer>
        <acquirerId>7</acquirerId>
        <details>
            <id>69FEF1DB9C9C1DE224E07F83BEBCD661</id>
            <amount>4000</amount>
            <date>2014-06-27T11:41:46-03:00</date>
        </details>
        <urlReturn>https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=69FEF1DB9C9C1DE224E07F83BEBCD661</urlReturn>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "7D5B6B98-5DC2-C7CD-4DB4-EB466486BDA4",
    "operationId": "10",
    "status": "0",
    "message": "PagSeguro URL has been generated successfully.",
    "order": {
      "reference": "123456789",
      "totalAmount": "4000",
      "currency": "986",
      "dateTime": "1403880106"
    },
    "processor": {
      "acquirer": "Pagseguro",
      "acquirerId": "7",
      "details": {
        "id": "69FEF1DB9C9C1DE224E07F83BEBCD661",
        "amount": "4000",
        "date": "2014-06-27T11:41:46-03:00"
      },
      "urlReturn": "https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=69FEF1DB9C9C1DE224E07F83BEBCD661"
    }
  }
}
TAG Descrição
transactionId Código de transação do AZPAY (TID)
operationId ID da operação
status Status de retorno da operação
message Mensagem detalhada
log Arquivo de log
order Bloco contendo as informações da cobrança
reference Referência informada pelo logista
totalAmount Valor total a ser processado
currency Código da Moeda
dateTime Data no formato UNIX TIME
processor Bloco contendo as informações do Pagseguro
acquirer Nome do agente de pagamento
acquirerId ID gerado pelo PagSeguro
urlReturn URL de retorno do Pagseguro que deverá ser acessada pelo comprador para finalizar o pagamento

Resposta de erro utilizando Pagseguro

Exemplo de resposta de erro: Credenciais informadas no painel de controle inválidas.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>64CBB01D-64D9-BCE4-71C5-5A37A25017F1</transactionId>
    <status>
        <code>409</code>
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>037</code>
            <action>409</action>
            <message>
                <acquirer />
                <errorAcquirer>[HTTP 401] - UNAUTHORIZED '</errorAcquirer>
                <timestamp>1403880621</timestamp>
            </message>
            <details><![CDATA[Adquirente informado não está configurado corretamente ]]></details>
            <moreInfo><![CDATA[Pagseguro erro. ]]></moreInfo>
        </error>
    </result>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "64CBB01D-64D9-BCE4-71C5-5A37A25017F1",
    "status": {
      "code": "409",
      "message": "ERROR - 409"
    },
    "result": {
      "error": {
        "code": "037",
        "action": "409",
        "message": {
          "errorAcquirer": "[HTTP 401] - UNAUTHORIZED '",
          "timestamp": "1403880621"
        },
        "details": "Adquirente informado não está configurado corretamente ",
        "moreInfo": "Pagseguro erro. "
      }
    }
  }
}
TAG Descrição
transactionId TID gerado pelo AZPAY
status Bloco de resposta HTTP
code Código de resposta HTTP
message Mensagem de resposta HTTP
error Bloco que informa os detalhes do erro
code Código de erro do AZAPAY - Verificar tabela de erros
action Código de resposta HTTP
message Bloco de resposta do Pagseguro
errorAcquirer Mensagem de erro informado pela Pagseguro
timestamp Data no formato UNIX TIME
details Mensagem de complemento do erro
moreInfo Mensagem de complemento do erro

Checkout Trasparente Pagseguro

Checkout Transparente você pode oferecer toda a segurança e comodidade do PagSeguro para os seus clientes no momento da compra, sem precisar sair do seu site ou e-commerce. Com ele é possível disponibilizar em seu site os meios de pagamento Cartão de Crédito e Débito Online. O Checkout Transparente está disponível para contas do tipo Vendedor e Empresarial. As seções seguintes indicarão como é possível integrar seu sistema de pagamentos ao Checkout Transparente do PagSeguro.

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Modelo do XML

Exemplo de como gerar uma transação usando o sistema PagSeguro.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>1</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <pagseguro_checkout>
    <order>
        <reference>123456789</reference>
        <totalAmount>4000</totalAmount>
    </order>
    <payment>
        <method>1</method>
        <amount>4000</amount>
        <currency>986</currency>
        <country>BRA</country>
        <numberOfPayments>1</numberOfPayments>
        <flag>visa</flag>
        <cardHolder>Jose da Silva</cardHolder>
        <cardNumber>4111111111111111</cardNumber>
        <cardSecurityCode>123</cardSecurityCode>
        <cardExpirationDate>203012</cardExpirationDate>
    </payment>
    <billing>
        <name>Fulano de Tal</name>
        <address>Rua Cabo Diogo Oliver,536</address>
        <address2>Centro</address2>
        <city>Mogi das Cruzes</city>
        <state>SP</state>
        <postalCode>20031170</postalCode>
        <country>BR</country>
        <phone>1147770000</phone>
        <email>fulanodetal@email.com</email>      
        <birthDate>12/12/1983</birthDate>
        <cpf>55555555555</cpf>
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <customField/>
  </pagseguro_checkout>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "pagseguro_checkout": {
      "order": {
        "reference": "123456789",
        "totalAmount": "4000"
      },
      "payment": {
        "method": "1",
        "amount": "4000",
        "currency": "986",
        "country": "BRA",
        "numberOfPayments": "1",
        "flag": "visa",
        "cardHolder": "Jose da Silva",
        "cardNumber": "4111111111111111",
        "cardSecurityCode": "123",
        "cardExpirationDate": "203012"
      },
      "billing": {
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com",
        "birthDate": "12/12/1983",
        "cpf": "55555555555"
      },
      "urlReturn": "http://loja.exemplo.com.br"
    }
  }
}

O XML de geração é semelhante ao XML de transação de Cartão de Crédito, com exceção de alguns campos:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de identificação do boleto (Número do documento), número que será identificado no extrado bancário para liquidação financeira.
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
method O [1…1] Tipo de operação
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
numberOfPayments O [0…18] Quantidade de parcelas.
flag O [0…0] Nome da bandeira (minúsculo):
“visa” “mastercard” “diners” “discover” “elo” “amex” “jcb” “aura”.
cardHolder O [1..25] Nome impresso no cartão
cardNumber O [12…19] Número do cartão de crédito
cardSecurityCode O [3…4] Número do código de segurança
cardExpirationDate O [0…0] Validade do cartão no formato aaaamm. Exemplo: 202012 (dez/2020).
customerIdentity O [1..30] Número de identificação único do cliente.
name O [0…255] Nome do cliente
address O [0…255] Endereço do cliente
address2 O [0…255] Complemento do cliente
city O [0…255] Cidade do cliente
state O [0…255] Estado do cliente
postalCode O [0…255] CEP, código postal do cliente
country O [0…255] País do cliente
phone O [0…45] Telefone do Cliente
email O [0…145] E-mail do cliente
birthDate O [0…10] Data de nascimento no formato DD/MM/YYYY
cpf O [0…10] CPF do cliente, somente números
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
Processo Especificação
finalizarPedido Ocorre no momento que o comprador finalizar o pedido na loja virtual.
enviarXml A loja virtual integrada com o AZPAY inicia o processo de comunicação enviando o XML.
iniciarTransação O Azpay comunica com o pagseguro para iniciar o processo.
validar Entre o Azpay e Pagseguro ocorre diversas validações de dados e processos
autorizarPagamento O Pagseguro devolve a resposta da tentativa de pagamento.
confirmar O Azpay computa a transação e devolve o status de aprovado ou não-aprovado.
respostaPedido A loja virtual comunica-se com o comprador caso haja necessidade.

Resposta da transação

Exemplo de resposta da geração de uma transação utilizando Pagseguro.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>21F984AD-661F-DDAB-90AD-DE8B9BBE3DE0</transactionId>
    <operationId>10</operationId>
    <status>8</status>
    <message>APPROVED</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <currency>BRA</currency>
        <totalAmount>4000</totalAmount>
        <dateTime>2014-11-11T12:18:20.000-02:00</dateTime>
    </order>
    <processor>
        <flag>VISA</flag>
        <message>Cartão de crédito: o comprador escolheu pagar a transação com cartão de crédito.</message>
        <numberOfPayments>1</numberOfPayments>
        <acquirer>PAGSEGURO</acquirer>
        <paymentLink />
        <amount>4000</amount>
        <code>1</code>
        <tid>0F35EBC9-FF2B-4760-A487-5D298D191617</tid>
        <statusCode>1</statusCode>
        <tokenCard />
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "21F984AD-661F-DDAB-90AD-DE8B9BBE3DE0",
    "operationId": "10",
    "status": "8",
    "message": "APPROVED",
    "order": {
      "reference": "123456789",
      "currency": "BRA",
      "totalAmount": "4000",
      "dateTime": "2014-11-11T12:18:20.000-02:00"
    },
    "processor": {
      "flag": "VISA",
      "message": "Cartão de crédito: o comprador escolheu pagar a transação com cartão de crédito.",
      "numberOfPayments": "1",
      "acquirer": "PAGSEGURO",
      "amount": "4000",
      "code": "1",
      "tid": "0F35EBC9-FF2B-4760-A487-5D298D191617",
      "statusCode": "1"
    }
  }
}
TAG Descrição
transactionId Código de transação do AZPAY (TID)
operationId ID da operação
status Status de retorno da operação
message Mensagem detalhada
log Arquivo de log
order Bloco contendo as informações da cobrança
reference Referência informada pelo logista
totalAmount Valor total a ser processado
currency Código da Moeda
dateTime Data no formato UNIX TIME
processor Bloco contendo as informações do Pagseguro
flag Bandeira utilizada
message Mensagem de retorno do Pagseguro
numberOfPayments Número de parcelas que foi definido
acquirer Sempre será PAGSEGURO
paymentLink Link caso seja boleto
amount Total do valor
code Código de retorno
tid Número da transação dentro do Pagseguro
statusCode Status de resposta
tokenCard Sempre será vazio

Resposta de erro utilizando Pagseguro

Exemplo de resposta de erro: Credenciais informadas no painel de controle inválidas.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>64CBB01D-64D9-BCE4-71C5-5A37A25017F1</transactionId>
    <status>
        <code>409</code>
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>037</code>
            <action>409</action>
            <message>
                <acquirer />
                <errorAcquirer>[HTTP 401] - UNAUTHORIZED '</errorAcquirer>
                <timestamp>1403880621</timestamp>
            </message>
            <details><![CDATA[Adquirente informado não está configurado corretamente ]]></details>
            <moreInfo><![CDATA[Pagseguro erro. ]]></moreInfo>
        </error>
    </result>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "64CBB01D-64D9-BCE4-71C5-5A37A25017F1",
    "status": {
      "code": "409",
      "message": "ERROR - 409"
    },
    "result": {
      "error": {
        "code": "037",
        "action": "409",
        "message": {
          "errorAcquirer": "[HTTP 401] - UNAUTHORIZED '",
          "timestamp": "1403880621"
        },
        "details": "Adquirente informado não está configurado corretamente ",
        "moreInfo": "Pagseguro erro. "
      }
    }
  }
}
TAG Descrição
transactionId TID gerado pelo AZPAY
status Bloco de resposta HTTP
code Código de resposta HTTP
message Mensagem de resposta HTTP
error Bloco que informa os detalhes do erro
code Código de erro do AZAPAY - Verificar tabela de erros
action Código de resposta HTTP
message Bloco de resposta do Pagseguro
errorAcquirer Mensagem de erro informado pela Pagseguro
timestamp Data no formato UNIX TIME
details Mensagem de complemento do erro
moreInfo Mensagem de complemento do erro

PAYPAL

Express Checkout

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Modelo do XML

Exemplo de como gerar uma transação usando o sistema Paypal.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>1</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <paypal>
    <order>
      <reference>123456789</reference>
      <totalAmount>4000</totalAmount>
    </order>
    <payment>
      <amount>4000</amount>
      <currency>986</currency>
      <country>BRA</country>
    </payment>
    <billing>
      <customerIdentity>1</customerIdentity>
      <name>Fulano de Tal</name>
      <address>Rua Cabo Diogo Oliver,536</address>
      <address2>Centro</address2>
      <city>Mogi das Cruzes</city>
      <state>SP</state>
      <postalCode>20031170</postalCode>
      <country>BR</country>
      <phone>1147770000</phone>
      <email>fulanodetal@email.com</email>
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <customField/>
  </paypal>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "paypal": {
      "order": {
        "reference": "123456789",
        "totalAmount": "4000"
      },
      "payment": {
        "amount": "4000",
        "currency": "986",
        "country": "BRA"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "http://loja.exemplo.com.br"
    }
  }
}

O XML de geração é semelhante ao XML de transação de Cartão de Crédito, com exceção de alguns campos:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de identificação do boleto (Número do documento), número que será identificado no extrado bancário para liquidação financeira.
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
customField N [0…255] Campos para uso diverso
Processo Especificação
finalizarPedido Ocorre no momento que o comprador finalizar o pedido na loja virtual.
enviarXml A loja virtual integrada com o AZPAY inicia o processo de comunicação enviando o XML.
iniciarTransação O Azpay comunica com o paypal para iniciar o processo.
URL Autenticação O Paypal devolve uma URL que precisa ser acessada pelo comprador.
XML Retorno O Azpay devolve em formato XML a transação já com uma indentificação (TID).
redireciona A loja virtual precisa redirecionar o comprador para a URL Autenticação.
autenticar O comprador realiza a autenticação e realiza o pagamento. O Paypal devolve os resultados para comprador diretamente
resultadoPagamento O Paypal devolve os resultados para o Azpay, que processa a transação.
sendPost Caso tenha alteração no status da transação o Azpay notifica a loja virtual.
confirmarPagamento A loja virtual comunica-se com o comprador caso haja necessidade.

Resposta da transação

Exemplo de resposta da geração de uma transação utilizando Paypal.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>7D5B6B98-5DC2-C7CD-4DB4-EB466486BDA4</transactionId>
    <operationId>10</operationId>
    <status>0</status>
    <message>Paypal URL has been generated successfully.</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <totalAmount>4000</totalAmount>
        <currency>986</currency>
        <dateTime>1403880106</dateTime>
    </order>
    <processor>
        <acquirer>Paypal</acquirer>
        <acquirerId>7</acquirerId>
        <details>
            <id>69FEF1DB9C9C1DE224E07F83BEBCD661</id>
            <amount>4000</amount>
            <date>2014-06-27T11:41:46-03:00</date>
        </details>
        <urlReturn>http://loja.exemplo.com.br</urlReturn>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "7D5B6B98-5DC2-C7CD-4DB4-EB466486BDA4",
    "operationId": "10",
    "status": "0",
    "message": "Paypal URL has been generated successfully.",
    "order": {
      "reference": "123456789",
      "totalAmount": "4000",
      "currency": "986",
      "dateTime": "1403880106"
    },
    "processor": {
      "acquirer": "Paypal",
      "acquirerId": "7",
      "details": {
        "id": "69FEF1DB9C9C1DE224E07F83BEBCD661",
        "amount": "4000",
        "date": "2014-06-27T11:41:46-03:00"
      },
      "urlReturn": "http://loja.exemplo.com.br"
    }
  }
}
TAG Descrição
transactionId Código de transação do AZPAY (TID)
operationId ID da operação
status Status de retorno da operação
message Mensagem detalhada
log Arquivo de log
order Bloco contendo as informações da cobrança
reference Referência informada pelo logista
totalAmount Valor total a ser processado
currency Código da Moeda
dateTime Data no formato UNIX TIME
processor Bloco contendo as informações do Paypal
acquirer Nome do agente de pagamento
acquirerId ID gerado pelo Paypal
urlReturn URL de retorno do Paypal que deverá ser acessada pelo comprador para finalizar o pagamento

Resposta de erro utilizando Paypal

Exemplo de resposta de erro: Credenciais informadas no painel de controle inválidas.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>64CBB01D-64D9-BCE4-71C5-5A37A25017F1</transactionId>
    <status>
        <code>409</code>
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>037</code>
            <action>409</action>
            <message>
                <acquirer />
                <errorAcquirer>[HTTP 401] - UNAUTHORIZED '</errorAcquirer>
                <timestamp>1403880621</timestamp>
            </message>
            <details><![CDATA[Adquirente informado não está configurado corretamente ]]></details>
            <moreInfo><![CDATA[Paypal erro. ]]></moreInfo>
        </error>
    </result>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "64CBB01D-64D9-BCE4-71C5-5A37A25017F1",
    "status": {
      "code": "409",
      "message": "ERROR - 409"
    },
    "result": {
      "error": {
        "code": "037",
        "action": "409",
        "message": {
          "errorAcquirer": "[HTTP 401] - UNAUTHORIZED '",
          "timestamp": "1403880621"
        },
        "details": "Adquirente informado não está configurado corretamente ",
        "moreInfo": "Paypal erro. "
      }
    }
  }
}
TAG Descrição
transactionId TID gerado pelo AZPAY
status Bloco de resposta HTTP
code Código de resposta HTTP
message Mensagem de resposta HTTP
error Bloco que informa os detalhes do erro
code Código de erro do AZAPAY - Verificar tabela de erros
action Código de resposta HTTP
message Bloco de resposta do Paypal
errorAcquirer Mensagem de erro informado pela Paypal
timestamp Data no formato UNIX TIME
details Mensagem de complemento do erro
moreInfo Mensagem de complemento do erro

TRANSFERÊNCIA ELETRÔNICA

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Exemplo de como gerar uma transferência do Banco Bradesco.

<transaction-request>
    <version>1.0.0</version>
    <verification>
      <merchantId>00053232</merchantId>
      <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <onlineDebit>
        <order>
            <reference>15432</reference>
            <totalAmount>10001</totalAmount>
        </order>
        <payment>
            <acquirer>19</acquirer>
        </payment>
        <billing>
            <customerIdentity>10</customerIdentity>
            <name>Fulano de Tal</name>
            <address>Rua Cabo Diogo Oliver,536</address>
            <address2>Centro</address2>
            <city>Mogi das Cruzes</city>
            <state>SP</state>
            <postalCode>20031170</postalCode>
            <country>BR</country>
            <phone>1147770000</phone>
            <email>fulanodetal@email.com</email>
        </billing>
        <urlReturn>http://minhaloja.com.br/retorno</urlReturn>
        <customField/>
    </onlineDebit>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "onlineDebit": {
      "order": {
        "reference": "15432",
        "totalAmount": "10001"
      },
      "payment": { "acquirer": "19" },
      "billing": {
        "customerIdentity": "10",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "http://minhaloja.com.br/retorno"
    }
  }
}

Código Operadora de Transferência

Código utilizado para definir o banco, o valor deve ser definido dentro da TAG <acquirer> igual em todas as transações com Cartão de crédito.

Código Operadora ou Adquirente Observação
19 BRADESCONET Fale com seu gerente para habilitar esta opção de pagamento.
20 ITAÚ SHOPLINE Fale com seu gerente para habilitar esta opção de pagamento.
21 BANCO DO BRASIL Fale com seu gerente para habilitar esta opção de pagamento.

TRANSFERÊNCIA ELETRÔNICA

O XML de geração de uma Transferência Eletrônica bancário é semelhante ao XML de transação de Cartão de Crédito, com exceção de alguns campos:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
customerIdentity N [1..30] Número de identificação único do cliente. CPF ou CNPJ
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
customField N [0…255] Campos para uso diverso

Resposta da Transferência Eletrônica

Exemplo de resposta da geração de uma Transferência Eletrônica pelo BRADESCO.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>BC6F7B34-EBAB-764E-2695-85A368828BF7</transactionId>
    <operationId>12</operationId>
    <status>0</status>
    <message>URL Transfer has been generated successfully.</message>
    <log>
    </log>
    <errorCode>
    </errorCode>
    <order>
        <reference>15432</reference>
        <totalAmount>10001</totalAmount>
        <dateTime>1411277905</dateTime>
    </order>
    <processor>
        <Transfer>
            <acquirer>Bradesco - Transf. entre contas</acquirer>
            <acquirerId>19</acquirerId>
            <amount>10001</amount>
            <urlTransfer>http://mupteste.comercioeletronico.com.br/sepsTransfer/12345/prepara_pagto.asp?merchantid=12345&amp;orderid=4718&amp;tid=BC6F7B34-EBAB-764E-2695-85A368828BF7</urlTransfer>
        </Transfer>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "BC6F7B34-EBAB-764E-2695-85A368828BF7",
    "operationId": "12",
    "status": "0",
    "message": "URL Transfer has been generated successfully.",
    "log": "
    ",
    "errorCode": "
    ",
    "order": {
      "reference": "15432",
      "totalAmount": "10001",
      "dateTime": "1411277905"
    },
    "processor": {
      "Transfer": {
        "acquirer": "Bradesco - Transf. entre contas",
        "acquirerId": "19",
        "amount": "10001",
        "urlTransfer": "http://mupteste.comercioeletronico.com.br/sepsTransfer/12345/prepara_pagto.asp?merchantid=12345&orderid=4718&tid=BC6F7B34-EBAB-764E-2695-85A368828BF7"
      }
    }
  }
}

Exemplo de resposta de erro de uma transferência bancária. Motivo: Adquirente não está configurado corretamente.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>FE32D080-9F51-594A-5410-E6A4D7608EE0</transactionId>
    <status>
        <code>409</code>
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>037</code>
            <action>409</action>
            <message>
                <acquirer>
                </acquirer>
                <errorAcquirer>
                </errorAcquirer>
                <timestamp>1411274046</timestamp>
            </message>
            <details><![CDATA[Adquirente informado não está configurado corretamente ]]></details>
            <moreInfo><![CDATA[Verifique o valor enviado no xml. ]]></moreInfo>
        </error>
    </result>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "FE32D080-9F51-594A-5410-E6A4D7608EE0",
    "status": {
      "code": "409",
      "message": "ERROR - 409"
    },
    "result": {
      "error": {
        "code": "037",
        "action": "409",
        "message": {
          "acquirer": "
                ",
          "errorAcquirer": "
                ",
          "timestamp": "1411274046"
        },
        "details": "Adquirente informado não está configurado corretamente ",
        "moreInfo": "Verifique o valor enviado no xml. "
      }
    }
  }
}
TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
Transfer Contem um bloco de informações geradas pela operadora utilizada.
acquirerId COnfirmação do Código de operadora
amount Valor da transferência
urlTransfer URL que o comprador precisa ser redicionado para finalizar o pagamento.

BANCO DO BRASIL - E-COMMERCE

Instruções

Para configurar o Banco do Brasil, é necessário que o site esteja vinculado a uma conta-corrente pessoa jurídica no banco do Brasil.

URL DE RETORNO

URL de Retorno: endereço principal do servidor seguro de aplicação do site (SSL) que deverá estar registrado em Informações Cadastrais do Internet Baking no item URL de Retorno;

Itaú Shopline

Instruções

Para configurar o Itaú Shopline, é necessário que o site esteja vinculado a uma conta-corrente pessoa jurídica no banco Itaú com: cadastro nas carteiras 176 e 178 da Cobrança Eletrônica Itaú, acesso ao Itaú Empresas na internet e contrato formalizado para utilizar o Itaú Shopline.

Para contratar* o Itaú Shopline, o cliente deve acessar: Itaú Empresas na internet > Recebimentos > Itaú Shopline > Contratar, ou através do responsável pelaconta-corrente do site, formalizando a proposta de contratação do produto junto ao Itaú Empresas na internet. Assim que a proposta é aprovada, é encaminhada uma confirmação por e-mail indicando o acesso às instruções de cadastro e instruções de implantação do produto em seu site. Mais informações no manual.

URL DE RETORNO

URL de Retorno: endereço principal do servidor seguro de aplicação do site (SSL) que deverá estar registrado em Informações Cadastrais do Módulo Itaú Shopline no item URL de Retorno;

MOEDAS DIGITAIS

PAGCOIN

Empresa especializada em recebimento de moedas digitais, trabalha com bitcoin. É necessário ter uma conta no Pagcoin para transacionar com as moedas digitais.

Modelo do XML

Exemplo de como gerar uma transação usando o sistema Pagcoin.

<transaction-request>
    <version>1.0.0</version>
    <verification>
        <merchantId>1</merchantId>
        <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <cryptocurrency>
        <order>
            <reference>106</reference>
            <totalAmount>4000</totalAmount>
        </order>
        <payment>
            <acquirer>23</acquirer>
            <amount>4000</amount>
            <currency>986</currency>
            <country>BRA</country>
        </payment>
        <billing>
            <customerIdentity>1</customerIdentity>
            <name>Fulano de Tal</name>
            <address>Rua Cabo Diogo Oliver,536</address>
            <address2>Centro</address2>
            <city>Mogi das Cruzes</city>
            <state>SP</state>
            <postalCode>20031170</postalCode>
            <country>BR</country>
            <phone>1147770000</phone>
            <email>fulanodetal@email.com</email>
        </billing>
        <urlReturn>http://loja.exemplo.com.br</urlReturn>
        <customField/>
    </cryptocurrency>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "cryptocurrency": {
      "order": {
        "reference": "106",
        "totalAmount": "4000"
      },
      "payment": {
        "acquirer": "23",
        "amount": "4000",
        "currency": "986",
        "country": "BRA"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "http://loja.exemplo.com.br"
    }
  }
}

O XML de geração é semelhante ao XML de transação de Cartão de Crédito, com exceção de alguns campos:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de identificação do boleto (Número do documento), número que será identificado no extrado bancário para liquidação financeira.
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
customField N [0…255] Campos para uso diverso

Resposta da transação

Exemplo de resposta da geração de uma transação utilizando PagCoin.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>1B0026EA-3900-56DE-BA3F-327221707E22</transactionId>
    <operationId>13</operationId>
    <status>0</status>
    <message>PAGCOIN URL has been generated successfully.</message>
    <log />
    <errorCode />
    <order>
        <reference>106</reference>
        <totalAmount>4000</totalAmount>
        <currency>986</currency>
        <dateTime>1456464226</dateTime>
    </order>
    <processor>
        <acquirer>Pagcoin</acquirer>
        <acquirerId>23</acquirerId>
        <details>
            <response>/Invoice/8ca1809b337842bbb238ee7ee07987f8</response>
            <qrCode>https://sandbox.pagcoin.com/qr/8ca1809b337842bbb238ee7ee07987f8</qrCode>
        </details>
        <urlTransfer>https://sandbox.pagcoin.com/Invoice/8ca1809b337842bbb238ee7ee07987f8</urlTransfer>
    </processor>
</transaction-response>
{
 "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "1B0026EA-3900-56DE-BA3F-327221707E22",
    "operationId": "13",
    "status": "0",
    "message": "PAGCOIN URL has been generated successfully.",
    "order": {
      "reference": "106",
      "totalAmount": "4000",
      "currency": "986",
      "dateTime": "1456464226"
    },
    "processor": {
      "acquirer": "Pagcoin",
      "acquirerId": "23",
      "details": {
        "response": "/Invoice/8ca1809b337842bbb238ee7ee07987f8",
        "qrCode": "https://sandbox.pagcoin.com/qr/8ca1809b337842bbb238ee7ee07987f8"
      },
      "urlTransfer": "https://sandbox.pagcoin.com/Invoice/8ca1809b337842bbb238ee7ee07987f8"
    }
  }
}
TAG Descrição
transactionId Código de transação do AZPAY (TID)
operationId ID da operação
status Status de retorno da operação
message Mensagem detalhada
log Arquivo de log
order Bloco contendo as informações da cobrança
reference Referência informada pelo logista
totalAmount Valor total a ser processado
currency Código da Moeda
dateTime Data no formato UNIX TIME
processor Bloco contendo as informações do PagCoin
acquirer Nome do agente de pagamento
acquirerId ID gerado pelo PagCoin
qrCode URL do código QRCode
urlTransfer URL de retorno do PagCoin que deverá ser acessada pelo comprador para finalizar o pagamento

SNAPCARD

Empresa especializada em recebimento de moedas digitais, trabalha com as seguintes moedas: bitcoin, litecoin e dogecoin. É necessário ter uma conta no Snapcard para transacionar com as moedas digitais.

UML - Diagrama de sequência

O modelo abaixo representa a operação utilizando uma plataforma de e-commerce.

Processo Especificação
1:CreateOrder() Ocorre no momento que o comprador finalizar o pedido na loja virtual.
2:sendXML() A loja virtual integrada com o AZPAY inicia o processo de comunicação enviando o XML.
3:sendJson() O Azpay comunica com o snapcard para iniciar o processo.
4:InvoiceID() O Snapcard devolve uma URL que precisa ser acessada pelo comprador.
5:ResponseXML() O Azpay devolve em formato XML a transação já com uma indentificação (TID).
6:SnapcardURL() A loja virtual precisa redirecionar o comprador para a URL informada no nó urlTransfer.
7:DoPayment() O comprador realiza o pagamento. O Snapcard devolve os resultados para comprador diretamente
8:Result() O Snapcard devolve a resposta da transação.
9:RedirectThankYouPage() O Snapcard redireciona o comprar para URL de Retorno que foi envia no início da transação.
10:Notify() O Snapcard notifica o AZPAY sobre uma possível transação.
11:ReportInvoice() O AZPAY consulta o Snapcard para saber o status da transação.
12:ReportInvoice() O Snapcard retorna os dados atualizados da transação.
13:Notify() O AZPAY notifica a loja virtual sobre uma possível transação de status.

Modelo do XML

Exemplo de como gerar uma transação usando o sistema Snapcard.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>1</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <snapcard>
    <order>
      <reference>123456789</reference>
      <totalAmount>4000</totalAmount>
    </order>
    <payment>
      <amount>4000</amount>
      <currency>986</currency>
      <country>BRA</country>
    </payment>
    <billing>
      <customerIdentity>1</customerIdentity>
      <name>Fulano de Tal</name>
      <address>Rua Cabo Diogo Oliver,536</address>
      <address2>Centro</address2>
      <city>Mogi das Cruzes</city>
      <state>SP</state>
      <postalCode>20031170</postalCode>
      <country>BR</country>
      <phone>1147770000</phone>
      <email>fulanodetal@email.com</email>
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn>
    <customField/>
  </snapcard>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "snapcard": {
      "order": {
        "reference": "123456789",
        "totalAmount": "4000"
      },
      "payment": {
        "amount": "4000",
        "currency": "986",
        "country": "BRA"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "http://loja.exemplo.com.br"
    }
  }
}

O XML de geração é semelhante ao XML de transação de Cartão de Crédito, com exceção de alguns campos:

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de identificação do boleto (Número do documento), número que será identificado no extrado bancário para liquidação financeira.
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
customField N [0…255] Campos para uso diverso

Resposta da transação

Exemplo de resposta da geração de uma transação utilizando Snapcard.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>7D5B6B98-5DC2-C7CD-4DB4-EB466486BDA4</transactionId>
    <operationId>10</operationId>
    <status>0</status>
    <message>SNAPCARD URL has been generated successfully.</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <totalAmount>4000</totalAmount>
        <currency>986</currency>
        <dateTime>1403880106</dateTime>
    </order>
<processor>
        <acquirer>snapcard</acquirer>
        <acquirerId>21</acquirerId>
        <details>
            <id>iip72smcoqkkod5u5qq22ijjklne10k8</id>
            <merchantId>ak00brce9ppqhcntiplq7hvcem3s5mq</merchantId>
            <creator>merchant:ak00brce9ppqhcntiplq7hvcem3s5mq</creator>
            <createdAt>1433536027464</createdAt>
            <subtotal>0.03</subtotal>
            <tax>0</tax>
            <shipping>0</shipping>
            <total>0.03</total>
            <rawPayout>1</rawPayout>
            <currency>USD</currency>
            <status>OPEN</status>
            <callbackApiVersion>2</callbackApiVersion>
            <paidBalances>
                <BTC>0</BTC>
                <DOGE>0</DOGE>
                <LTC>0</LTC>
            </paidBalances>
            <overpaidBalances>
                <BTC>0</BTC>
                <DOGE>0</DOGE>
                <LTC>0</LTC>
            </overpaidBalances>
            <refundedBalances>
                <BTC>0</BTC>
                <DOGE>0</DOGE>
                <LTC>0</LTC>
            </refundedBalances>
            <merchantProvidedId />
            <title />
            <paidAt />
            <cancelledAt />
            <refundedAt />
            <expiresAt>1433708827464</expiresAt>
            <customerId />
            <callbackUrl>https://api.azpay.com.br/v1/snapcard/return/750E3E4D-470C-0F58-B790-3964195A90F1</callbackUrl>
            <forwardUrl>http://loja.exemplo.com.br</forwardUrl>
            <exceptionReason />
            <lineItems>
                <invoiceId />
                <itemNumber>0</itemNumber>
                <description />
                <quantity>1</quantity>
                <unitPrice>0.03</unitPrice>
                <sku>988AFE455281C31A</sku>
                <itemName>PEDIDO</itemName>
            </lineItems>
            <customer />
            <outstandingBalances>
                <BTC>0.00013593</BTC>
                <DOGE>187.63</DOGE>
                <LTC>0.01701645</LTC>
            </outstandingBalances>
            <pusherChannel>e0b13c74247e019767ecd75d0de32bd4</pusherChannel>
            <paymentLinks>
                <BTC>bitcoin:1LRhepsYTha8z7FR1WKjmLVEUiTxebvDys?amount=0.00013593</BTC>
                <DOGE>dogecoin:DQuM5huXwSEAaJNsDqJx9YYYLHxYkKDWVi?amount=187.63</DOGE>
                <LTC>litecoin:LZqgVd6jSBtPpXPC5tjtKdfPPSKCCqzUWv?amount=0.01701645</LTC>
            </paymentLinks>
            <paymentAddresses>
                <BTC>1LRhepsYTha8z7FR1WKjmLVEUiTxebvDys</BTC>
                <DOGE>DQuM5huXwSEAaJNsDqJx9YYYLHxYkKDWVi</DOGE>
                <LTC>LZqgVd6jSBtPpXPC5tjtKdfPPSKCCqzUWv</LTC>
            </paymentAddresses>
        </details>
        <urlTransfer>https://www.snapcard.io/payment/v2/iip72smcoqkkod5u5qq22ijjklne10k8?t=popup</urlTransfer>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "7D5B6B98-5DC2-C7CD-4DB4-EB466486BDA4",
    "operationId": "10",
    "status": "0",
    "message": "SNAPCARD URL has been generated successfully.",
    "order": {
      "reference": "123456789",
      "totalAmount": "4000",
      "currency": "986",
      "dateTime": "1403880106"
    },
    "processor": {
      "acquirer": "snapcard",
      "acquirerId": "21",
      "details": {
        "id": "iip72smcoqkkod5u5qq22ijjklne10k8",
        "merchantId": "ak00brce9ppqhcntiplq7hvcem3s5mq",
        "creator": "merchant:ak00brce9ppqhcntiplq7hvcem3s5mq",
        "createdAt": "1433536027464",
        "subtotal": "0.03",
        "tax": "0",
        "shipping": "0",
        "total": "0.03",
        "rawPayout": "1",
        "currency": "USD",
        "status": "OPEN",
        "callbackApiVersion": "2",
        "paidBalances": {
          "BTC": "0",
          "DOGE": "0",
          "LTC": "0"
        },
        "overpaidBalances": {
          "BTC": "0",
          "DOGE": "0",
          "LTC": "0"
        },
        "refundedBalances": {
          "BTC": "0",
          "DOGE": "0",
          "LTC": "0"
        },
        "expiresAt": "1433708827464",
        "callbackUrl": "https://api.azpay.com.br/v1/snapcard/return/750E3E4D-470C-0F58-B790-3964195A90F1",
        "forwardUrl": "http://loja.exemplo.com.br",
        "lineItems": {
          "itemNumber": "0",
          "quantity": "1",
          "unitPrice": "0.03",
          "sku": "988AFE455281C31A",
          "itemName": "PEDIDO"
        },
        "outstandingBalances": {
          "BTC": "0.00013593",
          "DOGE": "187.63",
          "LTC": "0.01701645"
        },
        "pusherChannel": "e0b13c74247e019767ecd75d0de32bd4",
        "paymentLinks": {
          "BTC": "bitcoin:1LRhepsYTha8z7FR1WKjmLVEUiTxebvDys?amount=0.00013593",
          "DOGE": "dogecoin:DQuM5huXwSEAaJNsDqJx9YYYLHxYkKDWVi?amount=187.63",
          "LTC": "litecoin:LZqgVd6jSBtPpXPC5tjtKdfPPSKCCqzUWv?amount=0.01701645"
        },
        "paymentAddresses": {
          "BTC": "1LRhepsYTha8z7FR1WKjmLVEUiTxebvDys",
          "DOGE": "DQuM5huXwSEAaJNsDqJx9YYYLHxYkKDWVi",
          "LTC": "LZqgVd6jSBtPpXPC5tjtKdfPPSKCCqzUWv"
        }
      },
      "urlTransfer": "https://www.snapcard.io/payment/v2/iip72smcoqkkod5u5qq22ijjklne10k8?t=popup"
    }
  }
}
TAG Descrição
transactionId Código de transação do AZPAY (TID)
operationId ID da operação
status Status de retorno da operação
message Mensagem detalhada
log Arquivo de log
order Bloco contendo as informações da cobrança
reference Referência informada pelo logista
totalAmount Valor total a ser processado
currency Código da Moeda
dateTime Data no formato UNIX TIME
processor Bloco contendo as informações do Snapcard
acquirer Nome do agente de pagamento
acquirerId ID gerado pelo Snapcard
urlTransfer URL de retorno do Snapcard que deverá ser acessada pelo comprador para finalizar o pagamento

Resposta de erro utilizando Snapcard

Exemplo de resposta de erro: Credenciais informadas no painel de controle inválidas.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>64CBB01D-64D9-BCE4-71C5-5A37A25017F1</transactionId>
    <status>
        <code>409</code>
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>037</code>
            <action>409</action>
            <message>
                <acquirer />
                <errorAcquirer>[HTTP 401] - UNAUTHORIZED '</errorAcquirer>
                <timestamp>1403880621</timestamp>
            </message>
            <details><![CDATA[Adquirente informado não está configurado corretamente ]]></details>
            <moreInfo><![CDATA[Snapcard erro. ]]></moreInfo>
        </error>
    </result>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "64CBB01D-64D9-BCE4-71C5-5A37A25017F1",
    "status": {
      "code": "409",
      "message": "ERROR - 409"
    },
    "result": {
      "error": {
        "code": "037",
        "action": "409",
        "message": {
          "errorAcquirer": "[HTTP 401] - UNAUTHORIZED '",
          "timestamp": "1403880621"
        },
        "details": "Adquirente informado não está configurado corretamente ",
        "moreInfo": "Snapcard erro. "
      }
    }
  }
}
TAG Descrição
transactionId TID gerado pelo AZPAY
status Bloco de resposta HTTP
code Código de resposta HTTP
message Mensagem de resposta HTTP
error Bloco que informa os detalhes do erro
code Código de erro do AZAPAY - Verificar tabela de erros
action Código de resposta HTTP
message Bloco de resposta do Snapcard
errorAcquirer Mensagem de erro informado pela Snapcard
timestamp Data no formato UNIX TIME
details Mensagem de complemento do erro
moreInfo Mensagem de complemento do erro

CLEARSALE

O Start é um produto simples, fácil de ser integrado e atrativo financeiramente para as lojas com baixo volume de transações mensais. Com ele, você terá a melhor ferramenta de detecção de fraude, baseada no modelo estatístico mais atualizado do mercado, que é utilizado e desenvolvido para os maiores varejistas do Brasil.

Exemplo de como usar ClearSale com autorização.

<transaction-request>
    <version>1.0.0</version>
    <verification>
        <merchantId>1</merchantId>
        <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <authorize>
        <order>
            <reference>988AFE455281C31A</reference>
            <totalAmount>20000</totalAmount>
        </order>
        <payment>
            <acquirer>1</acquirer>
            <method>2</method>
            <amount>10000</amount>
            <currency>986</currency>
            <country>BRA</country>
            <numberOfPayments>3</numberOfPayments>
            <groupNumber>0</groupNumber>
            <flag>visa</flag>
            <cardHolder>Jose da Silva</cardHolder>
            <cardNumber>5453010000066100</cardNumber>
            <cardSecurityCode>123</cardSecurityCode>
            <cardExpirationDate>201805</cardExpirationDate>
            <saveCreditCard>true</saveCreditCard>
            <generateToken>false</generateToken>
            <departureTax>0</departureTax>
            <softDescriptor></softDescriptor>
        </payment>
        <billing>
            <customerIdentity>1</customerIdentity>
            <name>Fulano de Tal</name>
            <address>Av. República do Brasil, 1988</address>
            <address2>16 Andar</address2>
            <city>São Paulo</city>
            <state>SP</state>
            <postalCode>08742000</postalCode>
            <country>BR</country>
            <phone>123456789</phone>
            <email>fulanodetal@email.com</email>
        </billing>
         <urlReturn>https://seusite.com.br/retorno</urlReturn>
        <fraud>true</fraud>
        <fraudData>
            <operator>clearsale</operator>
            <method>start</method>
            <costumerIP>111.222.333.444</costumerIP>
            <name>Fulano de Tal</name>
            <document>23233</document>
            <phonePrefix>11</phonePrefix>
            <phoneNumber>123456789</phoneNumber>
            <address>Av. República do Brasil</address>
            <addressNumber>1988</addressNumber>
            <address2>condominio central</address2>
            <city>São Paulo</city>
            <state>SP</state>
            <postalCode>08742000</postalCode>
            <country>BR</country>
            <email>fulanodetal@email.com</email>
            <itens>
                <item>
                    <productName>Iphone 5S - 64GB</productName>
                    <quantity>1</quantity>
                    <price>100000</price>
                </item>
                <item>
                    <productName>Iphone 4S - 32GB</productName>
                    <quantity>1</quantity>
                    <price>100000</price>
                </item>
                [...]
            </itens>
        </fraudData>
        <customField/>
    </authorize>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "authorize": {
      "order": {
        "reference": "988AFE455281C31A",
        "totalAmount": "20000"
      },
      "payment": {
        "acquirer": "1",
        "method": "2",
        "amount": "10000",
        "currency": "986",
        "country": "BRA",
        "numberOfPayments": "3",
        "groupNumber": "0",
        "flag": "visa",
        "cardHolder": "Jose da Silva",
        "cardNumber": "5453010000066100",
        "cardSecurityCode": "123",
        "cardExpirationDate": "201805",
        "saveCreditCard": "true",
        "generateToken": "false",
        "departureTax": "0"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Av. República do Brasil, 1988",
        "address2": "16 Andar",
        "city": "São Paulo",
        "state": "SP",
        "postalCode": "08742000",
        "country": "BR",
        "phone": "123456789",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "https://seusite.com.br/retorno",
      "fraud": "true",
      "fraudData": {
        "operator": "clearsale",
        "method": "start",
        "costumerIP": "111.222.333.444",
        "name": "Fulano de Tal",
        "document": "23233",
        "phonePrefix": "11",
        "phoneNumber": "123456789",
        "address": "Av. República do Brasil",
        "addressNumber": "1988",
        "address2": "condominio central",
        "city": "São Paulo",
        "state": "SP",
        "postalCode": "08742000",
        "country": "BR",
        "email": "fulanodetal@email.com",
        "itens": {
          "item": [
            {
              "productName": "Iphone 5S - 64GB",
              "quantity": "1",
              "price": "100000"
            },
            {
              "productName": "Iphone 4S - 32GB",
              "quantity": "1",
              "price": "100000"
            }
          ],
          "#text": "
                [...]
            "
        }
      }
    }
  }
}

Exemplo de como usar ClearSale com venda direta.

<transaction-request>
    <version>1.0.0</version>
    <verification>
        <merchantId>1</merchantId>
        <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <sale>
        <order>
            <reference>988AFE455281C31A</reference>
            <totalAmount>20000</totalAmount>
        </order>
        <payment>
            <acquirer>1</acquirer>
            <method>2</method>
            <amount>10000</amount>
            <currency>986</currency>
            <country>BRA</country>
            <numberOfPayments>3</numberOfPayments>
            <groupNumber>0</groupNumber>
            <flag>visa</flag>
            <cardHolder>Jose da Silva</cardHolder>
            <cardNumber>5453010000066100</cardNumber>
            <cardSecurityCode>123</cardSecurityCode>
            <cardExpirationDate>201805</cardExpirationDate>
            <saveCreditCard>true</saveCreditCard>
            <generateToken>false</generateToken>
            <departureTax>0</departureTax>
            <softDescriptor></softDescriptor>
        </payment>
        <billing>
            <customerIdentity>1</customerIdentity>
            <name>Fulano de Tal</name>
            <address>Av. República do Brasil, 1988</address>
            <address2>16 Andar</address2>
            <city>São Paulo</city>
            <state>SP</state>
            <postalCode>08742000</postalCode>
            <country>BR</country>
            <phone>123456789</phone>
            <email>fulanodetal@email.com</email>
        </billing>
         <urlReturn>https://seusite.com.br/retorno</urlReturn>
        <fraud>true</fraud>
        <fraudData>
            <operator>clearsale</operator>
            <method>start</method>
            <costumerIP>111.222.333.444</costumerIP>
            <name>Fulano de Tal</name>
            <document>23233</document>
            <phonePrefix>11</phonePrefix>
            <phoneNumber>123456789</phoneNumber>
            <address>Av. República do Brasil</address>
            <addressNumber>1988</addressNumber>
            <address2>condominio central</address2>
            <city>São Paulo</city>
            <state>SP</state>
            <postalCode>08742000</postalCode>
            <country>BR</country>
            <email>fulanodetal@email.com</email>
            <itens>
                <item>
                    <productName>Iphone 5S - 64GB</productName>
                    <quantity>1</quantity>
                    <price>100000</price>
                </item>
                <item>
                    <productName>Iphone 4S - 32GB</productName>
                    <quantity>1</quantity>
                    <price>100000</price>
                </item>
                [...]
            </itens>
        </fraudData>
        <customField/>
    </sale>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "sale": {
      "order": {
        "reference": "988AFE455281C31A",
        "totalAmount": "20000"
      },
      "payment": {
        "acquirer": "1",
        "method": "2",
        "amount": "10000",
        "currency": "986",
        "country": "BRA",
        "numberOfPayments": "3",
        "groupNumber": "0",
        "flag": "visa",
        "cardHolder": "Jose da Silva",
        "cardNumber": "5453010000066100",
        "cardSecurityCode": "123",
        "cardExpirationDate": "201805",
        "saveCreditCard": "true",
        "generateToken": "false",
        "departureTax": "0"
      },
      "billing": {
        "customerIdentity": "1",
        "name": "Fulano de Tal",
        "address": "Av. República do Brasil, 1988",
        "address2": "16 Andar",
        "city": "São Paulo",
        "state": "SP",
        "postalCode": "08742000",
        "country": "BR",
        "phone": "123456789",
        "email": "fulanodetal@email.com"
      },
      "urlReturn": "https://seusite.com.br/retorno",
      "fraud": "true",
      "fraudData": {
        "operator": "clearsale",
        "method": "start",
        "costumerIP": "111.222.333.444",
        "name": "Fulano de Tal",
        "document": "23233",
        "phonePrefix": "11",
        "phoneNumber": "123456789",
        "address": "Av. República do Brasil",
        "addressNumber": "1988",
        "address2": "condominio central",
        "city": "São Paulo",
        "state": "SP",
        "postalCode": "08742000",
        "country": "BR",
        "email": "fulanodetal@email.com",
        "itens": {
          "item": [
            {
              "productName": "Iphone 5S - 64GB",
              "quantity": "1",
              "price": "100000"
            },
            {
              "productName": "Iphone 4S - 32GB",
              "quantity": "1",
              "price": "100000"
            }
          ],
          "#text": "
                [...]
            "
        }
      }
    }
  }
}
TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
method O [1…9] ID de identificação da operação, verificar tabela de operações.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
numberOfPayments O [1…2] Número de parcelas. Para crédito à vista ou débito, utilizar “1”.
groupNumber O [0…0] Verificar
flag O [0…0] Nome da bandeira (minúsculo):
“visa” “mastercard” “diners” “discover” “elo” “amex” “jcb” “aura”.
cardHolder O [1..25] Nome impresso no cartão
cardNumber O [12…19] Número do cartão de crédito
cardSecurityCode O [3…4] Número do código de segurança
cardExpirationDate O [0…0] Validade do cartão no formato aaaamm. Exemplo: 201412 (dez/2014).
saveCreditCard O [true ou false] Permitir salvar o cartão truncado na base para consulta.
generateToken O [true ou false] Gerar token de acesso.
departureTax N [1…10] Taxa de embarque (verificar disponibilidade)
softDescriptor N [1…13] Descrição na fatura do cartão de crédito (verificar disponibilidade)
customerIdentity N [1..30] Número de identificação único do cliente.
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
fraud O [true ou false] Sistema de anti-fraude (verificar disponibilidade)
fraudData.operator O [0…45] “clearsale”
fraudData.method O [0…45] start
fraudData.costumerIP O [0…45] Ip do comprado.
fraudData.name O [0…45] Nome completo do comprador.
fraudData.document O [0…45] CPF ou RG.
fraudData.phonePrefix O [0…45] DDD do telefone.
fraudData.phoneNumber O [0…45] Número do telefone.
fraudData.address O [0…45] Endereço do comprador.
fraudData.addressNumber O [0…45] Número do endereço do comprador.
fraudData.address2 N [0…45] Complemento do endereço caso exista.
fraudData.city O [0…45] Cidade onde mora o comprador
fraudData.state O [2…2] UF do estado do comprador
fraudData.postalCode O [0…45] CEP do comprador
fraudData.country O [2…3] Sigla do Pais
fraudData.email O [1…145] Email do comprador
fraudData.itens O Descrição de todos os itens de venda
fraudData.itens.item.productName O [1…145] Nome do produto adquirido pelo comprador
fraudData.itens.item.quantity O [1…2] Quantidade do produto adquirido pelo comprador
fraudData.itens.item.price O [1…5] Preço do produto adquirido pelo comprador sem casas decimais R$100,00 = 10000

customField|N|[0…255]| Campos para uso diverso

Legenda Descrição
N Não-obrigatório
O Dado obrigatório

TOKENCARD

O AZPay permite a utilização de um token para que o lojista não precise guardar o número do cartão de crédito no seu aplicativo, loja virtual, etc. A cada transação de cartão de crédito o AZPAY devolve um token gerado do cartão do cliente, desde modo, numa próxima transação não haverá a necessidade de enviar novamente os dados do cartão e sim o TOKENCARD.

O TOKENCARD é uma solução que permite por exemplo que um aplicativo mobile solicite apenas uma vez os dados do cartão do cliente e não precise guardar no aplicativo o cartão de crédito, apenas o TOKEN CARD. Quando o cliente quiser pagar novamente o app basta apenas enviar o TOKEN CARD para realizar a transação.

O AZPay está em conformidade com o PCI (PCI - Indústria de Cartões de Pagamento) é um padrão de segurança da informação definido pelo Payment Card Industry Security Standards Council (Conselho de Padrões de Segurança da Indústria de Cartões de Pagamento). A certificação PCI é necessária para organizações (comerciantes e provedores de serviços) que processam pagamentos de cartão de crédito. Essa certificação é projetada para prevenir a fraude de cartões de crédito através de controles mais rígidos sobre os dados e sobre a exposição dos dados ao comprometimento. O padrão se aplica a todas as organizações que mantêm, processam ou trocam informações de proprietários de todos os cartões com o logotipo de uma das marcas de cartão.

Cadastrar / Gerar

O AZPay permite a utilização de um token para que o lojista não precise guardar o número do cartão de crédito no seu aplicativo, loja virtual, etc. A cada transação de cartão de crédito o AZPAY devolve um token gerado do cartão do cliente, desde modo, numa próxima transação não haverá a necessidade de enviar novamente os dados do cartão e sim o TOKENCARD.

Exemplo de como gerar um token para um cartão.

<transaction-request>
    <version>1.0.0</version>
    <verification>
        <merchantId>1</merchantId>
        <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <tokencard>
        <flag>visa</flag>
        <cardHolder>Jose da Silva</cardHolder>
        <cardNumber>5399444455555432</cardNumber>
        <cardSecurityCode>123</cardSecurityCode>
        <cardExpirationDate>201805</cardExpirationDate>
        <billing>
            <customerIdentity>12332423</customerIdentity>
            <name>Jose da Silva</name>
            <address>Av. República do Brasil,1988</address>
            <address2>08 Andar</address2>
            <city>Mogi das Cruzes</city>
            <state>SP</state>
            <postalCode>08742000</postalCode>
            <country>BR</country>
            <phone>998712121</phone>
            <email>meucliente@site.com.br</email>
        </billing>
    </tokencard>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "tokencard": {
      "flag": "visa",
      "cardHolder": "Jose da Silva",
      "cardNumber": "5399444455555432",
      "cardSecurityCode": "123",
      "cardExpirationDate": "201805",
      "billing": {
        "customerIdentity": "12332423",
        "name": "Jose da Silva",
        "address": "Av. República do Brasil,1988",
        "address2": "08 Andar",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "08742000",
        "country": "BR",
        "phone": "998712121",
        "email": "meucliente@site.com.br"
      }
    }
  }
}

Exemplo de como resgatar a informação de um TokenCard.

<transaction-request>
    <version>1.0.0</version>
    <verification>
        <merchantId>1</merchantId>
        <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <retrieve-token>
 <token>2a1308180bf27ebd19686ff090fb0cd4e9db4d5e360046fa13c9ef5903f80ae7</token>
</retrieve-token>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "1",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "retrieve-token": { "token": "2a1308180bf27ebd19686ff090fb0cd4e9db4d5e360046fa13c9ef5903f80ae7" }
  }
}

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/token/add

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
flag O [0…0] Nome da bandeira (minúsculo):
“visa” “mastercard” “diners” “discover” “elo” “amex” “jcb” “aura”.
cardHolder O [1..25] Nome impresso no cartão
cardNumber O [12…19] Número do cartão de crédito
cardSecurityCode O [3…4] Número do código de segurança
cardExpirationDate O [0…0] Validade do cartão no formato aaaamm. Exemplo: 201412 (dez/2014).
name N [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email N [0…145] E-mail do cliente

Consultar

Exemplo de resposta da consulta.

<transaction-response id="1" versao="1.0">
    <TokenCard>2a1308180bf27ebd19686ff090fb0cd4e9db4d5e360046fa13c9ef5903f80ae7</TokenCard>
    <BIN>53*****0656</BIN>
    <CardHolder>Jose da Silva</CardHolder>
    <Month>05</Month>
    <Year>2018</Year>
    <Flag>visa</Flag>
    <Address1>>Av. República do Brasil,1988</Address1>
    <Address2>08 Andar</Address2>
    <City>Mogi das Cruzes</City>
    <State>SP</State>
    <Zipcode>08742000</Zipcode>
    <Created_at>1449350710</Created_at>
    <Client>
        <id>48</id>
        <name>Jose da Silva</name>
        <address>>Av. República do Brasil,1988</address>
        <address2>08 Andar</address2>
        <city>Mogi das Cruzes</city>
        <state>SP</state>
        <postalCode>08742000</postalCode>
        <country>BR</country>
        <phone>998712121</phone>
        <email>meucliente@site.com.br</email>
        <status>1</status>
        <create_time>1449350710</create_time>
        <Store_id>1</Store_id>
        <reference>24287949</reference>
    </Client>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "TokenCard": "2a1308180bf27ebd19686ff090fb0cd4e9db4d5e360046fa13c9ef5903f80ae7",
    "BIN": "53*****0656",
    "CardHolder": "Jose da Silva",
    "Month": "05",
    "Year": "2018",
    "Flag": "visa",
    "Address1": ">Av. República do Brasil,1988",
    "Address2": "08 Andar",
    "City": "Mogi das Cruzes",
    "State": "SP",
    "Zipcode": "08742000",
    "Created_at": "1449350710",
    "Client": {
      "id": "48",
      "name": "Jose da Silva",
      "address": ">Av. República do Brasil,1988",
      "address2": "08 Andar",
      "city": "Mogi das Cruzes",
      "state": "SP",
      "postalCode": "08742000",
      "country": "BR",
      "phone": "998712121",
      "email": "meucliente@site.com.br",
      "status": "1",
      "create_time": "1449350710",
      "Store_id": "1",
      "reference": "24287949"
    }
  }
}

O TOKENCARD gerado é válido apenas para a conta registrada no AZPAY e limitada pela loja homologada. O TOKENCARD só é transacionado dentro da loja do cliente, não podendo mais ser utilizado em outra conta ou até mesmo fora do AZPAY.

HTTPS REQUEST

Raw POST data

POST https://api.azpay.com.br/v1/token/retrieve

TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
token O [10…50] Token do cartão que deverá ser consultado.

NOTIFICAÇÃO DE STATUS

Exemplo de como utilizar um URL de Retorno dentro do AZPAY.

<transaction-request>
  <version>1.0.0</version>
  <verification>
    ...
  </verification>
  <sale>
    <order>
      ...
    </order>
    <payment>
      ...
    </payment>
    <billing>
      ...
    </billing>
    <urlReturn>http://loja.exemplo.com.br</urlReturn> ----> URL DE RETORNO
    <fraud>false</fraud>
    <customField/>
  </sale>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": "
    ...
  ",
    "sale": {
      "order": "
      ...
    ",
      "payment": "
      ...
    ",
      "billing": "
      ...
    ",
      "urlReturn": "http://loja.exemplo.com.br",
      "#text": " ----> URL DE RETORNO
    ",
      "fraud": "false"
    }
  }
}

O Azpay a cada alteração de status da transação realiza um POST para a URL de retorno quando informada no XML.

POST http://loja.exemplo.com.br

POST DATA Descrição
TID TID - Transação ID que sofreu alteração por algum evento dentro do AZPAY. Muito importante!
order_reference Referência informada no XML que foi recebido antes de processar a requisição.
last_update Data hora da última atualização.
create_time Data hora da criação.
transaction_cod Código da transação.
store_id ID da Loja.
customers_id Id do cliente informado no XML.
customers_name Nome do cliente.
recurrences_id Código da transação recorrente se existir.
ip_address IP que realizou o envio do XML.
charge_total Valor total que foi transacionado.
number_installm Número de parcelas.
currency_code Código da moeda utilizada.
custom_field Campo customizado.
status Novo status da transação.
acquirer_url URL fornecida pela operadora

TRANSAÇÃO AGENDADA

Exemplo no trecho do XML para configurar uma transação de R$100,00 a cada 15 dias.

<transaction-request>
  ...
  <rebill>
    <order>
          <reference>123456789</reference>   -------> Referência do pedido, produto, etc.
          <totalAmount>10000</totalAmount>   -------> 1000 = R$100,00.
          <period>1</period>                 -------> 1 = Período de dias.
          <frequency>15</frequency>          -------> 15 = A cada 15 dias.
          <dateStart>2014-06-15</dateStart>  -------> Inicia em 15/06/2015.
          <dateEnd>2014-07-24</dateEnd>      -------> Limite máximo até o dia 24/07/2015.
    </order>
  ...
  </rebill>
</transaction-request>
TAG Descrição
period 1 = Dia
2 = Semana
3 = Mês
4 = Ano
frequency Frequência da recorrêcia.
dateStart Data de início da cobrança. Formato YYYY-MM-DD
dateEnd Data final de cobrança. Formato YYYY-MM-DD

Transação recorrente é possibilidade de enviar transações recorrentes de um cartão ou boleto bancário. Essa funcionalidade é muito útil, por exemplo, em casos de assinaturas de revistas.

RECORRÊNCIA - BOLETO BANCÁRIO

Exemplo de envio do XML para transação recorrente utilizando boleto bancário. Abaixo mostra uma recorrência de R$100,00 a cada 15 dias, com início em 2014-06-15 e fim em2014-07-24` usando boleto do banco Santander.

<transaction-request>
    <version>1.0.0</version>
    <verification>
      <merchantId>00053232</merchantId>
      <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <rebill>
        <order>
            <reference>123456789</reference>
            <totalAmount>10000</totalAmount>
            <period>1</period>
            <frequency>15</frequency>
            <dateStart>2014-06-15</dateStart>
            <dateEnd>2014-07-24</dateEnd>
        </order>
        <paymentBoletoBancario>
            <acquirer>13</acquirer>
            <amount>10000</amount>
            <currency>986</currency>
            <country>BRA</country>
            <instructions>Não aceitar pagamento em cheques. \n Percentual Juros Dia: 1%. Percentual Multa: 1%.</instructions>
        </paymentBoletoBancario>
        <billing>
            <customerIdentity>1123213</customerIdentity>
            <name>Fulano de Tal</name>
            <address>Rua Cabo Diogo Oliver,536</address>
            <address2>Centro</address2>
            <city>Mogi das Cruzes</city>
            <state>SP</state>
            <postalCode>20031170</postalCode>
            <country>BR</country>
            <phone>1147770000</phone>
            <email>meucliente@meusite.com.br</email>
        </billing>
        <customField/>
    </rebill>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "rebill": {
      "order": {
        "reference": "123456789",
        "totalAmount": "10000",
        "period": "1",
        "frequency": "15",
        "dateStart": "2014-06-15",
        "dateEnd": "2014-07-24"
      },
      "paymentBoletoBancario": {
        "acquirer": "13",
        "amount": "10000",
        "currency": "986",
        "country": "BRA",
        "instructions": "Não aceitar pagamento em cheques. \\n Percentual Juros Dia: 1%. Percentual Multa: 1%."
      },
      "billing": {
        "customerIdentity": "1123213",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "meucliente@meusite.com.br"
      }
    }
  }
}
TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
period 1 = Dia
2 = Semana
3 = Mês
4 = Ano
frequency Frequência da recorrêcia. Máximo de 50 dias ou 200 semanas ou 72 meses ou 5 anos.
dateStart Data de início da cobrança. Formato YYYY-MM-DD
dateEnd Data final de cobrança. Formato YYYY-MM-DD
acquirer O [1…9] ID de identificação do operador, verificar tabela de operadores.
amount O [3…12] Valor da operação, (já deve incluir valores de frete, embrulho, custos extras, taxa de embarque, etc). Esse valor é o que será debitado do consumidor.
currency O [0…0] Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
country O [0…0] Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
customerIdentity O [1..30] Número de identificação único do cliente.
name O [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email O [0…145] E-mail do cliente
customField N [0…255] Campos para uso diverso

Resposta da transação acima: Foi gerado 3 boletos bancários no valor de R$100,00 cada.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>0047B086-DBA4-60F4-3DC6-C0C8E16EF9CA</transactionId>
    <operationId>7</operationId>
    <status>10</status>
    <type>Boleto Bancário</type>
    <message>SCHEDULED</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <currency>986</currency>
        <totalAmount>10000</totalAmount>
        <dateTime>2014-05-22T19:57:14-03:00</dateTime>
    </order>
    <processor>
        <dateStart>2014-06-15</dateStart>
        <dateEnd>2014-07-24</dateEnd>
        <message>SCHEDULED</message>
        <quantityPayments>3</quantityPayments>
        <payments>
            <payment>
                <id>842</id>
                <expire>2014-06-15</expire>
                <amount>10000</amount>
                <urlBoleto>https://api.azpay.com.br/v1/boleto/fc1c23a0ecd7d0de18963a4e46d76817</urlBoleto>
                <nrDocument>123456789-1</nrDocument>
            </payment>
            <payment>
                <id>843</id>
                <expire>2014-06-30</expire>
                <amount>10000</amount>
                <urlBoleto>https://api.azpay.com.br/v1/boleto/7713585aa3d2704d56f6ebb15dc44004</urlBoleto>
                <nrDocument>123456789-2</nrDocument>
            </payment>
            <payment>
                <id>844</id>
                <expire>2014-07-15</expire>
                <amount>10000</amount>
                <urlBoleto>https://api.azpay.com.br/v1/boleto/864c77fd2d1040249c7a1264b3abaa73</urlBoleto>
                <nrDocument>123456789-3</nrDocument>
            </payment>
        </payments>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "0047B086-DBA4-60F4-3DC6-C0C8E16EF9CA",
    "operationId": "7",
    "status": "10",
    "type": "Boleto Bancário",
    "message": "SCHEDULED",
    "order": {
      "reference": "123456789",
      "currency": "986",
      "totalAmount": "10000",
      "dateTime": "2014-05-22T19:57:14-03:00"
    },
    "processor": {
      "dateStart": "2014-06-15",
      "dateEnd": "2014-07-24",
      "message": "SCHEDULED",
      "quantityPayments": "3",
      "payments": {
        "payment": [
          {
            "id": "842",
            "expire": "2014-06-15",
            "amount": "10000",
            "urlBoleto": "https://api.azpay.com.br/v1/boleto/fc1c23a0ecd7d0de18963a4e46d76817",
            "nrDocument": "123456789-1"
          },
          {
            "id": "843",
            "expire": "2014-06-30",
            "amount": "10000",
            "urlBoleto": "https://api.azpay.com.br/v1/boleto/7713585aa3d2704d56f6ebb15dc44004",
            "nrDocument": "123456789-2"
          },
          {
            "id": "844",
            "expire": "2014-07-15",
            "amount": "10000",
            "urlBoleto": "https://api.azpay.com.br/v1/boleto/864c77fd2d1040249c7a1264b3abaa73",
            "nrDocument": "123456789-3"
          }
        ]
      }
    }
  }
}

Resposta da recorrência por boleto bancário

TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
Boleto Contem um bloco de informações geradas pela operadora utilizada.
acquirerId COnfirmação do Código de operadora
id Identificação única do boleto dentro do AZPAY
expire Data de validade do boleto
amount Valor do boleto
urlBoleto URL de visualização do boleto gerado
nrDocument Número do documento fornecido no XML para identificação de pagamento.

RECORRÊNCIA - CARTÃO DE CRÉDITO

Exemplo de envio do XML para transação recorrente utilizando cartão de crédito. Abaixo mostra uma recorrência de R$100,00 a cada 15 dias, com início em 2014-06-15 e fim em2014-07-24`.

<transaction-request>
    <version>1.0.0</version>
    <verification>
      <merchantId>00053232</merchantId>
      <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <rebill>
        <order>
            <reference>123456789</reference>
            <totalAmount>10000</totalAmount>
            <period>1</period>
            <frequency>15</frequency>
            <dateStart>2014-06-15</dateStart>
            <dateEnd>2014-07-24</dateEnd>
        </order>
    <paymentCreditCard>
      <acquirer>1</acquirer>
      <amount>10000</amount>
      <currency>986</currency>
      <country>BRA</country>
      <numberOfPayments>1</numberOfPayments>
      <groupNumber>0</groupNumber>
      <flag>visa</flag>
      <cardHolder>Jose da Silva</cardHolder>
      <cardNumber>5453010000066167</cardNumber>
      <cardSecurityCode>123</cardSecurityCode>
      <cardExpirationDate>201805</cardExpirationDate>
      <saveCreditCard>true</saveCreditCard>
      <generateToken>false</generateToken>
      <departureTax>0</departureTax>
    </paymentCreditCard>
        <billing>
            <customerIdentity>1123213</customerIdentity>
            <name>Fulano de Tal</name>
            <address>Rua Cabo Diogo Oliver,536</address>
            <address2>Centro</address2>
            <city>Mogi das Cruzes</city>
            <state>SP</state>
            <postalCode>20031170</postalCode>
            <country>BR</country>
            <phone>1147770000</phone>
            <email>meucliente@meusite.com.br</email>
        </billing>
        <urlReturn>https://seusite.com.br/retorno</urlReturn>
        <customField/>
    </rebill>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "rebill": {
      "order": {
        "reference": "123456789",
        "totalAmount": "10000",
        "period": "1",
        "frequency": "15",
        "dateStart": "2014-06-15",
        "dateEnd": "2014-07-24"
      },
      "paymentCreditCard": {
        "acquirer": "1",
        "amount": "10000",
        "currency": "986",
        "country": "BRA",
        "numberOfPayments": "1",
        "groupNumber": "0",
        "flag": "visa",
        "cardHolder": "Jose da Silva",
        "cardNumber": "5453010000066167",
        "cardSecurityCode": "123",
        "cardExpirationDate": "201805",
        "saveCreditCard": "true",
        "generateToken": "false",
        "departureTax": "0"
      },
      "billing": {
        "customerIdentity": "1123213",
        "name": "Fulano de Tal",
        "address": "Rua Cabo Diogo Oliver,536",
        "address2": "Centro",
        "city": "Mogi das Cruzes",
        "state": "SP",
        "postalCode": "20031170",
        "country": "BR",
        "phone": "1147770000",
        "email": "meucliente@meusite.com.br"
      },
      "urlReturn": "https://seusite.com.br/retorno"
    }
  }
}
TAG Requisito Tamanho / Limite Descrição
version O [3..5] Versão do xml para verificação de versionamento
merchantId O [1…10] Número de afiliacão da loja com o AZPAY.
merchantKey O [10…50] Token de acesso, pode ser alterado via painel de controle
reference O [1…16] Número de referência de um produto, pedido, serviço, etc. Identificação dentro do AZPAY
totalAmount O [3…12]] Valor total a ser processado. R$1,00 = 100
period O [1..1] 1 = Dia
2 = Semana
3 = Mês
4 = Ano
frequency O [1..2] Frequência da recorrêcia. Máximo de 50 dias ou 200 semanas ou 72 meses ou 5 anos.
dateStart O [10..10] Data de início da cobrança. Formato YYYY-MM-DD
dateEnd O [10..10] Data final de cobrança. Formato YYYY-MM-DD
cardHolder O [1..25] Nome impresso no cartão
cardNumber O [12…19] Número do cartão de crédito
cardSecurityCode O [3…4] Número do código de segurança
cardExpirationDate O [0…0] Validade do cartão no formato aaaamm. Exemplo: 201412 (dez/2014).
saveCreditCard O [true ou false] Permitir salvar o cartão truncado na base para consulta.
generateToken O [true ou false] Gerar token de acesso.
departureTax N [1…10] Taxa de embarque (verificar disponibilidade)
softDescriptor N [1…13] Descrição na fatura do cartão de crédito (verificar disponibilidade)
customerIdentity O [1..30] Número de identificação único do cliente.
name O [0…255] Nome do cliente
address N [0…255] Endereço do cliente
address2 N [0…255] Complemento do cliente
city N [0…255] Cidade do cliente
state N [0…255] Estado do cliente
postalCode N [0…255] CEP, código postal do cliente
country N [0…255] País do cliente
phone N [0…45] Telefone do Cliente
email O [0…145] E-mail do cliente
urlReturn O [0…255] URL de retorno que receberá um POST depois de cada alteração de status da transação.
customField N [0…255] Campos para uso diverso

Resposta da recorrência por cartão de crédito

Resposta da transação acima: Foi gerado 3 agendamentos de transação no valor de R$100,00 cada.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>8D42291B-8285-B427-CEB4-CBF58862F5CA</transactionId>
    <operationId>7</operationId>
    <status>10</status>
    <type>Credit Card</type>
    <message>SCHEDULED</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <currency>986</currency>
        <totalAmount>10000</totalAmount>
        <dateTime>2014-05-24T12:51:42-03:00</dateTime>
    </order>
    <processor>
        <dateStart>2014-06-15</dateStart>
        <dateEnd>2014-07-24</dateEnd>
        <message>SCHEDULED</message>
        <quantityPayments>3</quantityPayments>
        <payments>
            <payment>
                <ticket>4860</ticket>
                <date>2015-06-08</date>
                <amount>10000</amount>
                <status>10</status>
                <statusMessage>Pagamento Recorrente - Agendado</statusMessage>
            </payment>
            <payment>
                <ticket>4860</ticket>
                <date>2015-07-08</date>
                <amount>10000</amount>
                <status>10</status>
                <statusMessage>Pagamento Recorrente - Agendado</statusMessage>
            </payment>
            <payment>
                <ticket>4859</ticket>
                <date>2015-08-08</date>
                <amount>10000</amount>
                <status>10</status>
                <statusMessage>Pagamento Recorrente - Agendado</statusMessage>
            </payment>
        </payments>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "8D42291B-8285-B427-CEB4-CBF58862F5CA",
    "operationId": "7",
    "status": "10",
    "type": "Credit Card",
    "message": "SCHEDULED",
    "order": {
      "reference": "123456789",
      "currency": "986",
      "totalAmount": "10000",
      "dateTime": "2014-05-24T12:51:42-03:00"
    },
    "processor": {
      "dateStart": "2014-06-15",
      "dateEnd": "2014-07-24",
      "message": "SCHEDULED",
      "quantityPayments": "3",
      "payments": {
        "payment": [
          {
            "ticket": "4860",
            "date": "2015-06-08",
            "amount": "10000",
            "status": "10",
            "statusMessage": "Pagamento Recorrente - Agendado"
          },
          {
            "ticket": "4860",
            "date": "2015-07-08",
            "amount": "10000",
            "status": "10",
            "statusMessage": "Pagamento Recorrente - Agendado"
          },
          {
            "ticket": "4859",
            "date": "2015-08-08",
            "amount": "10000",
            "status": "10",
            "statusMessage": "Pagamento Recorrente - Agendado"
          }
        ]
      }
    }
  }
}
TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
quantityPayments Quantidade de transações agendadas.
payments Contem um bloco de informações geradas pela operadora utilizada.
ticket Número de agendamento da transação. Recomendado para controle interno do sistema.
date Data do agendamento da transação.
amount Valor da transação.
status Status atual.
statusMessage Mensagem do status.

Consultar as transações de agendamento

Consulta uma transação de agendamento

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <report>
      <transactionId>8D42291B-8285-B427-CEB4-CBF58862F5CA</transactionId>
  </report>
</transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "report": { "transactionId": "8D42291B-8285-B427-CEB4-CBF58862F5CA" }
  }
}

Resposta da consulta de agendamento com os TIDs atualizados das datas processadas.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>8D42291B-8285-B427-CEB4-CBF58862F5CA</transactionId>
    <operationId>7</operationId>
    <status>10</status>
    <type>Credit Card</type>
    <message>SCHEDULED</message>
    <log />
    <errorCode />
    <order>
        <reference>123456789</reference>
        <currency>986</currency>
        <totalAmount>10000</totalAmount>
        <dateTime>2014-05-24T12:51:42-03:00</dateTime>
    </order>
    <processor>
        <dateStart>2014-06-15</dateStart>
        <dateEnd>2014-07-24</dateEnd>
        <message>SCHEDULED</message>
        <quantityPayments>3</quantityPayments>
        <payments>
            <payment>
                <tid>3E7A28D8-CECD-53AA-0858-18FEEF99B083</tid> --> TID da transação
                <ticket>4860</ticket>
                <date>2015-06-08</date>
                <amount>10000</amount>
                <status>8</status> --> Status do TID
                <statusMessage>Capturada / Finalizada</statusMessage>
            </payment>
            <payment>
                <tid>53AA53AA-CECD-53AA-0858-CBF58862F5CA</tid> --> TID da transação
                <ticket>4860</ticket>
                <date>2015-06-08</date>
                <amount>10000</amount>
                <status>8</status> --> Status do TID
                <statusMessage>Capturada / Finalizada</statusMessage>
            </payment>
            <payment>
                <ticket>4859</ticket>
                <date>2015-05-08</date>
                <amount>10000</amount>
                <status>10</status>
                <statusMessage>Pagamento Recorrente - Agendado</statusMessage>
            </payment>
        </payments>
    </processor>
</transaction-response>
{
  "transaction-response": {
    "-id": "1",
    "-versao": "1.0",
    "transactionId": "8D42291B-8285-B427-CEB4-CBF58862F5CA",
    "operationId": "7",
    "status": "10",
    "type": "Credit Card",
    "message": "SCHEDULED",
    "order": {
      "reference": "123456789",
      "currency": "986",
      "totalAmount": "10000",
      "dateTime": "2014-05-24T12:51:42-03:00"
    },
    "processor": {
      "dateStart": "2014-06-15",
      "dateEnd": "2014-07-24",
      "message": "SCHEDULED",
      "quantityPayments": "3",
      "payments": {
        "payment": [
          {
            "tid": "3E7A28D8-CECD-53AA-0858-18FEEF99B083",
            "#text": [
              " --> TID da transação
                ",
              " --> Status do TID
                "
            ],
            "ticket": "4860",
            "date": "2015-06-08",
            "amount": "10000",
            "status": "8",
            "statusMessage": "Capturada / Finalizada"
          },
          {
            "tid": "53AA53AA-CECD-53AA-0858-CBF58862F5CA",
            "#text": [
              " --> TID da transação
                ",
              " --> Status do TID
                "
            ],
            "ticket": "4860",
            "date": "2015-06-08",
            "amount": "10000",
            "status": "8",
            "statusMessage": "Capturada / Finalizada"
          },
          {
            "ticket": "4859",
            "date": "2015-05-08",
            "amount": "10000",
            "status": "10",
            "statusMessage": "Pagamento Recorrente - Agendado"
          }
        ]
      }
    }
  }
}

A consulta é feita da mesma forma que as consultas padrões, entretanto para recorrência a resposta é diferente. Ao lado o exemplo de consulta e respostas. Abaixo segue a relação dos campos.

TAG Descrição
transactionId Identificação da transação dentro do AZPAY
status Status atual da transação
message Mensagem de resposta do AZPAY
errorCode Código de erro gerado. Verificar tabela de erros.
statusCode Código de erro gerado pela operadora.
quantityPayments Quantidade de transações agendadas.
payments Contem um bloco de informações geradas pela operadora utilizada.
tid TID da transação caso tenha sido processada na data de agendamento.
ticket Número de agendamento da transação. Recomendado para controle interno do sistema.
date Data do agendamento da transação.
amount Valor da transação.
status Status da transação.
statusMessage Mensagem do status.

Cancelar uma data específica de uma transação recorrente.

 <transaction-request>
    <version>1.0.0</version>
    <verification>
        <merchantId>00053232</merchantId>
        <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
    </verification>
    <cancel>
        <transactionId>8D42291B-8285-B427-CEB4-CBF58862F5CA</transactionId>
        <ticket>4859</ticket>
    </cancel>
 </transaction-request>
{
  "transaction-request": {
    "version": "1.0.0",
    "verification": {
      "merchantId": "00053232",
      "merchantKey": "xl4fgdwt6ukutyb99772555939853191"
    },
    "cancel": {
      "transactionId": "8D42291B-8285-B427-CEB4-CBF58862F5CA",
      "ticket": "4859"
    }
  }
}

CÓDIGOS DO SISTEMA

Códigos de Envio

São códigos necessários para montagem do XML antes de enviar para o AZPAY.

Código da Operadora / Adquirente

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <sale>
    ...
    <payment>
      <acquirer>1</acquirer>  ---> 1 = CIELO - BUY PAGE LOJA
      <method>1</method>
      <amount>10000</amount>
      ...
    </payment>
    <billing>
        ...
    </billing>
    ...
  </sale>
</transaction-request>

Código utilizado para definir a operadora, o valor deve ser definido dentro da TAG <acquirer>

Código Operadora ou Adquirente Observação
1 CIELO - BUY PAGE LOJA www.cielo.com.br
2 CIELO - BUY PAGE CIELO www.cielo.com.br
3 REDE - KOMERCI WEBSERVICE www.userede.com.br
4 REDE - KOMERCI INTEGRADO www.userede.com.br
6 ELAVON www.elavon.com.br
20 STONE PAGAMENTOS www.stone.com.br
21 SNAPCARD www.snapcard.io
22 GETNET www.getnet.com.br
23 PAGCOIN www.pagcoin.com
24 GLOBAL PAYMENTS www.globalpagamentos.com.br
25 BIN www.bin.com.br
10 BRADESCO Fale com seu gerente para habilitar a carteira de boleto.
11 ITAÚ Fale com seu gerente para habilitar a carteira de boleto.
12 Boleto BANCO DO BRASIL Fale com seu gerente para habilitar a carteira de boleto.
13 Boleto BANCO SANTANDER Fale com seu gerente para habilitar a carteira de boleto.
14 Boleto CAIXA - SEM REGISTRO Fale com seu gerente para habilitar a carteira de boleto.
15 Boleto CAIXA - SINCO Fale com seu gerente para habilitar a carteira de boleto.
16 Boleto CAIXA - SIGCB Fale com seu gerente para habilitar a carteira de boleto.
17 Boleto HSBC Fale com seu gerente para habilitar a carteira de boleto.

Códigos de Métodos de Operação

<transaction-request>
  <version>1.0.0</version>
  <verification>
    <merchantId>00053232</merchantId>
    <merchantKey>xl4fgdwt6ukutyb99772555939853191</merchantKey>
  </verification>
  <sale>
    ...
    <payment>
      <acquirer>1</acquirer>
      <method>1</method>     ---> 1 = Crédito a vista
      <amount>10000</amount>
      ...
    </payment>
    <billing>
        ...
    </billing>
    ...
  </sale>
</transaction-request>

Código utilizado para definir o método de operação ou produto, o valor deve ser definido dentro da TAG <method>.A definição desse valor deve ser o mesmo produtou ou operação contratada junto ao adquirente.

Código Operaçãp Observação
1 Crédito a vista Consulte adquirente.
2 Parcelado loja Consulte adquirente.
3 Parcelado Administradora Consulte adquirente.
4 Débito Consulte adquirente.
5 Autorização Recorrente Válido somente para Cielo e operação de Venda Direta. A autorização recorrente pode ser feita de duas formas: através do envio de um token previamente cadastrado, ou através de um cartão. A transação recorrente é praticamente igual à transação tradicional, as mudanças consistem nas regras que o emissor e a bandeira utilizam para autorizar ou negar uma transação.

CÓDIGOS DE RESPOSTAS

São códigos retonados durante uma transação dentro do AZPAY.

Tipo de operação

Exemplo de resposta, no caso é uma transação de Venda Direta

<transaction-response id="1" versao="1.0">
    <transactionId>08122F2B-B1A5-28C4-06E0-4F1E9A06CECD</transactionId>
    <operationId>3</operationId> ----> 3 = Venda direta
    <status>8</status>
    <message>APPROVED</message>
    <log>logs/2014/05/15/1512.log</log>
    <errorCode/>
    <order>
      ...
    </order>
    <processor>
      ...
    </processor>
</transaction-response>

Tipo de operação é forma como foi escolhida a transação, esta resposta encontra-se na TAG operationId

Código Tipo de operação Interno
1 Autorização AUTHORIZE
2 Captura de transação CAPTURE
3 Venda Direta SALE
5 Cancelamento CANCEL
6 Consulta / Pesquisa REPORT
7 Transação Recorrente REBILL
8 Transação utilizando Boleto Bancário BOLETO
9 Autenticação AUTH
10 Pagseguro PAGSEGURO
11 Paypal PAYPAL
12 Transferência Eletrônica TRANSFER
13 Moedas Digitais CRYPTOCURRENCY

Status da transação

Exemplo de resposta, no caso é uma transação de Venda Direta na qual foi aprovada.

<transaction-response id="1" versao="1.0">
    <transactionId>08122F2B-B1A5-28C4-06E0-4F1E9A06CECD</transactionId>
    <operationId>3</operationId> ----> 3 = Venda direta
    <status>8</status>           ----> 8 = Capturada
    <message>APPROVED</message>  ----> Mensagem de aprovação
    <log>logs/2014/05/15/1512.log</log>
    <errorCode/>
    <order>
      ...
    </order>
    <processor>
      ...
    </processor>
</transaction-response>

A TAG status é a resposta mais imporante da comunicação, neste caso é a resposta do status atual da transação, encontra-se logo abaixo da TAG operationId

Código Status Descrição
0 Criada / Em andamento A transação ainda não foi processada pelo Adquirente escolhido para transacionar.
1 Autenticada A transação foi validada mais ainda não foi processada para saber se foi aprovada.
2 Não-Autenticada Não houve validação do cartão de crédito.
3 Autorizada pela operadora A transação foi aprovada mais ainda não foi capturada, os créditos ainda não foram creditados para o lojista.
4 Não-Autorizada pela operadora A transação não foi aprovada, verifique a tabela de possíveis erros.
5 Em Cancelamento A transação ainda não foi cancelada, aguardando adquirente retornar a confirmação.
6 Cancelado A transação foi cancelada e não será mais creditada o valor para o lojista.
7 Em Captura A transação ainda não foi capturada, aguardando adquirente retornar a confirmação.
8 Capturada / Finalizada A transação foi capturada e os créditos foram confirmados para o lojista.
9 Não-Capturada A transação não foi capturada, tentar novamente a captura.
10 Pagamento Recorrente - Agendado A transação de pagamento foi agendada para as datas definidas pelo envio do XML.
12 Boleto Gerado O boleto foi gerado com sucesso.

CÓDIGOS DE ERROS

Exemplo de erro 028, Operadora Elavon negou a transação. Motivo: Dados no cartão são inválidos.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>5376A62C-14F0-9DB1-9A64-492C5CF9D6DB</transactionId>
    <status>
        <code>409</code>  ---> 409 = Resposta HTTTP 409
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>028</code> ---> Código de erro AZPAY
            <action>409</action>
            <message>
                <acquirer />
                <errorAcquirer>E6</errorAcquirer> ---> Código de erro da Operadora
                <timestamp>1400782799</timestamp>
            </message>
            <details><![CDATA[Inconsistência no envio do cartão, dados inválidos]]></details>
            <moreInfo><![CDATA[Card number is invalid]]></moreInfo>
        </error>
    </result>
</transaction-response>

Exemplo de erro 001. Motivo: O XML enviado está com erros.

<transaction-response id="1" versao="1.0">
    <transactionId>B2EB7F21-D871-AD48-3405-60A706BA3A94</transactionId>
    <status>
        <code>409</code> ---> 409 = Resposta HTTTP 409
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>001</code> ---> Código de erro AZPAY
            <action>409</action>
            <message>
                <acquirer />
                <errorAcquirer>099</errorAcquirer> ---> Código de erro da Operadora
                <timestamp>1400783067</timestamp>
            </message>
            <details><![CDATA[O XML enviado está com erros]]></details>
            <moreInfo><![CDATA[]]></moreInfo>
        </error>
    </result>
</transaction-response>

Exemplo de erro 023, Operadora Cielo negou a transação. Motivo: O número de parcelas ultrapassou o valor contratado junto à Cielo.

<?xml version="1.0" encoding="utf-8"?>
<transaction-response id="1" versao="1.0">
    <transactionId>1192C0AC-1893-E694-04DE-98B7AE0DE8B2</transactionId>
    <status>
        <code>409</code> ---> 409 = Resposta HTTTP 409
        <message>ERROR - 409</message>
    </status>
    <result>
        <error>
            <code>023</code> ---> Código de erro AZPAY
            <action>409</action>
            <message>
                <acquirer />
                <errorAcquirer>012</errorAcquirer>  ---> Código de erro da Operadora
                <timestamp>1400782408</timestamp>   ---> Data formato UNIX TIME
            </message>
            <details><![CDATA[Número de parcelas inválidos ou limite máximo permitido junto à CIELO foi ultrapassado]]></details>
            <moreInfo><![CDATA[Para Parcelado, o número mínimo de parcelas é 2 (dois).]]></moreInfo>
        </error>
    </result>
</transaction-response>

A TAG error é a resposta do motivo do erro da comunicação, abaixo segue os descritivos dos erros.

Código Erro Possível solução
001 O XML enviado está com erros Verifique a formatacao do XML, use o modelo diposnível nessa documentação
002 O XML enviado está com restrições na CIELO A CIELO está acusando algum erro no envio do XML, use o modelo diposnível nessa documentação
003 O XML enviado está com restrições na REDE A REDE está acusando algum erro no envio do XML, use o modelo diposnível nessa documentação
010 Autenticação no AZPAY inválidas Verifique no painel de controle do AZPAY os dados de acesso, ou valide com o lojista
011 Autenticação na CIELO inválidas Verifique no painel de controle do AZPAY se os dados estão corretos. Verifique na CIELO os dados de acesso.
012 Autenticação na REDE inválidas Verifique no painel de controle do AZPAY se os dados estão corretos. Verifique na REDE os dados de acesso.
020 Inconsistência no envio do cartão, verifique a modalidade habilitada (BPL) Verifique na CIELO se a modalidade BPL está ativada e habilitada.
021 Modalidade de pagamento não habilitada na CIELO Verifique junto a Cielo
022 Modalidade de pagamento não habilitada na REDE Verifique junto a REDE
023 Número de parcelas inválidos ou limite máximo permitido junto à CIELO foi ultrapassado Verifique junto a Cielo
024 Número de parcelas inválidos ou limite máximo permitido junto à REDE foi ultrapassado Verifique junto a Rede
025 Código de segurança ausente ou inválido Verifique se o código de segurança foi enviado corretamente.
026 Erro ao processar o cartão
027 Indicador do código de segurança é inválido Verifique se o código de segurança foi enviado corretamente.
028 Inconsistência no envio do cartão, dados inválidos Verifique se o número, validade ou código de segurança foi enviado corretamente.
030 Código de Transação inválido Número de transação inválido, verifique os caracteres.
031 Identificador, TID, inválido na CIELO Contate a equipe da AZPAY.
032 Código de Transação inválido na REDE Contate a equipe da AZPAY.
033 Falha ao cancelar a transação Contate a equipe da AZPAY.
034 Transação já está cancelada Já foi efetuado essa operação.
035 Transação não encontrada para realizar esta operação O número da transação está incorreta, verifique A TAG ‘transactionId’
036 Transação já está capturada Já foi efetuado essa operação.
037 Adquirente informado não está configurado corretamente Precisa configurar no painel de controle do AZPAY as configurações da operadora / adquirente.
100 Falha ao tentar conectar no servidor da operadora - Timeout O servidor da operadora está fora do ar no momento da transação. Contate a equipe da AZPAY.
900 Moeda inválida Formato da moeda esta errado.Código numérico da moeda na norma ISO 4217. Para o Real, o código é 986.
901 Idioma inválido Origem do pedido: BRA (Brasil). Caso não seja enviado, o sistema assumirá BRA.
902 DataHora inválida Formato deve ser YYYY-MM-DD
903 Número do pedido inválido Verifique a validação ([^a-zA-z0-9]). Máximo de 50 caracteres.
904 Valor do pedido inválido Verifique a validação (/([[:alpha:]]
905 Caracteres inválidos no nome do portador Verifique a validação (/[[:alnum:]]/)
906 Data de validade inválida Verifique o formato YYYYDD
907 Bandeira inválida Os caracteres precisam estar todos minúsculos.
908 Indicador de gerar token inválido Apenas true ou false
909 Taxa de embarque inválida Apenas true ou false
910 Data final é inválida A data precisa ser maior que a data inicial. Formato YYYYMMDD
911 Data inicial é inválida, data precisa ser próximo dia Regra: Data inicial > (Dia atual + 1)
912 Bandeira utilizada não permite operação de autorização na Cielo A bandeira não pode ser utilzada nessa operação, regra da CIELO.

DADOS PARA TESTES

CIELO

Bandeira Número do Cartão Validade Código de segurança
VISA 4012001037141112 05/2018 123
MASTERCARD 5453010000066167 05/2018 123
VISA 4012001038443335 05/2018 123
MASTERCARD 5453010000066167 05/2018 123
AMEX 376449047333005 05/2018 1234
ELO 6362970000457013 05/2018 123
DINERS 36490102462661 05/2018 123
DISCOVER 6011020000245045 05/2018 123
JCB 3566007770004971 05/2018 123
AURA 5078601912345600019 05/2018 123

Configuração no painel de controle

painel.azpay.com.br > Minha conta > Configurações > Operadoras > Cielo

Para usar dados de teste:

Modalidade Número de filiaçao Token(Chave de acesso)
ByPage LOJA 1006993069 25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3
ByPage CIELO 1001734898 e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832

ELAVON

Bandeira Número do Cartão Validade Código de segurança
VISA 4444111122223333 05/2018 123
MASTERCARD 5431111111111111 05/2018 123
DINERS 38000000000006 05/2018 123
DISCOVER 6011111111111117 05/2018 123

Configuração no painel de controle

painel.azpay.com.br > Minha conta > Configurações > Operadoras > Elavon

Para usar dados de teste:

Modalidade Número de filiaçao Token(Chave de acesso)
Teste e Certificação 0019410000000000000001 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Somente teste 0019410000000000000002 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

STONE

Bandeira Número do Cartão Validade Código de segurança
VISA 4066559930861910 05/2018 123

Configuração no painel de controle

painel.azpay.com.br > Minha conta > Configurações > Operadoras > Stone

Para usar dados de teste:

Modalidade Sale Affiliation Key Identificador do ponto de interação
teste 8E51DE32849943389B67EC5E8AD7C721 2FB4C89A

GLOBAL PAYMENTS

Bandeira Número do Cartão Validade Código de segurança
VISA 4066559930861910 05/2018 123

Configuração no painel de controle

painel.azpay.com.br > Minha conta > Configurações > Operadoras > Stone

Para usar dados de teste:

Modalidade Sale Affiliation Key Identificador do ponto de interação Password
Testes 012000009010001 001 qwertyasdf0123456789
Homologação Sale Affiliation Key 001 Password

REDE

Bandeira Número do Cartão Validade Código de segurança
VISA 4761120000000148 12/2017 11

Configuração no painel de controle

painel.azpay.com.br > Minha conta > Configurações > Operadoras > Globalpayment

Para usar dados de teste:

Modalidade Número de filiaçao Usuário Senha
Certificação SEU_NUMERO_DE_FILIAÇÃO SEU_USUÁRIO SUA_SENHA
Somente teste SEU_NUMERO_DE_FILIAÇÃO testews testews

Dados para testes para REDE (As transações de teste devem ser feitas até o valor de R$ 0.01)