Manual Maxipago API
Manual Maxipago API
V2.0.2
Histórico de Revisões
2
Adicionada integração Magento
1.9.1 15/03/2013 Adicionada lista de meios de pagamento
Adicionado o meio de pagamento TEF
1.9.2 01/04/2013 Adicionado processo de Certificação
Adicionados campos de Billing para o Débito Online
1.9.3 19/04/2013
Adicionada bandeira Discover para Cielo
Adicionado código de barras (campo processorCode) no retorno de Boleto
Removida a restrição de Número de Boleto ser único
1.9.4 19/08/2013
Atualizados cenários de teste
Atualizada validação do campo hp_signature_response
Refletir mudanças para o Release 6:
Adicionar campo Soft_Descriptor
Adicionar funcionalidade AVS
1.9.5 03/01/14 Adicionar campo IATA Fee
Estorno online Cielo
Consulta por orderID
Flag de recorrência para (dispensa CVV2)
1.9.6 02/04/14 Maior detalhamento da implantação do iFrame
1.9.7 26/05/14 Inclusão do meio de pagamento KOIN
Inclusão do FraudId Koin
Inclusão do ProcessorId Elavon
1.9.8 05/11/14 Removido campos obsoletos no Post da smartPage!
Removido ProcessorId Amex
Alterado descritivo do ResponseCode 2
Inclusão de novo ProcessorID – GetNet (pag. 12 e 16)
1.9.9 10/06/15
Alterado de exemplo de chamada com fraudeControl! – (pag. 33)
Inclusão do TLS 1.2
ProcessorId – GetNet = 3
SmartPage – observação de transacionar apenas cartão de crédito
2.0.0 24/08/2015
Nomenclatura do Objetivo do Manual
Retirar bandeira American Express
Inclusão de outras bandeiras
2.0.1 16/11/2015 Inclusão Integração Paypal
Inclusão do CVV para transação Tokenizada
2.0.2 01/02/2016
Inclusão do novo método para alteração de recorrência
4
Retorno do Cadastro ....................................................................................................................................................... 64
Transações com token .................................................................................................................................................. 65
Recorrência com token ................................................................................................................................................. 66
Salvar o cartão automaticamente ............................................................................................................................. 67
Requisição de Consulta .................................................................................................................................................. 69
Consultar uma única transação ..................................................................................................................... 70
Consultar um único pedido ............................................................................................................................. 71
Consultar uma lista de transações ................................................................................................................ 72
Retorno da Consulta ....................................................................................................................................................... 74
Utilizando o sistema de paginação ........................................................................................................................... 78
Consultas em massa ........................................................................................................................................... 80
Sondando o resultado de uma busca em massa ...................................................................................... 81
smartPage! - Integração por HTTPS Post ............................................................................................................. 83
Envio da transação .............................................................................................................................................. 84
Salvar o cartão automaticamente ................................................................................................................ 86
Resposta da smartPage! .................................................................................................................................... 87
Suporte à integração ...................................................................................................................................................... 89
Anexo “A” – Fluxos de Transações ............................................................................................................................. 90
Autorização e Captura – Pedido em duas etapas.................................................................................... 90
Venda Direta – Resposta imediata ao comprador ................................................................................... 91
Venda Direta – Resposta assíncrona ............................................................................................................ 91
Débito Online – Transferência bancária ................................................................................................... 92
Emissão e pagamento de Boleto ................................................................................................................... 93
Estorno – Adquirente com resposta offline ............................................................................................. 94
Salvar cartão automaticamente .................................................................................................................... 95
smartPage – Integração via HTTPS POST ................................................................................................ 96
Anexo “B” – Moedas ........................................................................................................................................................ 97
Este manual trata dos conceitos básicos das operações de pagamento e os detalhes técnicos de
integração com a plataforma da maxiPago!. Ele contém exemplos funcionais das requisições, que
podem ser copiados e usados nos primeiros testes, além de observações importantes a serem levadas
em conta durante a integração.
Glossário
6
Escolhendo o seu tipo de integração
A principal característica da integração via API é que os dados do cartão de crédito são digitados no
site do estabelecimento e então enviados para a maxiPago!. Nesse processo não há existência de
pop-up ou redirecionamentos. A responsabilidade de coletar os dados do cartão do comprador é do
estabelecimento, logo, deve existir uma preocupação com a segurança dos dados. É necessária a
compra de um certificado de segurança SSL.
A maxiPago! possui bibliotecas de integração em Java, .NET, PHP, Python e Ruby à disposição para
ajudar com o desenvolvimento de sua plataforma, disponíveis em [Link]
A smartPage! é uma forma rápida de integração a nossa plataforma. O comprador, após finalizar o
pedido, é redirecionado para o nosso ambiente e nesse ambiente ele informa os dados do cartão de
crédito para realizar o pagamento. Assim o Estabelecimento não é o responsável por gerenciar e
proteger os dados desse comprador, sendo a maxiPago! provedora desse requisito de segurança.
A maxiPago! possui um módulo Magento que permite uma integração rápida da sua loja virtual com a
nossa plataforma de pagamentos. Veja abaixo os links para download do módulo e do manual:
* Manual: [Link]
* Módulo: [Link]
Nota: Para as integrações API e Magento o PCI há um requisito obrigatório em relação a segurança
que é a utilização do certificado de segurança TLS 1.2 (Transport Layer Security) ou versão superior.
A maxiPago! como parceiro PCI certificado solicita aos seus clientes verificar os requisitos técnicos
necessários para a implementação desse certificado de segurança.
No ambiente de testes é possível simular a maioria das requisições e transações. Lembre-se que no
ambiente de testes nenhuma transação será de fato processada.
Abaixo temos a lista de cenários que gerarão respostas programadas da nossa plataforma:
Resultado da
Cenário
Transação
Venda Direta (“sale”) com valor par, menor que R$300 ou maior que R$500
Aprovada
Exemplo: R$1,00 ou R$299,92 ou R$610,06
Venda Direta (“sale”) com valor ímpar, menor que R$300 ou maior que R$500
Negada
Exemplo: R$1,01 ou R$20,09 ou R$700,55
Parcialmente Aprovada
Venda Direta (“sale”) com valor entre R$300 e R$500 (funcionalidade
Exemplo: R$310,00 ou R$499,99 disponível apenas nos
EUA)
Autorização (“auth”) com valor par, menor que R$300 ou maior que R$500 e
Negada por Fraude
com o número de cartão 4901720380077300
Autorização (“auth”) com valor par, menor que R$300,00 ou maior que
Em Revisão de Fraude
R$500,00 e com o número de cartão 4901720366459100
Abaixo há uma lista de cartões teste disponíveis. O campo de CVV pode ser preenchido com qualquer
número com 3 ou 4 dígitos e a data de vencimento precisa apenas ser válida, ou seja, sempre no
futuro:
Tipo Número de Teste
American Express 378282246310005
American Express 371449635398431
MasterCard 5555555555554444
MasterCard 5111111111111100
Visa 4111111111111111
Visa 4012888888881881
Diners 30569309025904
JCB 3528888888888000
8
Certificação da Integração
Para garantir a qualidade da integração técnica entre o lojista e o gateway de pagamentos e evitar
problemas em pré-produção para Produção a maxiPago! realiza um processo de Certificação. Nesta
etapa da integração a equipe da maxiPago! irá entrar no site de testes do lojista e realizar algumas
compras, a fim de validar o processo de checkout e pagamento.
Autorização de cartões
Captura de cartões
Venda Direta (“sale”) de cartões
Verificação antifraude
Emissão de boletos
Venda de débito online
Pagamento pós-pago (KOIN)
Para qualquer chamada feita em nossa base é preciso que o Estabelecimento se identifique com as
suas credenciais. O ID de Loja e a sua Chave são informados pela nossa equipe quando seu cadastro
é criado.
Independentemente da requisição que estiver chamando você deverá informar suas credenciais dentro
do elemento <verification/>, da seguinte forma:
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
10
Tipos de Requisição
A troca de informações com a maxiPago! é feita através de XML enviado diretamente no corpo do Post
-- ele não deve estar dentro de nenhum parâmetro e nem ser enviado em um formulário.
● Requisição de Cadastro: Efetua operações cadastrais, como salvar um cartão da nossa base
Nó raiz do XML: <api-request/>, retornando <api-response/>
URL
TRANSAÇÕES [Link]
CADASTRO [Link]
CONSULTA [Link]
smartPage!
[Link]
(HTTPS Redirect)
Estas requisições são responsáveis por processar pedidos de cartão de crédito e são identificadas
através do nó raiz <transaction-request/>. Esta API recebe os dados de cobrança, como valor do
pedido e número de cartão de crédito. O seu retorno contém o status da transação (aprovada ou
negada) e os principais dados do pedido.
As requisições de transação devem conter o número da versão da API dentro da tag <version/>, e
deve ser o primeiro elemento do XML.
A tag <order/>, enviada logo abaixo da verificação das credenciais, deve conter os dados para efetuar
a transação. Há 6 tipos de operações suportadas pelo sistema da maxiPago!. Sua escolha é feita de
acordo com o elemento enviado dentro da tag <order/>:
12
Autorização
A Autorização verifica se o cartão de crédito usado é válido (número, CVV e data de validade), se o
Portador possui limite suficiente para a compra e se a transação passou na verificação de fraude do
Banco e da Adquirente.
Esta é a fase mais importante da transação, pois a autorização bloqueia o valor do pedido no cartão
do cliente e garante o pagamento para o Estabelecimento, "reservando" aquele valor. Contudo, a
autorização sozinha não efetiva a transação -- ela depois precisa ser capturada.
Nome Descrição
version
Versão da API
(obrigatório)
merchantId
ID de Loja que identifica o Estabelecimento
(obrigatório)
merchantKey
Chave associada ao ID de Loja
(obrigatório)
Identificador do pedido no Estabelecimento
referenceNum
(obrigatório) Este campo aceita apenas valores alfanuméricos e deve ser
único
Código da Adquirente que irá processar esta transação
SIMULADOR DE TESTES = 1
Rede = 2
processorID Cielo = 4
(obrigatório) TEF = 5
Elavon = 6
ChasePaymentech = 8
GetNet = 3
Flag para enviar transação para verificação de fraude. Se
deixado em branco a transação será verificada
Y ou vazio/nulo = Checar
fraudCheck N = Não checar
14
Captura
A Captura de uma transação confirma e completa aquele pedido. Se a transação nunca for capturada o
Estabelecimento não receberá o dinheiro e o Portador não será cobrado. Neste caso a autorização
vence.
A captura não faz nenhuma validação, ou seja, ela não verifica novamente os dados enviados na
autorização. Ao pedir a captura o Estabelecimento está apenas informando que ele quer, de fato,
completar a venda.
Entre a autorização e a captura o Estabelecimento pode fazer uma análise interna do pedido para
determinar o seu grau de risco, por exemplo. Caso haja algo suspeito, ele pode tentar contatar diretamente
o comprador para verificar o pedido antes de capturá-lo.
No caso da verificação de estoque, caso o produto não esteja mais disponível o Estabelecimento pode
simplesmente não capturar o pedido, deixando vencer a autorização. Desta forma não há a necessidade de
se gerar um Estorno.
Algumas Adquirentes permitem que o Estabelecimento faça uma captura parcial do pedido. Isto
significa que, apesar de se ter uma autorização feita no valor total do pedido, o Estabelecimento
capturará apenas uma parte dela, deixando o resto do valor vencer.
Isto é particularmente útil quando o cliente pede mais de um produto no mesmo pedido e um deles não
está mais disponível no estoque. Digamos que temos pedido formado por dois produtos, um de
R$60,00 e outro de R$40,00, que já foi autorizado em sua totalidade (R$100,00). Contudo, a checagem
de estoque mostra que o segundo produto, de R$40,00, está em falta. Neste caso o Estabelecimento
pode fazer uma captura parcial de R$60,00, completar parte de sua venda e notificar o cliente do
ocorrido.
merchantId
ID de Loja que identifica o Estabelecimento
(obrigatório)
merchantKey
Chave associada ao ID de Loja
(obrigatório)
Este XML captura a autorização anterior, basta apenas trocar o campo "orderID":
<transaction-request>
<version>[Link]</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<capture>
<orderID>C0A8C866:0119C7CF0530:3B39:009770A3</orderID>
<referenceNum>123456789</referenceNum>
<payment>
<chargeTotal>6.00</chargeTotal>
</payment>
</capture>
</order>
</transaction-request>
16
Venda Direta
A Venda Direta (ou "Sale") combina a Autorização e a Captura em uma mesma chamada. Ao usar a
requisição de Venda Direta você estará fazendo uma autorização no cartão do cliente e imediatamente
executando uma captura total do valor. O retorno da maxiPago! já virá com o status final da transação.
Atenção
Se você pretende utilizar alguma ferramenta antifraude recomendamos utilizar a Autorização seguida de
Captura no lugar da Venda Direta, já que assim você poderá fazer a revisão manual de pedidos. Em
integrações de Venda Direta não há como um pedido ficar em estado de Revisão.
18
Void
O Void é o cancelamento de uma captura antes do fechamento do lote final do dia. Se por alguma
razão o pedido não pode ser completado e a transação já foi capturada o Void cancela a venda
efetuada, anulando aquela transação.
Importante:
- o Void só é permitido até as 23:59 do dia da captura (horário de Brasília).
- o Void é usado apenas para transações de cartão de credito
No caso das adquirentes que não possuem resposta online, após solicitar um estorno o
Estabelecimento deve checar o status da transação na maxiPago! para verificar se a operação foi
aprovada pela Adquirente. Enquanto a Adquirente não responde o estorno ficará como pendente em
nossa plataforma. Na Cielo, os estornos nos cartões American Express só podem ser totais, não é
permitido estorno parcial.
20
Este XML executa um estorno de R$5,00:
<transaction-request>
<version>[Link]</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<return>
<orderID>C0A8C866:0119C7CF0530:3B39:009770A3</orderID>
<referenceNum>123456789</referenceNum>
<payment>
<chargeTotal>5.00</chargeTotal>
</payment>
</return>
</order>
</transaction-request>
A maxiPago! oferece aos seus clientes a possibilidade de agendar cobranças recorrentes de cartão de
crédito. Nesta modalidade o número e a data de vencimento do cartão são guardados em nossos
servidores seguros, junto com o intervalo de cobrança. A maxiPago! ficará encarregada de cobrar o
seu cliente quando chegar a hora.
A estrutura do XML de uma transação recorrente é muito similar a de uma requisição de Venda Direta.
O nó <recurring/> deve ser utilizado para determinar o intervalo de cobrança do pedido, e o nome do
elemento da transação é <recurringPayments/> (ao invés de <sale/> ou <auth/>)
Este XML cria um novo pagamento a cada 2 meses, começando em 25/12/2020, com 5 cobranças:
<transaction-request>
<version>[Link]</version>
<verification>
22
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<recurringPayment>
<processorID>1</processorID>
<referenceNum>12304560</referenceNum>
<ipAddress>[Link]</ipAddress>
<transactionDetail>
<payType>
<creditCard>
<number>4111111111111111</number>
<expMonth>12</expMonth>
<expYear>2020</expYear>
<cvvNumber>999</cvvNumber>
</creditCard>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>22.00</chargeTotal>
<softDescriptor>DVD Acustico</softDescriptor>
</payment>
<recurring>
<action>new</action>
<startDate>2020-12-25</startDate>
<frequency>2</frequency>
<period>monthly</period>
<installments>5</installments>
<firstAmount>22.00</firstAmount>
<lastAmount>2020-12-25</lastAmount>
<lastDate>2020-12-25</lastDate>
<failureThreshold>1</failureThreshold>
</recurring>
</recurringPayment>
</order>
</transaction-request>
Devido as normas de segurança PCI (Payment Card Industry) os números dos CVVs não podem ser
armazenados, mesmo numa plataforma PCI Compliant. Por isso, em fluxos com número de cartão de
crédito armazenado (recorrência, one-click etc), o estabelecimento deve enviar o campo CVV em
branco. Até recentemente no Brasil, não tinha como o estabelecimento indicar por que este campo
estava sendo enviado em branco e isso era motivo frequente para uma autorização ser negada. A Cielo
recentemente adicionou este tipo de indicador na plataforma Web Cielo. Atualizando a nossa API com
este campo na Cielo, a maxiPago! foi um passo além e a partir de 28/12/13 incluiu uma funcionalidade
que automaticamente coloca este indicador para qualquer transação utilizando cartão de crédito
armazenado (tokenizado). Desta forma, a maxiPago! ajuda os seus clientes a melhorar taxas de
aprovação na Cielo sem qualquer mudança técnica no lado do cliente.
Para a utilização desse método o comando “modify-recurring” deve ser informado em uma
requisição.
24
<billingInfo>
<name>BILLING REC UPD</name>
<address1>R BILLING STREET, 123</address1>
<address2>7 ANDAR</address2>
<city>SAMPA</city>
<zip>01312000</zip>
<country>BR</country>
<email>billing@[Link]</email>
<phone>1132890900</phone>
</billingInfo>
<shippingInfo>
<name>SHIPPING REC UPD</name>
<address1>R SHIPPING STREET, 123</address1>
<address2>7 ANDAR</address2>
<city>SAMPA</city>
<zip>01312000</zip>
<country>BR</country>
<email>shipping@[Link]</email>
<phone>1132890900</phone>
</shippingInfo>
</request>
</api-request>
Para cancelar uma recorrência via API é preciso enviar o comando cancel-recurring e o orderID
retornado pela maxiPago! no momento da criação do pedido.
Note que a requisição de cancelamento segue o mesmo padrão as Requisições de Cadastro, descritos na
seção de mesmo nome, e cuja URL de teste está abaixo:
26
Dados do Comprador
A maxiPago! permite que você nos envie os dados de cobrança (<billing/>) e de entrega
(<shipping/>) do seu cliente final. Apesar destes dados serem opcionais recomendamos enviar ao
menos o nome do portador do cartão, para facilitar a referência ao pedido. Caso utilize a
ferramenta antifraude, estes dados são obrigatorios.
Os campos devem ser enviados na mesma chamada da Autorização, Venda Direta, Recorrência ou
Boleto:
Nome Descrição
Billing: Nome impresso no cartão (recomendado)
name *Considerações: O tamanho deste campo é limitado ao máximo de
(recomendado) 26 caracteres (Não permite caracteres especiais)
Shipping: Nome do destinatário
Billing: Endereço da fatura do cartão
address
Shipping: Endereço de entrega do produto
address2 Billing/Shipping: Complemento
Abaixo temos o exemplo de um XML de Venda Direta com os dados de cobrança e entrega:
<transaction-request>
<version>[Link]</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>1</processorID>
<referenceNum>1234567890</referenceNum>
<billing>
<name>Fulano de Tal</name>
<address>Av. República do Chile, 230</address>
<address2>16 Andar</address2>
<city>Rio de Janeiro</city>
<state>RJ</state>
<postalcode>20031170</postalcode>
<country>BR</country>
28
AVS (Adress Verification Service)
Os bancos emissores de cartão de credito oferecem uma ferramenta para verificar se os dados
numéricos do endereço fornecido durante a compra são os mesmo cadastrados para recebimento da
fatura do cartão. Atualmente esta funcionalidade é oferecida pela Cielo para as bandeiras Visa,
Mastercard e AMEX.
ATENÇÃO: Dependendo do seu contrato com o adquirente, este serviço adicional pode estar sujeito a
cobrança a partir do momento em que for solicitado. Para maiores informações, favor entrar em contato
com seu adquirente.
Para utilizar a funcionalidade AVS, perante maxiPago!, é preciso enviar um e-mail para o
suporte@[Link] com o Subject "Habilitar AVS" e garantir que os dados do comprador sejam
informados de forma correta.
Soft Descriptor
Para lojistas que utilizam a Cielo existe a possibilidade de inserir um campo descritivo que ira aparecer
na fatura do cliente. Esta funcionalidade esta disponível para as bandeiras Visa, JCB, Mastercard,
Aura, Diners e Elo nas transações de autorização ou sale.
Os valores do Soft Descriptor devem vir encapsulados pelos tags <softDescriptor> que por sua vez
esta no nó <payment>
A maxiPago! permite capturar 13 caracteres que podem ser unicamente alfanuméricos. Entretanto
quando a transação é integrada à Cielo dependendo do tamanho do nome da sua loja ele pode sofrer
um corte. Segue abaixo a regra da Cielo:
Na eventualidade da soma do nome da loja e Soft Descriptor exceder o limite de caracteres, o texto
do Soft Descriptor será truncado da direita para esquerda. Lembrando ainda que o espaço em branco
entre o nome da loja e o texto é contabilizado como 01 caractere.
OBS: Para conhecer e/ou alterar o nome da loja que será impresso na fatura do portador entre em
contato com a central de relacionamento Cielo.
A maxiPago! fez uma parceria com uma das mais comentadas soluções contra fraude que existem
atualmente, a Kount ([Link]). Suas ferramentas contra fraudes estão totalmente integradas
na nossa solução e permitem que o lojista envie uma transação de cartão e faça a análise de fraude
em uma requisição única e com resposta em tempo real.
Uma das grandes vantagens da Kount é que ela conta com um sistema de Análise em Tempo-Real que
possui Device Fingerprinting multi-camada, Proxy Piercing, Geolocalização, Velocity, Ligação
entre lojitas, Proteção a aparelhos Mobile e Score dinâmico.
Para que a análise seja completa o Lojista precisa incluir na sua página de Check Out um iFrame que
aponta para a maxiPago!. Este iFrame, detalhado mais abaixo, permite que o browser do comprador
seja analisado pelo algoritmo da Kount e é de extrema importância para o funcionamento do sistema
de fraude.
Apesar da solução Kount estar integrada na nossa plataforma de pagamentos, ela é um produto contratado
separadamente. Portanto, antes de testar, verifique com nossa equipe se você adquiriu este produto.
30
iFrame para análise de browser
Uma peça chave do fraudControl! é a análise do browser do comprador. Com esta informação é
possível traçar uma “impressão digital” da máquina do comprador e avaliar a probabilidade daquela
transação ser uma fraude onde, por exemplo, o computador está em um fuso horário da Rússia, mas o
endereço de entrega é no RJ.
Campo Descrição
Corresponde ao ID de Loja (merchantId) criado pela maxiPago!.
m
Exemplo: 100
Número do pedido (referenceNum) criado pelo Lojista.
s Este valor deve ser o mesmo passado no campo ‘referenceNum’ da API
Exemplo: ORD12345678
Chave secreta usada exclusivamente para a criação deste Hash. Esta
k chave deve ser solicitada para suporte@[Link].
Exemplo: key1234567890abcd
Hash HMAC-MD5 de validação, formado pela concatenação dos campos m e s,
intercalados pelo símbolo * (asterisco) e computados pelo algoritmo MD5
h
com a chave k
Exemplo: fe220a160c7fa6f7fc104185f8663e45
32
A maxiPago! sugere o uso de algumas ferramentas para testar a correta implantação do iFrame:
Caso deseje apenas validar o cálculo do Hash, dentre os vários sites disponíveis
recomendamos usar este:
Caso o objetivo seja testar o carregamento do iFrame diretamente na página web, a página
deve ser colocada no ar e visualizada em um navegador com a opção “Inspecionar
elemento” (acessível pelo atalho F12 no Chrome ou no Firefox). O elemento que deve
carregar ([Link]) esta visível nas abas “Network” e “Resources”/”Cokies”
conforme telas abaixo:
34
Note que as seguintes diferenças existem entre o ambiente de teste e de produção:
[Link]
0c7fa6f7fc104185f8663e45
As chamadas para o fraudControl! fazem parte da nossa API. Portanto, não há a necessidade de
métodos adicionais. Se o serviço estiver contratado, basta enviar uma transação para que ela seja
verificada.
Para escolher quais transações serão passadas pelo serviço e quais serão processadas sem
checagem de fraude, basta incluir o campo <fraudCheck/> na requisição com os valores Y ou N. Ou
se preferir solicite que todas as transações de cartão de crédito sejam enviadas para o
fraudControl!
36
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>1.00</chargeTotal>
</payment>
</auth>
</order>
</transaction-request>
Respostas de Fraude
A resposta da avaliação de fraude é retornada junto com a resposta da transação de cartão de crédito.
O valor do campo responseCode indicará o status da transação e o campo fraudScore trará a nível
de risco para a transação, sendo 0 a mais segura e 99 a mais arriscada.
As transações feitas com Boleto funcionam um pouco diferente das transações com cartão de crédito.
Ao receber os dados do pedido nós geramos um boleto, disponível online, e retornamos ao
Estabelecimento a URL de acesso para este boleto. Ela pode ser acessada a qualquer momento antes
do vencimento do boleto e até 60 dias após o vencimento.
O Estabelecimento tem a opção abrir o boleto imediatamente em seu site, fornecer o link para que o
comprador abra o boleto ou enviar o link por e-mail. Seja qual for a escolha, recomendamos guardar a
URL do boleto caso seja necessária uma [Link].
Gerando um boleto
Para gerar um boleto, além de passar os dados básicos da transação é preciso enviar o Nosso
Número, ou número do boleto. Este campo identifica o boleto dentro do banco e é usado para
conciliar o pagamento. Portanto, o Nosso Número deve ser único para cada boleto a fim de evitar
problemas na conciliação.
O boleto é uma transação de venda direta, ou seja, utiliza a mesma tag <sale/>. Os dados do boleto,
contudo, são passados dentro do elemento <boleto/>. Um boleto é sempre nominal, portanto faz-se
necessário o envio dos dados do comprador no elemento <billing/>, sendo obrigatório somente o
nome.
38
Boleto Bradesco = 12 (USE ‘12’ PARA TESTES)
Boleto Banco do Brasil = 13
HSBC = 14
Santander = 15
Caixa Econômica Federal = 16
ipAddress Endereço de IP do comprador
Valor do pedido.
chargeTotal
Os decimais devem ser separados por ponto (".")
(obrigatório)
Exemplo: 15.00 ou 1649.99
expirationDate
Data de vencimento do boleto. Formato AAAA-MM-DD
(obrigatório)
Número do boleto (Nosso Número), usado para identificar o
boleto dentro do banco.
number Este valor precisa ser único
(obrigatório) Itaú = máximo de 8 números
Bradesco = máximo de 10 números
Banco do Brasil = máximo de 10 números
Instruções a serem impressas no boleto. Use ponto e vírgula
(“;”) para pular uma linha.
instructions
Exemplo: “Sr. Caixa, não aceitar após o vencimento.;Referente
ao pedido 123.”
Nome Descrição
version
Versão da API
(obrigatório)
merchantId
ID de Loja que identifica o Estabelecimento
(obrigatório)
merchantKey
Chave associada ao ID de Loja
(obrigatório)
Identificador do pedido no Estabelecimento
referenceNum
(obrigatório) Este campo aceita apenas valores alfanuméricos
e deve ser único
IP
Endereço IP do comprador
(obrigatório)
name Billing: Nome do Comprador
(obrigatório)
Billing: Valores aceitos:
addressType
Residential
(obrigatório)
Commercial
40
addressNumber Billing: Numeração do endereço / string / 10
(obrigatório) chars
address
Billing: Logradouro / string / 100 chars
(obrigatório)
address2 Billing: Complemento / string / 128 chars
city
Billing: Cidade / string / 64 chars
(obrigatório)
district
Billing: Bairro / string / 64 chars
(obrigatório)
state
Billing: Estado / string / 2 chars
(obrigatório)
postalcode
Billing: CEP / string / 10 chars
(obrigatório)
country
Billing: País com 2 letras (ISO 3166-2) ex: BR
(obrigatório)
email Billing: Email do Comprador / string / 128
(obrigatório) chars
Shipping: Valores aceitos:
addressType Residential
Commercial
Shipping: Numeração do endereço / string / 10
addressNumber
chars
address Shipping: Logradouro / string / 100 chars
address2 Shipping: Complemento / string / 128 chars
city Shipping: Cidade / string / 64 chars
district Shipping: Bairro / string / 64 chars
state Shipping: Estado / string / 2 chars
postalcode Shipping: CEP / string / 10 chars
Shipping: País com 2 letras (ISO 3166-2) ex:
country
BR
deliveryDate Shipping: Data prevista da entrega
Shipping: Tipo de entrega. Atualmente apenas:
shippingType
Correios
Código utilizado no processo de análise de risco.-
Obtido conforme descrição no quadro descritivo
fraudId fraudId abaixo.
(obrigatório)
Ex: cfbec22f99d2f557e1426821c42ed3dd
42
Itens: Categoria do produto; Strin 50
itemProductCode
Ex: Acessórios de cozinha
itemQuantity
Itens: Quantidade deste item; Integer 10
(obrigatório)
Valor do Item. Os decimais devem ser separados
itemTotalAmount
por ponto (".")
(obrigatório)
Exemplo: 15.00 ou 1699.99
Itens: Tipo do atributo do produto; String
itemInfo1
Ex: Cor, Tamanho, RAM
Itens: Valor do atributo do produto; String
itemValue1
Ex: Vermelho, 42, 16MB
Itens: Tipo do atributo do produto; String
itemInfo2
Ex: Layout, Tamanho, Processador
Itens: Valor do atributo do produto; String
itemValue2
Ex: ABNT, 42, Core i7-4930k
Geração do FraudId
O FraudId Koin trata-se de uma variável gerada por uma lib JS e é utilizado por um
processos de análise de risco, com ele é possivel garantirmos o máximo de segurança aos
pedidos realizados.
O FraudId Koin deve ser gerado por sessão e ser obtido diretamente pelo checkout de sua
loja, ou seja, para cada nova requisição à API de Geração de Pedidos, um novo FraudId
deve ser gerado.
1. <html>
2. <head>
3. <script type="text/javascript"
src="[Link]
4. <script type="text/javascript">
5. [Link] = function() {
6. GetKoinFraudID(function (guid) {
<transaction-request>
<version>[Link]</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>10</processorID>
<referenceNum>Reference</referenceNum>
<ipAddress>[Link]</ipAddress>
<billing>
<name>Fulano da Silva</name>
<addressType>Residential</addressType>
<addressNumber>1001 B</addressNumber>
<address>Rua Vitoria do Brasil</address>
<address2>Apartamento 2014</address2>
<city>Rio de Janeiro</city>
<district>Tijuca</district>
<state>RJ</state>
<postalcode>20271-150</postalcode>
<country>BR</country>
<email>camisa10@[Link]</email>
</billing>
<shipping>
<addressType>Residential</addressType>
<addressNumber>1001 B</addressNumber>
<address>Rua Vitoria do Brasil</address>
<address2>Apartamento 2014</address2>
<city>Rio de Janeiro</city>
<district>Tijuca</district>
<state>RJ</state>
<postalcode>20271-150</postalcode>
<country>BR</country>
44
<deliveryDate>2014-07-13 07:24:37</deliveryDate>
<shippingType>Correios</shippingType>
</shipping>
<transactionDetail>
<payType>
<deferredPayment>
<koin>
<fraudId>maxiPago</fraudId>
<requestDate>2014-06-12 07:24:37</requestDate>
<discountPercent>1.0</discountPercent>
<discountValue>0.0</discountValue>
<increasePercent>0.0</increasePercent>
<increaseValue>0.0</increaseValue>
<isGift>false</isGift>
<buyer>
<isFirstPurchase>false</isFirstPurchase>
<isReliable>true</isReliable>
<buyerType>Individual</buyerType>
<documentList documentCount="2">
<document>
<documentIndex>1</documentIndex>
<documentType>CPF</documentType>
<documentValue>259228370-60</documentValue>
</document>
<document>
<documentIndex>2</documentIndex>
<documentType>RG</documentType>
<documentValue>21231235</documentValue>
</document>
</documentList>
<additionalInfoList additionalInfoCount="2">
<additionalInfo>
<additionalInfoIndex>1</additionalInfoIndex>
<additionalInfoType>BirthDay</additionalInfoType>
<additionalInfoValue>1970-06-21</additionalInfoValue>
</additionalInfo>
<additionalInfo>
<additionalInfoIndex>2</additionalInfoIndex>
<additionalInfoType>MotherName</additionalInfoType>
<additionalInfoValue>do Nascimento</additionalInfoValue>
</additionalInfo>
</additionalInfoList>
<phoneList phoneCount="1">
<buyerPhone>
<phoneIndex>1</phoneIndex>
<phoneType>Commercial</phoneType>
<phoneAreaCode>11</phoneAreaCode>
<phoneNumber>4800-4666</phoneNumber>
</buyerPhone>
</phoneList>
</buyer>
46
Requisições de Transação – PayPal
O PayPal é um dos maiores e-wallets (carteira virtual) mundiais. Utilizando a api maxiPago! é possível
se conectar ao Paypal via maxiPago! para processamento das transações por esse meio de
pagamento.
Para que a maxiPago! se conecte ao Paypal é necessário realizar o envio das informações
relacionadas ao lojista:
Usuário
Senha
Assinatura
Obs: Para adquirir seu usuário, senha e assinatura é necessário acessar sua conta PayPal como
desenvolvedor para coletar esses dados.
Informando esses dados à maxiPago! é possível realizar as configurações necessárias para que a
maxiPago! se conecte ao PayPal.
Name Description
version
A versão da API
(Obrigatório)
merchantId
ID de Loja que identifica o Estabelecimento
(Obrigatório)
merchantKey
Chave associada ao ID de Loja
(Obrigatório)
Identificador único do pedido
referenceNum
(Obrigatório) Este campo aceita apenas valores alfanuméricos
processorID Código do método de pagamento
(Obrigatório) PayPal= 7
parametersURL
(Obrigatório) Tipo de URL fixa a ser enviada : type=paypal
<transaction-request>
<version>[Link]</version>
48
</item>
</itemList>
</sale>
</order>
</transaction-request>
Depois de ter autorizado o pagamento o comprador é redirecionado para a URL de Sucesso ou para a
URL de Erro cadastradas pelo lojista, a depender do resultado da transação.
ATENÇÃO
Para que possamos habilitar esse serviço é preciso que você envie para a nossa equipe de Suporte as
seguintes informações:
* URL de Sucesso, para onde o comprador será redirecionado se a compra for Aprovada
* URL de Erro, para onde o comprador será redirecionado se a compra for Negada
Não será possível o envio de testes sem que as duas URLs estejam cadastradas
Por se tratar de um meio de pagamento que obriga o redirecionamento para um ambiente externo,
permitimos o envio de parâmetros adicionais em GET para facilitar o rastreamento do pedido.
50
Abaixo temos o XML para uma transação de débito on-line:
<transaction-request>
<version>[Link]</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>17</processorID>
<referenceNum>ORD4827294</referenceNum>
<ipAddress>[Link]</ipAddress>
<customerIdExt>12345678909</customerIdExt>
<billing>
<name>Fulano de Tal</name>
<address>Av. República do Chile, 230</address>
<address2>Vila Íris</address2>
<city>Rio de Janeiro</city>
<state>RJ</state>
<postalcode>20031170</postalcode>
<country>BR</country>
</billing>
<transactionDetail>
<payType>
<onlineDebit>
<parametersURL>id=123456&tp=3</parametersURL>
</onlineDebit>
</payType>
</transactionDetail>
<payment>
<chargeTotal>1.00</chargeTotal>
</payment>
</sale>
</order>
</transaction-request>
Para testar a Transferência Bancária Bradesco, utilize os valores abaixo, sendo que a senha é
11111111:
0 = Aprovada (*)
1 = Negada
responseCode 2 = Negada por Duplicidade ou Fraude
5 = Em Revisão (Análise Manual de Fraude)
1022 = Erro na operadora de cartão
1024 = Erro nos parâmetros enviados
Ver 'responseMessage' para mais informações
1025 = Erro nas credenciais
2048 = Erro interno na maxiPago!
4097 = Timeout com a adquirente
(*): Para adquirentes com estorno online, o
valor 0 significa que o estorno já foi
1
Mais informações sobre o formato epoch (ou Unix time): [Link]
2
Exemplos de conversão dos valores: [Link]
52
processado, para os offline significa que o
estorno está sendo processado (neste caso pode
ser posteriormente verificado pela API de
consulta)
responseMessage Mensagem de resposta da transação
Resposta da verificação AVS, se houver:
-X: O numero da rua e o CEP batem,
-A: O numero da rua bate mas o CEP não,
-N: Nem o numero da rua nem o CEP batem,
-S: O serviço não esta disponível para este cartão,
avsResponseC
-C: Serviço indisponível
ode
-W: O CEP bate mas o numero da rua não.
Transação Negada
<?xml version="1.0" encoding="UTF-8"?>
<transaction-response>
<authCode/>
<orderID>7F000001:013D16CF1461:F0EF:014EDA77</orderID>
<referenceNum>2012071201</referenceNum>
<transactionID>3308</transactionID>
<transactionTimestamp>1361887302962</transactionTimestamp>
<responseCode>1</responseCode>
<responseMessage>DECLINED</responseMessage>
<avsResponseCode>NNN</avsResponseCode>
<cvvResponseCode>N</cvvResponseCode>
<processorCode>D</processorCode>
<processorMessage>DECLINED</processorMessage>
<errorMessage/>
</transaction-response>
Parâmetros Inválidos
<?xml version="1.0" encoding="UTF-8"?>
<transaction-response>
<authCode/>
<orderID/>
<referenceNum/>
<transactionID/>
<transactionTimestamp>1361887531821</transactionTimestamp>
<responseCode>1024</responseCode>
<responseMessage>INVALID REQUEST</responseMessage>
<avsResponseCode/>
<cvvResponseCode/>
<processorCode/>
<processorMessage/>
54
<errorMessage>Credit Card Number is not a valid credit card
number.</errorMessage>
</transaction-response>
Na tabela abaixo temos as mensagens de erro mais comuns para o Erro 1024:
Mensagem Descrição
Credit Card Number is not a valid
Número de cartão de crédito não é válido
credit card number
The transaction has an expired
Data de vencimento do cartão não é válida
credit card
A transaction with boletoNumber = O campo ‘boletoNumber’ enviado já existe
XXX already exists in the database em nosso sistema para este lojista
Transaction Amount is not a valid
number in the range of 0.01 to O valor da transação não é válido
1.0E14
Request is invalid and can not be O campo ‘processorID’ enviado não é
processed válido
Outros erros
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<api-error>
<errorCode>1</errorCode>
<errorMsg><![CDATA[Schema validation for the vertical SA for the
incoming transaction xml failed. Reason Parser Error: URI=null Line=1: cvc-
datatype-valid.1.2.1: '100,01' is not a valid value for
'decimal'.]]></errorMsg>
</api-error>
Atenção!
A URL das Requisições de Cadastro é diferente da usada para as transações, e não há versão de API.
A estrutura do XML é um pouco diferente nas requisições de Transação. A validação das credenciais
permanece a mesma, mas surgem dois novos elementos, além de ter outro nó-raiz: <api-request/>.
O elemento <command/> determina a função a ser executada, enquanto que o nó <request/> contém
os detalhes da requisição. Os comandos disponíveis são:
● add-consumer: cria um cadastro para o cliente com as suas informações básicas. Sem um
cadastro não é possível executar as demais funções.
● delete-consumer: remove o cadastro do cliente
● update-consumer: atualiza o cadastro do cliente
● add-card-onfile: adiciona um cartão de crédito ao cadastro do cliente
● delete-card-onfile: remove um cartão de crédito do cadastro do cliente
56
Adicionar um cliente
Antes de se adicionar um cartão à base é preciso criar um cadastro do cliente usando o comando add-
consumer.
Os parâmetros aceitos no comando add-consumer estão abaixo. Se o campo for vazio, não enviar.
Nome Descrição
merchantId
ID de Loja que identifica o Estabelecimento
(obrigatório)
merchantKey
Chave associada ao ID de Loja
(obrigatório)
command Comando a ser executado
(obrigatório) Para criar um cadastro: add-consumer
customerIdExt
Identificador interno do Estabelecimento para o cliente.
(obrigatório)
firstName
Nome do cliente
(obrigatório)
lastName
Sobrenome do cliente
(obrigatório)
address1 Endereço da residência do cliente
address2 Endereço da residência do cliente - Complemento
city Cidade da residência do cliente
UF da residência do cliente
state
2 letras seguindo padrão brasileiro. ZZ = Fora do Brasil.
zip CEP da residência do cliente
country País (ISO 3166-2)
phone Telefone do cliente
email E-mail do cliente
Data de nascimento do cliente
dob
Formato MM/DD/AAAA
sex Sexo do cliente. F = Feminino | M = Masculino
58
Atualizar um cliente
O comando update-consumer permite atualizar os dados salvos dentro do cadastro do cliente. Os
parâmetros aceitos e o formato da chamada são muito similares ao comando add-consumer. A
principal diferença é que este método requer o envio do campo customerId.
60
Salvar um cartão na base
O quickPago! permite ao Estabelecimento salvar o cartão de crédito do cliente para futuras compras.
O número de cartão e a data de vencimento ficam guardados em nossos servidores e o
Estabelecimento recebe um token único referente ao cartão.
Em uma futura compra, ao invés de pedir novamente o número de cartão ao cliente o Estabelecimento
envia o token para a maxiPago!, agilizando o checkout.
Por medida de segurança é preciso enviar os dados de cobrança do Portador, ou seja, o endereço
onde o cliente do cartão recebe a fatura.
3
Mais informações (inglês):
[Link]
4
Mais sobre o ISO 3166-2: [Link]
62
Remover um cartão da base
Este XML exemplo remove o cartão salvo acima, bastando apenas trocar o token:
<api-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>delete-card-onfile</command>
<request>
<customerId>999</customerId>
<token>k11112233d</token>
</request>
</api-request>
O retorno das requisições de cadastro contém a confirmação de que o comando foi executado com
sucesso. Em alguns casos, como no comando add-customer, ele também traz de volta informações
que serão usadas para fazer referência ao cadastro do cliente no futuro. Estas informações são
enviadas dentro do elemento <result/>.
64
Transações com token
Uma vez em posse do customerId e do token do cartão é possível realizar autorizações e vendas
diretas sem a necessidade de pedir o número do cartão ao cliente.
A chamada é muito similar às operações de autorização ou venda direta. Contudo, ao invés de se usar
o elemento <creditCard/> deve-se usar o elemento <onFile/>, que aceita os seguintes parâmetros:
Nome Descrição
customerId ID único do cadastro, retornado quando o cliente foi adicionado
(obrigatório) à base
token
Token único associado ao cartão
(obrigatório)
cvvNumber
CVV (código de segurança) do cartão de crédito
Durante a recorrência o cartão de crédito é salvo automaticamente em nossa base. Porém se esse
cliente já fez uma compra prévia no Estabelecimento e usou a opção quickPago! é possível usar no
XML da Recorrência o token previamente gerado ao invés do número do cartão de crédito.
66
Salvar o cartão automaticamente
É possível também salvar o número de cartão automaticamente durante uma operação de autorização
ou venda direta.
Como um cartão precisa sempre estar associado a um cadastro, é preciso executar o comando add-
consumer antes de se poder salvar o cartão. Também é preciso enviar os dados de cobrança
(<billing/>), descritos anteriormente neste manual.
Para indicar que deseja salvar o cartão automaticamente é preciso incluir, dentro do nó da operação
(<sale/> ou <auth/>), o elemento <saveOnFile/>, que aceita os seguintes parâmetros:
Nome Descrição
customerToken ID único do cadastro, retornado quando o cliente foi
(obrigatório) adicionado à base (customerId)
Data limite para manter o cartão na base
onFileEndDate
Formato MM/DD/AAAA
Duração limite do uso do cartão salvo
onFilePermission ongoing = indefinidamente
use_once = apenas uma vez após a 1a. cobrança
onFileComment Comentários adicionais sobre este cartão
Valor máximo que é permitido cobrar deste cartão
onFileMaxChargeAmount
Decimais separados por ponto ("."). Ex.: 100.00
68
Requisição de Consulta
A API de consulta e relatórios permite que o Estabelecimento extraia do banco de dados da maxiPago!
as informações detalhadas de qualquer transação. É permitido resgatar os detalhes de apenas uma
transação ou receber uma relação de transações, filtradas por período.
O XML de resposta trará no máximo 100 transações, a fim de não tornar a resposta muito pesada.
Caso a lista de transações filtradas seja maior, será utilizado um mecanismo de paginação, detalhado
mais abaixo.
A sondagem de uma única transação permite verificar o seu status e resgatar os detalhes de uma
transação. Esta sonda é necessária para confirmar os pagamentos de pedidos feitos com boletos,
além de verificar a situação de um estorno solicitado anteriormente.
Para filtrar uma única transação deve-se usar o elemento <filterOptions/>, dentro da tag <request/>:
Nome Descrição
merchantId
ID de Loja que identifica o Estabelecimento
(obrigatório)
merchantKey
Chave associada ao ID de Loja
(obrigatório)
command
Comando a ser executado: transactionDetailReport
(obrigatório)
transactionId
ID da transação gerado pela maxiPago!
(obrigatório)
70
Consultar um único pedido
Os pedidos são identificados pelo elemento orderID. Nos casos a seguir, um único orderID, pode ter
mais de uma transação (transactionID):
Para estes casos (especialmente as recorrências) pode ser muito útil pesquisar pelo orderID para ver
todas as transações agrupadas no mesmo orderID.
Para filtrar um único pedido deve-se usar o elemento <filterOptions/>, dentro da tag <request/>:
Nome Descrição
merchantId
ID de Loja que identifica o Estabelecimento
(obrigatório)
merchantKey
Chave associada ao ID de Loja
(obrigatório)
command
Comando a ser executado: transactionDetailReport
(obrigatório)
transactionId
ID da transação gerado pela maxiPago!
(obrigatório)
A busca por transações dentro de um período é especialmente útil para a produção de relatórios para
plataformas onde não é possível manter um banco de dados local, como em um aplicativo para celular.
Para filtrar transações deve-se usar o elemento <filterOptions/>, dentro da tag <request/>:
Nome Descrição
merchantId
ID de Loja que identifica o Estabelecimento
(obrigatório)
merchantKey
Chave associada ao ID de Loja
(obrigatório)
command
Comando a ser executado: transactionDetailReport
(obrigatório)
Período de busca de das transações. Pode ser um filtro pré-
estabelecido ou um período específico.
72
billingName = Nome de Cobrança, se disponível
orderId = ID do Pedido
paymentType = Meio de Pagamento
status = Status
Determina se a listagem será crescente ou decrescente.
orderByDirection asc = Crescente
desc = Decrescente
Define a partir de qual transação do resultado total você
quer receber.
startRecordNumber
Exemplo: se a busca gerou 100 resultados e você quer ver
apenas o terceiro quartil, então "startRecordNumber=50"
Número da última transação da busca.
endRecordNumber Exemplo: se a busca gerou 100 resultados e você quer ver
apenas o terceiro quartil, então "endRecordNumber=75"
O XML abaixo busca transações feitas entre 18/12/2010 e 31/12/2010, ordenando-as por data,
começando pelo pedido mais recente:
<rapi-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>transactionDetailReport</command>
<request>
<filterOptions>
<period>range</period>
<pageSize>25</pageSize>
<startDate>12/18/2010</startDate>
<endDate>12/31/2010</endDate>
<startTime>00:00:00</startTime>
<endTime>23:59:59</endTime>
<orderByName>transactionDate</orderByName>
<orderByDirection>desc</orderByDirection>
</filterOptions>
</request>
</rapi-request>
O retorno da chamada de consulta trará todas as informações da transação solicitada, ou uma lista de
transações. As informações incluem dados como o status da transação, o valor do pedido, o ID do
Pedido, ID da Transação e os códigos de retorno da adquirente.
Na eventualidade de o servidor postergar a sondagem do período, você receberá um token único que
identifica aquela pesquisa. Guarde-o, pois ele será usado na re-sondagem dos dados.
74
Número da página retornada.
pageNumber
Só é enviado caso haja mais de uma página.
O elemento <record/> contém os detalhes das transações individuais. Nem todos os campos são
sempre retornados:
Nome Descrição
approvalCode Código de autorização da Adquirente
comments Comentários inseridos na autorização
Bandeira de cartão utilizada na transação
VISA
MASTERCARD
AMEX
creditCardType
DINERS
DISCOVER
ELO
HIPERCARD
customerId ID único do cadastro, se o cliente consta na base
orderId ID do Pedido gerado pela maxiPago!
Cartão de crédito (Bandeira + 4 últimos dígitos)
paymentType
Exemplo: (Visa) ...1234
processorID Nome da Adquirente/Banco que processou esta transação
recurringPaymentFlag Flag de pagamento recorrente. Recorrente = 1
76
Data de pagamento do boleto, se o banco a informou
dateOfPayment
Formato MM/DD/AAAA
Data de liquidação do boleto, se o banco a informou
dateOfFunding
Formato MM/DD/AAAA
bankOfPayment Código do banco onde foi feito o pagamento do Boleto
Ao puxar um relatório filtrado por período você provavelmente irá receber um número considerável de
transações. Para evitar problemas de performance temos um sistema de paginação de resultados, que
divide o número total de transações em várias páginas. É preciso puxar as demais páginas para obter
todos os resultados.
Para poder reaver os dados das demais páginas é preciso executar o comando
transactionDetailReport novamente, passando outros parâmetros no elemento <filterOptions/>:
Nome Descrição
pageToken Identificador de paginação da resposta a ser sondada.
pageNumber Número da página que se quer obter o resultado
O XML de requisição para a sondagem da 3a.página de uma busca fica, então, desta forma:
<rapi-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>transactionDetailReport</command>
<request>
<filterOptions>
<pageToken>xyz35Hiua834</pageToken>
78
<pageNumber>3</pageNumber>
</filterOptions>
</request>
</rapi-request>
Nestes casos, a resposta da solicitação de envio de relatório é diferente. Os campos recebidos são:
Nome Descrição
errorCode Código de retorno da requisição. Sucesso = 0
errorMsg Mensagem descritiva do erro, se houver
command Confirmação do comando enviado na requisição
Data e hora do recebimento da requisição
time
Formato MM/DD/AAAA hh:mm:ss
Token da requisição, usado para verificar se o relatório já está
requestToken pronto.
Deve-se salvar este token para fazer uma nova sondagem
80
Sondando o resultado de uma busca em massa
O Estabelecimento poderá posteriormente sondar a maxiPago! para ver se o relatório foi finalizado.
Para isto é preciso executar o comando checkRequestStatus, cujo único campo aceito é o
<requestToken>:
<rapi-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>checkRequestStatus</command>
<request>
<requestToken>fSawEgQqNqg=</requestToken>
</request>
</rapi-request>
A resposta informará se o relatório foi finalizado ou se ainda está sendo processado pelo sistema. Os
campos retornados pelo comando checkRequestStatus são:
Nome Descrição
errorCode Código de resposta da requisição. Sucesso = 0
errorMsg Mensagem descritiva do erro, se houver
command Confirmação do comando enviado na requisição.
Data e hora de recebimento da requisição
time
Formato MM/DD/AAAA hh:mm:ss
Mensagem de indicação do status do relatório.
REQUESTPROCESSED = Processado com sucesso
statusMessage REQUESTNOTPROCESSED = Geração não finalizada
REQUESTNOTFOUND = O pedido de geração de relatório
não foi encontrado
totalNumberOfRecords Quantidade total de transações retornadas.
Identificador de paginação desta resposta. Ele deve ser
guardado para permitir a navegação nas páginas.
pageToken
Este valor será retornado inclusive para relatórios que
possuam apenas uma página
processedTime Data e hora de geração do relatório.
82
smartPage! - Integração por HTTPS Post
A maxiPago! oferece um ambiente seguro para a digitação e armazenamento dos dados do cartão do
comprador. Isto tira do Estabelecimento a necessidade de possuir certificado de segurança SSL,
pois a maxiPago! é responsável pelo tratamento das informações sigilosas.
Esse modelo de integração somente realiza processamentos de cartões de crédito, ou seja, formas de
pagamento como Boleto ou Transferências Online não podem ser realizadas nesse módulo.
* URL de Sucesso, para onde o comprador será redirecionado se a compra for Aprovada
* URL de Erro, para onde o comprador será redirecionado se a compra for Negada
* URL de Envio, de onde o comprador será redirecionado a partir do seu site (REFERER).
* Logotipo da loja, para ser mostrado na página, com tamanho recomendado de 300x80.
Não será possível o envio de testes sem que as três URLs estejam cadastradas
O envio da transação pode ser feito através de um simples Post HTML. Recomendamos fazer um
redirecionamento para a URL da maxiPago! evitando os pop-ups ou qualquer tipo de frame.
Nome Descrição
hp_merchant_id
ID de Loja fornecido pela maxiPago!
(obrigatório)
Código da Adquirente que irá processar esta
transação
SIMULADOR DE TESTES = 1
hp_processor_id Rede = 2
(obrigatório) Cielo = 4
TEF = 5
Elavon = 6;
Chase Paymentech = 8
hp_method
Meio de pagamento usado. Sempre será ccard.
(obrigatório)
Tipo de requisição a ser realizada
hp_txntype
auth = Autorização
(obrigatório)
sale = Venda Direta
Código da moeda utilizada na transação de acordo com
hp_currency a norma ISO 4217.
Lista completa de moedas: anexo “B”.
Valor do pedido.
hp_amount
Os decimais devem ser separados por vírgula (",").
(obrigatório)
Ex.: 10,00
Número de parcelas de transação
hp_number_of_installments
Se for à vista, não enviar
Tipo de parcelamento (com ou sem juros)
N = Sem juros (PADRÃO - parcelamento Loja)
hp_charge_interest
Y = Com juros (parcelamento Cartão)
Se for à vista, não enviar
hp_refnum Identificador do pedido no Estabelecimento
(obrigatório) Este valor deve ser único
Código do pedido usado na assinatura de validação
hp_sig_itemid
Deve-se usar um valor diferente ao enviado em
(obrigatório)
"hp_refnum".
hp_bname
Nome do portador do cartão
(obrigatório)
hp_baddr Endereço do cliente
hp_baddr2 Complemento o endereço
hp_bcity Cidade do cliente
84
UF da residência do cliente
hp_bstate 2 letras seguindo padrão brasileiro.
ZZ = Fora do Brasil.
hp_bzip CEP do cliente
hp_bcountry País do cliente (ISO 3166-2)
hp_phone Telefone do cliente
hp_email Email do cliente
Idioma da tela de pagamentos
pt = Português (padrão)
hp_lang
en = Inglês
es = Espanhol
Estes campos devolverão qualquer valor enviado e
podem ser usados como “eco”, guardando a sessão do
cliente ou qualquer outro identificador.
hp_cf_1
hp_cf_2
É possível também mostrar o valor enviado na página
hp_cf_3
de pagamento, permitindo a inserção de textos e
hp_cf_4
instruções para o comprador.
hp_cf_5
Caso faça a utilização desta funcionalidade é
preciso enviar todos os 5 campos, mesmo que vazios.
Para salvar um cartão automaticamente é preciso enviar, além dos dados da transação, as informações
do cliente. Se já houver um perfil de cliente criado é preciso enviar também o seu ID, gerado pela
maxiPago!.
86
Resposta da smartPage!
Estas duas URLs devem ser hospedadas pelo Estabelecimento e seus endereços devem ser
informados à nossa equipe de Suporte durante o processo de integração.
Por que apenas Estabelecimentos com certificado SSL podem receber os dados via Post?
Os navegadores modernos possuem uma série de medidas para garantir a segurança do usuário. Uma
delas, mostrada abaixo, avisa que o usuário está saindo de um ambiente seguro (HTTPS) para um
ambiente não-seguro (HTTP), e que qualquer informação postada pode ficar visível, já que a comunicação
não está criptografada.
Um comprador que vê esta mensagem pode ficar inseguro. Logo, para evitar problemas, recomendamos
postar os dados da transação para uma URL hospedada em um ambiente HTTPS.
Caso seu site não possua certificado de segurança é possível obter os dados da transação através do
Portal maxiPago! ou da requisição de consulta, detalhada neste manual.
Nome Descrição
hp_time Data e hora da transação
hp_responsecode Indicador do status da transação. Sucesso = 0
hp_responsemsg Mensagem descritiva da resposta
hp_refnum Confirmação do código enviado
ID da transação, gerado pela maxiPago!.
hp_transid
Salve este campo para futuras referências.
hp_avsresponse Resposta da verificação AVS (somente nos EUA)
hp_authcode Código de autorização retornado pela adquirente
Valor único associado ao pedido pela maxiPago!.
hp_orderid
Salve este campo para futuras referências/
Código da moeda utilizada na transação de acordo
hp_currency com a norma ISO 4217.
Lista completa de moedas: anexo “B”.
hp_amount Confirmação do valor enviado
ID da transação na Adquirente.
hp_processortxnid Cielo: TID
Rede: NSU
Número de referência da Adquirente
hp_processorrefno Cielo: NSU
Rede: Comprovante de Venda (CV)
Valor de score retornado pelo fraudControl!
hp_fraud_score
Quanto menor o valor menor o risco da transação
Assinatura de validação da transação
hp_signature_response
Chave HMAC-MD5 de validação, detalhada abaixo.
Presente só quando um cadastro de cliente é
criado, traz o ID do perfil do cliente.
hp_customer_token
É muito importante guardar esta informação para
futura referência!
Presente só quando um cartão é salvo
automaticamente, traz o token único daquele
hp_payment_token cartão.
É muito importante guardar esta informação para
futura referência!
Presente só quando um cartão é salvo
hp_save_payment_responsemsg
automaticamente, traz o resultado da operação
ATENÇÃO
Para garantir a segurança das informações postadas recomendamos que você, ao receber um Post na sua
URL de Sucesso ou de Erro, use a Requisição de Consulta para confirmar os dados recebidos. Isto
garante que as informações recebidas no Post não foram alteradas por terceiros.
88
Suporte à integração
O suporte aos desenvolvedores é feito exclusivamente através do nosso Portal de Suporte. Os dados
de acesso são enviados para os nossos clientes a partir do email suporte@[Link] com o
assunto "maxiPago! email de boas-vindas" para o email usado no credenciamento.
A equipe de suporte da maxiPago! pode lhe ajudar com a integração do seu sistema. Atualmente
temos bibliotecas de integração em PHP, Java e .NET.
E-mail: suporte@[Link]
Telefone: (11) 2121-8536
Este anexo contém os fluxos de transações (diagramas de sequência) da maioria das operações
descritas neste manual. Estes são os fluxos mais comuns adotados na integração com a maxiPago!.
90
Venda Direta – Resposta imediata ao comprador
92
Emissão e pagamento de Boleto
94
Salvar cartão automaticamente
96
Anexo “B” – Moedas
Este anexo possui a listagem das moedas apresentadas no ISO 4217 e que são aceitas em nosso
sistema.
98









