Sei sulla pagina 1di 88

DOCUMENTAO DE INTEGRAO

v1.9.6






2

Histrico de Revises


Verso Data Descrio
1.0 30/01/2012 Verso inicial do manual.
1.1 13/02/2012 Adicionada observao sobre pular linha nas instrues de boleto.
1.2 27/02/2012 Adicionados campos no Post da smartPage!.
1.3 16/03/2012
Adicionado o campo transactionState no retorno das consultas.
Adicionados comentrios em outros campos do retorno das consultas.
1.4 03/04/2012 Modificados campos no comando add-consumer.
1.5 16/04/2012
Removido o campo hp_cmd (obsoleto) da smartPage!
Adicionada a seo de carto salvo da smartPage!
Adicionado o Anexo A com os fluxos de pagamento.
Adicionada referncia ao processorID = 1 (Simulador de Testes de carto).
1.6 02/08/2012
Adicionados os campos currencyCode e hp_currency para definir a moeda
da transao.
Adicionado comando para cancelamento de recorrncia.
Adicionada a adquirente Chase Paymentech (EUA multimoeda)
Adicionado o campo hp_lang para escolha de idioma na smartPage!
Adicionados os campos hp_cf_1 a hp_cf_5 na smartPage!
Adicionado o campo hp_customer_token na smartPage!
Corrigido nomenclatura do campo hp_savepayment na smartPage!
Removido o campo campo eCommInd (obsoleto)
1.7 10/12/2012 Adicionada a nova funcionalidade fraudControl!
1.8 04/01/2013 Corrigido exemplo do XML do comando delete-card-onfile
1.9 25/02/2013
Adicionado o meio de pagamento Dbito Online
Adicionada a lista de erros mais comuns
1.9.1 15/03/2013
Adicionada integrao Magento
Adicionada lista de meios de pagamento
Adicionado o meio de pagamento TEF
1.9.2 01/04/2013 Adicionado processo de Certificao
1.9.3 19/04/2013
Adicionados campos de Billing para o Dbito Online
Adicionada bandeira Discover para Cielo
1.9.4 19/08/2013
Adicionado cdigo de barras (campo processorCode) no retorno de Boleto
Removida a restrio de Nmero de Boleto ser nico
Atualizados cenrios de teste
Atualizada validao do campo hp_signature_response
1.9.5 03/01/14
Refletir mudanas para o Release 6:
Adicionar campo Soft_Descriptor
Adicionar funcionalidade AVS
Adicionar campo IATA Fee
Estorno online Cielo
Consulta por orderID
Flag de recorrncia para (dispensa CVV2)
1.9.6 02/04/14 Maior detalhamento da implantao do iFrame


maxiPago! Smart Payments 2013
3

ndice

Sobre este manual.............................................................................................................................................................. 5
Glossrio ................................................................................................................................................................................. 5
Integrao via API ........................................................................................................................................................ 6
Integrao via smartPage! ........................................................................................................................................ 6
Integrao via Magento .............................................................................................................................................. 6
Ambiente de Testes ............................................................................................................................................................ 7
Certificao da Integrao .............................................................................................................................................. 8
Credenciais do Estabelecimento ................................................................................................................................... 9
Meios de pagamento disponveis ................................................................................................................................. 9
Tipos de Requisio ........................................................................................................................................................ 10
Requisies de Transao - Carto de Crdito ..................................................................................................... 11
Autorizao .................................................................................................................................................................. 12
Captura ........................................................................................................................................................................... 14
Venda Direta ................................................................................................................................................................. 16
Void .................................................................................................................................................................................. 18
Estorno ........................................................................................................................................................................... 19
Recorrncias ................................................................................................................................................................ 21
Criar uma recorrncia ........................................................................................................................................ 21
Cancelar uma recorrncia ................................................................................................................................. 23
Dados do Comprador ................................................................................................................................................. 24
AVS (Adress Verification Service) ....................................................................................................................... 26
Soft Descriptor ............................................................................................................................................................ 26
fraudControl! Controle de Fraude........................................................................................................................... 27
iFrame para anlise de browser .......................................................................................................................... 28
Requisies de Fraude .............................................................................................................................................. 33
Exemplo de chamada com fraudControl!: ................................................................................................... 33
Exemplo de chamada sem fraudControl! : .................................................................................................. 33
Respostas de Fraude .................................................................................................................................................. 34
Requisies de Transao - Boleto ........................................................................................................................... 34
Gerando um boleto ..................................................................................................................................................... 35
Conciliando pagamentos de boleto ..................................................................................................................... 36
Requisies de Transao Transferncia Bancria ....................................................................................... 37
Enviando uma transao de transferncia ....................................................................................................... 37
Retorno de Transao .................................................................................................................................................... 40
Transao Aprovada ................................................................................................................................................. 42
Transao Negada ...................................................................................................................................................... 42
Parmetros Invlidos ................................................................................................................................................ 42
Outros erros.................................................................................................................................................................. 43
Requisies de Cadastro ................................................................................................................................................ 44
Adicionar um cliente ................................................................................................................................................ 45
Remover um cliente .................................................................................................................................................. 46
Atualizar um cliente .................................................................................................................................................. 47
Salvar um carto na base ........................................................................................................................................ 49
Remover um carto da base................................................................................................................................... 51
Retorno do Cadastro ....................................................................................................................................................... 52
Transaes com token .................................................................................................................................................. 53
Recorrncias com token ............................................................................................................................................... 54
Salvar o carto automaticamente ............................................................................................................................. 55




4

Requisio de Consulta .................................................................................................................................................. 57
Consultar uma nica transao ............................................................................................................................ 58
Consultar um nico pedido .................................................................................................................................... 59
Consultar uma lista de transaes ....................................................................................................................... 60
Retorno da Consulta ....................................................................................................................................................... 62
Utilizando o sistema de paginao ........................................................................................................................... 66
Consultas em massa ...................................................................................................... ............................................68
Sondando o resultado de uma busca em massa ........................................................................................ .....69
smartPage! - Integrao por HTTPS Post ............................................................................................................. 71
Envio da transao ..................................................................................................................................................... 72
Salvar o carto automaticamente ....................................................................................................................... 75
Resposta da smartPage! ........................................................................................................................................... 76
Assinatura de validao do Post............................................................................................................................ 78
Suporte integrao ...................................................................................................................................................... 79
Anexo A Fluxos de Transaes ............................................................................................................................. 80
Autorizao e Captura Pedido em duas etapas ........................................................................................... 80
Venda Direta Resposta imediata ao comprador .......................................................................................... 81
Venda Direta Resposta assncrona ................................................................................................................... 81
Dbito Online Transferncia bancria .......................................................................................................... 82
Emisso e pagamento de Boleto .......................................................................................................................... 83
Estorno Adquirente com resposta offline .................................................................................................... 84
Salvar carto automaticamente ........................................................................................................................... 85
smartPage Integrao via HTTPS POST ....................................................................................................... 86
Anexo B Moedas ........................................................................................................................................................ 87



maxiPago! Smart Payments 2013
5

Sobre este manual

Este manual cobre os conceitos bsicos das operaes de pagamento e os detalhes tcnicos de
integrao com a plataforma da maxiPago!. Ele contm exemplos funcionais das requisies, que
podem ser copiados e usados nos primeiros testes, alm de observaes importantes a serem levadas
em conta durante a integrao.

A ltima verso deste manual est disponvel em
http://www.maxipago.com/docs/maxiPago_API_Ultima.pdf

Glossrio

Adquirente
Empresa responsvel pelo processamento do carto e pelo pagamento do valor da
compra ao Estabelecimento (ex: Cielo, Rede)
Bandeira
Empresa que licencia seu nome para a emisso de cartes. Ela a "marca" do
carto (ex: Visa, Mastercard, Diners)
Credenciais Combinao do ID de Loja e da Chave de Loja, ambas fornecidas pela maxiPago!
CVV ou CVN Cdigo de segurana do carto
Emissor
Banco responsvel por verificar se o Portador possui limite de crdito para fazer
aquela compra. (ex.: Ita, Bradesco, HSBC).
Estabelecimento Lojista que vende seus produtos e servios online
ID de Loja Identificador nico da loja dentro da maxiPago! e parte da Credencial.
Portador Cliente, comprador, titular do carto de crdito


















6

Escolhendo o seu tipo de integrao
Integrao via API

A principal caracterstica da integrao via API que os dados do carto de crdito so digitados no
site do estabelecimento e ento enviados para a maxiPago!. No existe pop-up nem
redirecionamentos. A responsabilidade de coletar os dados do carto do comprador do
estabelecimento, logo, deve existir uma preocupao com a segurana dos dados. necessria a
compra de um certificado de segurana SSL.

A maxiPago! possui bibliotecas de integrao em Java, .NET, PHP, Python e Ruby disposio para
ajudar com o desenvolvimento de sua plataforma, disponveis em http://www.maxipago.com/api.

Integrao via smartPage!

A smartPage! uma forma rpida de integrao a nossa plataforma. O comprador, aps finalizar o
pedido, redirecionado para o nosso ambiente e l ele informa os dados do carto de crdito para
fazer o pagamento. Assim o Estabelecimento no o responsvel por gerenciar e proteger os dados
desse comprador, a maxiPago! cuida disso.

Integrao via Magento

A maxiPago! possui um mdulo Magento, desenvolvido em parceria com a Intercase
(www.intercase.com.br), que permite uma integrao rpida da sua loja virtual com a nossa plataforma
de pagamentos. Veja abaixo os links para download do mdulo e do manual:

* Manual: http://www.maxipago.com/docs/maxiPago_Magento.pdf

* Mdulo: http://www.maxipago.com/docs/maxiPago_Magento.tar





maxiPago! Smart Payments 2013
7

Ambiente de Testes

No ambiente de testes possvel simular a maioria das requisies e transaes. Lembre-se que no
ambiente de testes nenhuma transao ser de fato processada.

Abaixo temos a lista de cenrios que geraro respostas programadas da nossa plataforma:
Cenrio
Resultado da
Transao
Venda Direta (sale) com valor par, menor que R$300 ou maior que R$500
Exemplo: R$1,00 ou R$299,92 ou R$610,06
Aprovada
Venda Direta (sale) com valor mpar, menor que R$300 ou maior que R$500
Exemplo: R$1,01 ou R$20,09 ou R$700,55
Negada
Venda Direta (sale) com valor entre R$300 e R$500
Exemplo: R$310,00 ou R$499,99
Parcialmente Aprovada
(funcionalidade
disponvel apenas nos
EUA)
Autorizao (auth) com valor par, menor que R$300 ou maior que R$500 e
com o nmero de carto 4901720380077300
Negada por Fraude
Autorizao (auth) com valor par, menor que R$300,00 ou maior que
R$500,00 e com o nmero de carto 4901720366459100
Em Reviso de Fraude


Abaixo h uma lista de cartes teste disponveis. O campo de CVV pode ser preenchido com qualquer
nmero com 3 ou 4 dgitos e a data de vencimento precisa apenas ser vlida, ou seja, sempre no
futuro:
Tipo Nmero de Teste
American Express 378282246310005
American Express 371449635398431
MasterCard 5555555555554444
MasterCard 5111111111111100
Visa 4111111111111111
Visa 4012888888881881
Diners 30569309025904
JCB 3528888888888000









8

Certificao da Integrao

Para garantir a qualidade da integrao tcnica entre o lojista e o gateway de pagamentos e evitar
problemas na virada para Produo a maxiPago! realiza um processo de Certificao. Nesta etapa da
integrao 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.

Este processo rpido e o tempo mdio de resposta dia 1 dia til.

Sero validados os seguintes tipos de integrao:

Autorizao de cartes
Captura de cartes
Venda Direta (sale) de cartes
Verificao antifraude
Emisso de boletos
Venda de dbito online



maxiPago! Smart Payments 2013
9

Credenciais do Estabelecimento

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 so informados pela nossa equipe quando seu cadastro
criado.

Independentemente da requisio que estiver chamando voc dever informar suas credenciais dentro
do elemento <verification/>, da seguinte forma:
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>

Meios de pagamento disponveis
Nome Descrio
Cielo Cartes de Crdito Visa, Mastercard, Amex, Diners, Elo, Discover
Redecard Cartes de Crdito Visa, Mastercard, Diners, Discover
American
Express
Cartes de Crdito Amex
Obs: a plataforma Amex ser desligada em 30/01/2014. As
transaes com cartes American Express devero ser passadas
exclusivamente pela Cielo.
Bradesco Boleto sem registro, Transferncia bancaria
Ita Boleto sem registro, Transferncia bancria
Banco do
Brasil
Boleto sem registro
Santander Boleto sem registro
HSBC Boleto sem registro
Caixa
Econmica
Federal
Boleto sem registro





10

Tipos de Requisio

A troca de informaes com a maxiPago! feita atravs de XML enviado diretamente no corpo do Post
-- ele no deve estar dentro de nenhum parmetro e nem ser enviado em um formulrio.

O content type deve ser text/xml e o charset deve ser UTF-8.


H trs tipos de requisio que podem ser feitas plataforma:

Requisio de Transao: Processa pedidos de Carto de Crdito e Boleto
N raiz do XML: <transaction-request/>, retornando <transaction-response/>

Requisio de Cadastro: Efetua operaes cadastrais, como salvar um carto da nossa base
N raiz do XML: <api-request/>, retornando <api-response/>

Requisio de Consulta: Busca pedidos em nossa base
N raiz do XML: <rapi-request/>, retornando <rapi-response/>

Cada tipo de requisio tem uma URL de teste especfica:

URL
TRANSAES https://testapi.maxipago.net/UniversalAPI/postXML
CADASTRO https://testapi.maxipago.net/UniversalAPI/postAPI
CONSULTA https://testapi.maxipago.net/ReportsAPI/servlet/ReportsAPI
smartPage!
(HTTPS Redirect)
https://testsecure.maxipago.net/hostpay/HostPay



maxiPago! Smart Payments 2013
11

Requisies de Transao - Carto de Crdito

Estas requisies so responsveis por processar pedidos de carto de crdito e so identificadas
atravs do n raiz <transaction-request/>. Esta API recebe os dados de cobrana, como valor do
pedido e nmero de carto de crdito. O seu retorno contm o status da transao (aprovada ou
negada) e os principais dados do pedido.

As requisies de transao devem conter o nmero da verso da API dentro da tag <version/>, e
deve ser o primeiro elemento do XML.

Verso atual da API: 3.1.1.15

URL de Teste: https://testapi.maxipago.net/UniversalAPI/postXML

A tag <order/>, enviada logo abaixo da verificao das credenciais, deve conter os dados para efetuar
a transao. H 6 tipos de operaes suportadas pelo sistema da maxiPago!. Sua escolha feita de
acordo com o elemento enviado dentro da tag <order/>:

Autorizao: Envia os dados do carto para autorizao
Captura: Captura uma transao previamente autorizada
Venda Direta: Efetua a autorizao e captura na mesma requisio
Void: Cancela um pedido capturado (at s 23h59m do mesmo dia)
Estorno: Solicita o estorno de um pedido j confirmado
Recorrncia: Agenda cobranas futuras no carto de crdito

A estrutura do XML deve ficar da seguinte forma:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<auth> | <capture> | <sale> | <void> | <return> | <recurringPayment>
<order/>
<transaction-request/>





12

Autorizao

A Autorizao verifica se o carto de crdito usado vlido (nmero, CVV e data de validade), se o
Portador possui limite suficiente para a compra e se a transao passou na verificao de fraude do
Banco e da Adquirente.

Esta a fase mais importante da transao, pois a autorizao bloqueia o valor do pedido no carto
do cliente e garante o pagamento para o Estabelecimento, "reservando" aquele valor. Contudo, a
autorizao sozinha no efetiva a transao -- ela depois precisa ser capturada.

Os parmetros aceitos na Autorizao so:
Nome Descrio
version
(obrigatrio)
Verso da API
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
referenceNum
(obrigatrio)
Identificador do pedido no Estabelecimento
Este campo aceita apenas valores alfanumricos e deve ser
nico
processorID
(obrigatrio)
Cdigo da Adquirente que ir processar esta transao
SIMULADOR DE TESTES = 1
Redecard = 2
Amex = 3
Cielo = 4
TEF = 5
ChasePaymentech = 8
fraudCheck
Flag para enviar transao para verificao de fraude. Se
deixado em branco a transao ser verificada
Y ou vazio/nulo = Checar
N = No checar

Este campo s funciona para clientes que possuem o
servio de antifraude contratado
ipAddress Endereo de IP do comprador
number
(obrigatrio)
Nmero do carto de crdito do cliente
expMonth
(obrigatrio)
Ms de vencimento do carto com 2 dgitos
Exemplo: Janeiro = 01; Novembro = 11
expYear
(obrigatrio)
Ano de vencimento do carto com 4 dgitos
cvvNumber
Cdigo de segurana do carto
Obs: Embora o campo no seja obrigatrio em nosso sistema
as Adquirentes podem bloquear transaes caso este campo
esteja vazio. Por favor cheque suas permisses na
Adquirente.
currencyCode Cdigo da moeda da transao no formado ISO 4217


maxiPago! Smart Payments 2013
13

Vlido somente para transaes Chase Paymentech.
Lista completa de moedas: anexo B.
chargeTotal
(obrigatrio)
Valor do pedido
Os decimais devem ser separados por ponto (".")
Exemplo: 15.00 ou 1649.99
iataFee
um campo informativo (ou seja no somado ao valor da
autorizao) que define o montante da Taxa de Embarque da
transao que deve ser destinado ao pagamento Infraero.
Esta disponvel apenas para a Cielo nas bandeiras Visa e
Mastercard.
Os decimais devem ser separados por ponto (".")
Exemplo: 15.00 ou 1649.99

numberOfInstallments
Nmero de parcelas da transao
Para transaes vista no enviar/enviar nulo.
chargeInterest
Define se o parcelamento do tipo Loja ou Carto
Para transaes vista no enviar/enviar nulo.
N = Sem juros (PADRO - parcelamento Loja)
Y = Com juros (parcelamento Carto)

Este XML envia uma autorizao para a loja teste:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<auth>
<processorID>1</processorID>
<fraudCheck>N</fraudCheck>
<referenceNum>123456789</referenceNum>
<transactionDetail>
<payType>
<creditCard>
<number>4111111111111111</number>
<expMonth>12</expMonth>
<expYear>2020</expYear>
<cvvNumber>999</cvvNumber>
</creditCard>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>10.00</chargeTotal>
<iataFee>1.00</iataFee>
<creditInstallment>
<numberOfInstallments>2</numberOfInstallments>
<chargeInterest>N</chargeInterest>
</creditInstallment>
</payment>
</auth>
</order>
</transaction-request>






14

Captura

A Captura de uma transao confirma e completa aquele pedido. Se a transao nunca for capturada o
Estabelecimento no receber o dinheiro e o Portador no ser cobrado. Neste caso a autorizao
vence.

A captura no faz nenhuma validao, ou seja, ela no verifica novamente os dados enviados na
autorizao. Ao pedir a captura o Estabelecimento est apenas informando que ele quer, de fato,
completar a venda.

Por que o Estabelecimento no capturaria uma compra?
Os principais motivos so anlise de fraude e verificao de estoque, mas h diversas outras razes que
so particulares de cada modelo de negcio.

Entre a autorizao e a captura o Estabelecimento pode fazer uma anlise 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 verificao de estoque, caso o produto no esteja mais disponvel o Estabelecimento pode
simplesmente no capturar o pedido, deixando vencer a autorizao. Desta forma no h a necessidade de
se gerar um Estorno.

Captura Total x Captura Parcial

Algumas Adquirentes permitem que o Estabelecimento faa uma captura parcial do pedido. Isto
significa que, apesar de se ter uma autorizao 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 no
est mais disponvel 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.

Um pedido nunca est completo se a captura no foi feita.
Sem ela o Estabelecimento no garante que receber o valor devido!




maxiPago! Smart Payments 2013
15

Os parmetros aceitos pela Captura so:
Nome Descrio
version
(obrigatrio)
Verso da API
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
orderID
(obrigatrio)
Valor nico associado ao pedido pela maxiPago! no momento da
Autorizao
referenceNum
(obrigatrio)
Identificador do pedido dentro do Estabelecimento
Deve ser o mesmo enviado na Autorizao
chargeTotal
(obrigatrio)
Valor a ser capturado. Pode ser igual ou menor que o valor da
autorizao
Os decimais devem ser separados por ponto (".") Exemplo: 10.00
iataFee Para capturas parciais este campo obrigatrio


Este XML captura a autorizao anterior, basta apenas trocar o campo "orderID":
<transaction-request>
<version>3.1.1.15</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 Autorizao e a Captura em uma mesma chamada. Ao usar a
requisio de Venda Direta voc estar fazendo uma autorizao no carto do cliente e imediatamente
executando uma captura total do valor. O retorno da maxiPago! j vir com o status final da transao.

Ateno

Se voc pretende utilizar alguma ferramenta antifraude recomendamos utilizar a Autorizao seguida de
Captura no lugar da Venda Direta, j que assim voc poder fazer a reviso manual de pedidos. Em
integraes de Venda Direta no h como um pedido ficar em estado de Reviso.

Os parmetros da Venda Direta so idnticos aos recebidos na autorizao:
Nome Descrio
version
(obrigatrio)
Verso da API
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
referenceNum
(obrigatrio)
Identificador nico do pedido
Este campo aceita apenas valores alfanumricos
processorID
(obrigatrio)
Cdigo da Adquirente que ir processar esta transao
SIMULADOR DE TESTES = 1
Redecard = 2
Amex = 3
Cielo = 4
TEF = 5
ChasePaymentech = 8
fraudCheck
Flag para enviar transao para verificao de fraude. Se
deixado em branco a transao ser verificada
Y ou vazio/nulo = Checar
N = No checar
ipAddress Endereo de IP do comprador
number
(obrigatrio)
Nmero do carto de crdito do cliente
expMonth
(obrigatrio)
Ms de vencimento do carto com 2 dgitos
Exemplo: Janeiro = 01; Novembro = 11
expYear
(obrigatrio)
Ano de vencimento do carto com 4 dgitos
cvvNumber
Cdigo de segurana do carto
Obs: Embora o campo no seja obrigatrio em nosso sistema
as Adquirentes podem bloquear transaes caso este campo
esteja vazio. Por favor cheque suas permisses na
Adquirente.
currencyCode
Cdigo da moeda da transao no formado ISO 4217
Vlido somente para transaes Chase Paymentech.
Lista completa de moedas: anexo B.
chargeTotal
(obrigatrio)
Valor do pedido
Os decimais devem ser separados por ponto (".")
Exemplo: 15.00 ou 1649.99


maxiPago! Smart Payments 2013
17

numberOfInstallments
Nmero de parcelas da transao
Para transaes vista no enviar/enviar nulo.
chargeInterest
Define se o parcelamento do tipo Loja ou Carto
Para transaes vista no enviar/enviar nulo.
N = Sem juros (PADRO - parcelamento Loja)
Y = Com juros (parcelamento Carto)

A estrutura do XML tambm muito similar autorizao, mudando somente a operao:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>1</processorID>
<referenceNum>987654321</referenceNum>
<ipAddress>123.123.123.123</ipAddress>
<fraudCheck>Y</fraudCheck>
<transactionDetail>
<payType>
<creditCard>
<number>4111111111111111</number>
<expMonth>12</expMonth>
<expYear>2020</expYear>
<cvvNumber>999</cvvNumber>
</creditCard>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>12.00</chargeTotal>
</payment>
</sale>
</order>
</transaction-request>






18

Void

O Void o cancelamento de uma captura antes do fechamento do lote final do dia. Se por alguma
razo o pedido no pode ser completado e a transao j foi capturada o Void cancela a venda
efetuada, anulando aquela transao.

Importante: o Void s permitido at as 23:59 do dia da captura (horrio de Braslia).

Os parmetros mais comuns aceitos pelo Void so:
Nome Descrio
version
(obrigatrio)
Verso da API
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
transactionID
(obrigatrio)
ID da transao gerado pela maxiPago! na Autorizao


O XML do Void simples e possui poucos campos:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<void>
<transactionID>32165498701</transactionID>
</void>
</order>
</transaction-request>




maxiPago! Smart Payments 2013
19

Estorno

O Estorno a reverso de uma transao de carto de crdito, debitando o valor do Estabelecimento
e devolvendo-o ao Portador. O estorno uma operao financeira e envolve outros departamentos
dentro das Adquirentes. Por esta razo, em geral os estornos demoram alguns dias para serem
aprovados.

A tabela abaixo indica o prazo de resposta de um Estorno para cada adquirente:
Adquirente Prazo de resposta
Cielo Online, resposta imediata
Redecard 2-3 dias teis
Amex Online, resposta imediata

No caso das adquirentes que no possuem resposta online, aps solicitar um estorno o
Estabelecimento deve checar o status da transao na maxiPago! para verificar se a operao foi
aprovada pela Adquirente. Enquanto a Adquirente no responde o estorno ficar como pendente em
nossa plataforma. Na Cielo, os estornos nos cartes American Express s podem ser totais, no
permitido estorno parcial.

Os parmetros recebidos pela operao de Estorno so:
Nome Descrio
version
(obrigatrio)
Verso da API
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
orderID
(obrigatrio)
Valor nico associado ao pedido pela maxiPago! no momento da
Autorizao
referenceNum
(obrigatrio)
Identificador do pedido dentro do Estabelecimento
Deve ser o mesmo enviado na Autorizao
chargeTotal
(obrigatrio)
Valor a ser estornado. Pode ser igual ou menor que o valor da
autorizao
Os decimais devem ser separados por ponto (".")
Exemplo: 10.00 ou 1699.00


Este XML executa um estorno de R$5,00:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>




20

<order>
<return>
<orderID>C0A8C866:0119C7CF0530:3B39:009770A3</orderID>
<referenceNum>123456789</referenceNum>
<payment>
<chargeTotal>5.00</chargeTotal>
</payment>
</return>
</order>
</transaction-request>




maxiPago! Smart Payments 2013
21

Recorrncias

A maxiPago! oferece aos seus clientes a possibilidade de agendar cobranas recorrentes de carto de
crdito. Nesta modalidade o nmero e a data de vencimento do carto so guardados em nossos
servidores seguros, junto com o intervalo de cobrana. A maxiPago! ficar encarregada de cobrar o
seu cliente quando chegar a hora.

Criar uma recorrncia

A estrutura do XML de uma transao recorrente muito similar ao de uma requisio de Venda
Direta. O n <recurring/> deve ser utilizado para determinar o intervalo de cobrana do pedido, e o
nome do elemento da transao <recurringPayments/> (ao invs de <sale/> ou <auth/>)

Os parmetros recebidos pelo n <recurring/> so:
Nome Descrio
action
(obrigatrio)
Sempre ser new.
startDate
(obrigatrio)
Data de incio da cobrana. Formato: AAAA-MM-DD
period
(obrigatrio)
Intervalo de tempo entre cobranas
daily = dia(s)
weekly = semana(s)
monthly = ms(es)
frequency
(obrigatrio)
Frequncia da cobrana. Este campo combinado com o <period>
para definir o intervalo.
Exemplo: Se "frequency" = 2 e "period" = weekly, ento cobrar
a cada 2 semanas.

Se deixado em branco ser entendido como "1".
installments
(obrigatrio)
Nmero de cobranas a serem efetuadas
Exemplo: Se "installments" = 5, ento sero feitas 5
cobranas seguindo o intervalo definido acima, a partir da
data de incio.
failureThreshold
(obrigatrio)
Nmero de tentativas negadas necessrias para ativar
notificao por e-mail loja.
Mnimo = 1


Este XML cria um novo pagamento a cada 2 meses, comeando em 25/12/2020, com 5 cobranas:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<recurringPayment>




22

<processorID>1</processorID>
<referenceNum>12304560</referenceNum>
<ipAddress>123.123.123.123</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>
</payment>
<recurring>
<action>new</action>
<startDate>2020-12-25</startDate>
<frequency>2</frequency>
<period>monthly</period>
<installments>5</installments>
<failureThreshold>1</failureThreshold>
</recurring>
</recurringPayment>
</order>
</transaction-request>


Devido as normas de segurana PCI (Payment Card Industry) os nmeros dos CVVs no podem ser
armazenados, mesmo numa plataforma PCI Compliant. Por isso, em fluxos com nmero de carto de
crdito armazenado (recorrncia, one-click etc), o estabelecimento tem que enviar o campo CVV em
branco. At recentemente no Brasil, no tinha como o estabelecimento indicar por que este campo
estava sendo enviado em branco e isso era motivo frequente para uma autorizao 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 alm e a partir de 28/12/13 incluiu uma funcionalidade
que automaticamente coloca este indicador para qualquer transao utilizando carto de crdito
armazenado (tokenizado). Desta forma, a maxiPago! ajuda os seus clientes a melhorar taxas de
aprovao na Cielo sem qualquer mudana tcnica no lado do cliente.


maxiPago! Smart Payments 2013
23

Cancelar uma recorrncia

Para cancelar uma recorrncia via API preciso enviar o comando cancel-recurring e o orderID
retornado pela maxiPago! no momento da criao do pedido.

Note que a requisio de cancelamento segue o mesmo padro as Requisies de Cadastro, descritos na
seo de mesmo nome, e cuja URL de teste est abaixo:

URL de Teste: https://testapi.maxipago.net/UniversalAPI/postAPI


Os parmetros recebidos pelo command cancel-recurring so:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento.
merchantKey
(obrigatrio)
Chave associada ao ID de Loja.
command
(obrigatrio)
Sempre ser cancel-recurring.
orderID
(obrigatrio)
ID do pedido gerado pela maxiPago! na criao da recorrncia.


Este XML cancela uma transao recorrente:
<api-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>cancel-recurring</command>
<request>
<orderID>C0A8C866:0119C7CF0530:3B39:009770A3</orderID>
</request>
</api-request>





24

Dados do Comprador

A maxiPago! permite que voc nos envie os dados de cobrana (<billing/>) e de entrega
(<shipping/>) do seu cliente final. Apesar destes dados serem opcionais recomendamos enviar ao
menos o nome do portador do carto, para facilitar a referncia ao pedido. Caso utilize a
ferramenta antifraude, estes dados so obrigatorios.

Os campos devem ser enviados na mesma chamada da Autorizao, Venda Direta, Recorrncia ou
Boleto:
Nome Descrio
name
(recomendado)
Billing: Nome do portador do carto (recomendado)
Shipping: Nome do destinatrio
address
Billing: Endereo da fatura do carto
Shipping: Endereo de entrega do produto
address2 Billing/Shipping: Complemento
city Billing/Shipping: Cidade
state Billing/Shipping: Estado
postalcode Billing/Shipping: CEP
country Billing/Shipping: Pas com 2 letras (ISO 3166-2)
phone
Billing: Nmero de telefone do portador do carto
Shipping: Nmero de telefone do destinatrio
email
Billing: Email do portador do carto
Shipping: Email do destinatrio


Abaixo temos o exemplo de um XML de Venda Direta com os dados de cobrana e entrega:
<transaction-request>
<version>3.1.1.15</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. Repblica do Chile, 230</address>
<address2>16 Andar</address2>
<city>Rio de Janeiro</city>
<state>RJ</state>
<postalcode>20031170</postalcode>
<country>BR</country>
<phone>2140099400</phone>
<email>fulanodetal@email.com</email>


maxiPago! Smart Payments 2013
25

</billing>
<shipping>
<name>Ciclano de Tal</name>
<address>Av. Prestes Maia, 737</address>
<address2>20 Andar</address2>
<city>So Paulo</city>
<state>SP</state>
<postalcode>01031001</postalcode>
<country>BR</country>
<phone>1121737900</phone>
<email>ciclanodetal@email.com</email>
</shipping>
<transactionDetail>
<payType>
<creditCard>
<number>4111111111111111</number>
<expMonth>12</expMonth>
<expYear>2020</expYear>
<cvvNumber>999</cvvNumber>
</creditCard>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>20.00</chargeTotal>
<softDescriptor>DVD Acustico</softDescriptor>
<creditInstallment>
<numberOfInstallments>2</numberOfInstallments>
<chargeInterest>N</chargeInterest>
</creditInstallment>
</payment>
</sale>
</order>
</transaction-request>






26

AVS (Adress Verification Service)
Os bancos emissores de carto de credito oferecem uma ferramenta para verificar se os dados
numricos do endereo fornecido durante a compra so os mesmo cadastrados para recebimento da
fatura do carto. Atualmente esta funcionalidade oferecida pela Cielo para as bandeiras Visa,
Mastercard e AMEX.

ATENO: Dependendo do seu contrato com o adquirente, este servio adicional pode estar sujeito a
cobrana a partir do momento em que for solicitado. Para maiores informaes, favor entrar em contato
com seu adquirente.
Para utilizar a funcionalidade AVS, perante maxiPago!, preciso abrir um chamado para a rea de
suporte com o Subject "Habilitar AVS" e garantir que os dados do comprador esto sendo passados 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 disponvel para as bandeiras Visa, JCB, Mastercard,
Aura, Diners e Elo nas transaes de autorizao 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 alfanumricos. Entretanto
quando chega na Cielo dependendo do tamanho do nome da sua loja ele pode sofrer um corte. Segue
abaixo a regra da Cielo:
- Visa / JCB: 25 caracteres
- Mastercard / Aura: 22 caracteres
- Diners / Elo: 20 caracteres
[Nome da Loja] + [Asterisco] + [Soft Descriptor] = [20, 22 ou 25] caracteres.

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 espao 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.


maxiPago! Smart Payments 2013
27


fraudControl! Controle de Fraude

A maxiPago! fez uma parceria com uma das mais comentadas solues contra fraude que existem
atualmente, a Kount (www.kount.com). Suas ferramentas contra fraudes esto totalmente integradas
na nossa soluo e permitem que o lojista envie uma transao de carto e faa a anlise de fraude
em uma requisio nica e com resposta em tempo real.

Uma das grandes vantagens da Kount que ela conta com um sistema de Anlise em Tempo-Real que
possui Device Fingerprinting multi-camada, Proxy Piercing, Geolocalizao, Velocity, Ligao
entre lojitas, Proteo a aparelhos Mobile e Score dinmico.

Para que a anlise seja completa o Lojista precisa incluir na sua pgina 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 importncia para o funcionamento do sistema
de fraude.

Apesar da soluo 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.






28

iFrame para anlise de browser

Uma pea chave do fraudControl! a anlise do browser do comprador. Com esta informao
possvel traar uma impresso digital da mquina do comprador e avaliar a probabilidade daquela
transao ser uma fraude onde, por exemplo, o computador est em um fuso horrio da Rssia, mas o
endereo de entrega no RJ.

Segue abaixo o fluxo geral dos dados de transaes envolvendo o antifraude:










maxiPago! Smart Payments 2013
29

Para permitir a anlise, o Lojista precisa incluir na sua pgina de check-out um iFrame, com os
campos abaixo:

Campo Descrio
m
Corresponde ao ID de Loja (merchantId) criado pela maxiPago!.
Exemplo: 100
s
Nmero do pedido (referenceNum) criado pelo Lojista.
Este valor deve ser o mesmo passado no campo referenceNum da API
Exemplo: ORD12345678
k
Chave secreta usada exclusivamente para a criao deste Hash. Esta
chave deve ser solicitada para suporte@maxipago.com.
Exemplo: key1234567890abcd
h
Hash HMAC-MD5 de validao, formado pela concatenao dos campos m e s,
intercalados pelo smbolo * (asterisco) e computados pelo algoritmo MD5
com a chave k
Exemplo: fe220a160c7fa6f7fc104185f8663e45


O detalhamento do fluxo do clculo do h esta descrito no seguinte diagrama:





O iFrame fica, ento, da seguinte forma:


<iframe width="1" height="1" frameborder="0"
src="https://testauthentication.maxipago.net/redirection_service/logo?m=100&s=O
RD12345678&h=fe220a160c7fa6f7fc104185f8663e45"></iframe>









30



A maxiPago! sugere o uso de algumas ferramentas para testar a correta implantao do iFrame:

Caso deseje apenas validar o clculo do Hash, dentre os vrios sites disponveis
recomendamos usar este:

http://www.freeformatter.com/hmac-generator.html#ad-output (coloque MD5 no digest
algorithm)

Caso o objetivo seja testar o carregamento do iFrame diretamente na pgina web, a pgina
deve ser colocada no ar e visualizada em um navegador com a opo Inspecionar
elemento (acessvel pelo atalho F12 no Chrome ou no Firefox). O elemento que deve
carregar (ssl.kaptcha.com) esta visvel nas abas Network e Resources/Cokies
conforme telas abaixo:





maxiPago! Smart Payments 2013
31



A confirmao de que o elemento carregou corretamente pode ser obtida abrindo em uma nova janela
no endereo:
https://testauthentication.maxipago.net/redirection_service/logo?m=100&s=ORD12345678&h=fe220a16
0c7fa6f7fc104185f8663e45.

Ao dar carregar, a pgina deve automaticamente ser redirecionada para:
https://tst.kaptcha.com/logo.htm?m=220000&s=1160 e carregar uma imagem de um pequeno retngulo
verde conforme imagem abaixo:













32

Note que as seguintes diferenas existem entre o ambiente de teste e de produo:






https://testauthentication.maxipago.net/redirection_service/logo?m=100&s=ORD12345678&h=fe220a16
0c7fa6f7fc104185f8663e45

O texto tst substitudo por ssl na URL https://tst.kaptcha.com/logo.htm?m=220000&s=1160 de
resposta.


O nmero do estabelecimento (m) no o mesmo
A chave secreta (k) no a mesma
O texto test sai na URL



maxiPago! Smart Payments 2013
33

Requisies de Fraude

As chamadas para o fraudControl! fazem parte da nossa API. Portanto, no h a necessidade de
mtodos adicionais. Se o servio estiver contratado, basta enviar uma transao para que ela seja
verificada.

Para escolher quais transaes sero passadas pelo servio e quais sero processadas sem
checagem de fraude, basta incluir o campo <fraudCheck/> na requisio com os valores Y ou N. Ou
se preferir solicite que todas as transaes de carto de crdito sejam enviadas para o
fraudControl!

Exemplo de chamada com fraudControl!:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>1</processorID>
<referenceNum>ORD837283</referenceNum> <!-- Session ID -->
<fraudCheck>Y</fraudCheck> <!-- ou campo omitido -->
<transactionDetail>
<payType>
<creditCard>
<number>4111111111111111</number>
<expMonth>12</expMonth>
<expYear>2020</expYear>
<cvvNumber>999</cvvNumber>
</creditCard>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>12.00</chargeTotal>
</payment>
</sale>
</order>
</transaction-request>

Exemplo de chamada sem fraudControl! :
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>1</processorID>
<referenceNum>987654321</referenceNum>




34

<fraudCheck>N</fraudCheck>
<transactionDetail>
<payType>
<creditCard>
<number>4111111111111111</number>
<expMonth>12</expMonth>
<expYear>2020</expYear>
<cvvNumber>999</cvvNumber>
</creditCard>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>12.00</chargeTotal>
</payment>
</sale>
</order>
</transaction-request>

Respostas de Fraude

A resposta da avaliao de fraude retornada junto com a resposta da transao de carto de crdito.
O valor do campo responseCode indicar o status da transao e o campo fraudScore trar a nvel
de risco para a transao, sendo 0 a mais segura e 99 a mais arriscada.

Abaixo temos a lista completa de valores retornados no responseCode:
Valor Descrio Aes do Lojista
0 Transao APROVADA Nenhuma, pedido Aprovado
1 Transao NEGADA pela Adquirente Nenhuma, pedido Negado
2 Transao NEGADA: alto risco de FRAUDE Nenhuma, pedido Negado
5
Transao EM REVISO: anlise de FRAUDE

Disponvel somente para Autorizaes
Revisar pedido e executar
ao manual no Portal:
APROVAR
NEGAR
1024 Erro nos parmetros enviados pelo lojista Revisar requisio
2048 Erro interno na maxiPago! Contatar Suporte maxiPago!



Requisies de Transao - Boleto

As transaes feitas com Boleto funcionam um pouco diferente das transaes com carto de crdito.
Ao receber os dados do pedido ns geramos um boleto, disponvel 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 aps o vencimento.



maxiPago! Smart Payments 2013
35

O Estabelecimento tem a opo 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 necessria uma 2a.via.

Gerando um boleto

Para gerar um boleto, alm de passar os dados bsicos da transao preciso enviar o Nosso
Nmero, ou nmero do boleto. Este campo identifica o boleto dentro do banco e usado para
conciliar o pagamento. Portanto, o Nosso Nmero deve ser nico para cada boleto a fim de evitar
problemas na conciliao.

O boleto uma transao de venda direta, ou seja, utiliza a mesma tag <sale/>. Os dados do boleto,
contudo, so passados dentro do elemento <boleto/>. Um boleto sempre nominal, portanto faz-se
necessrio o envio dos dados do comprador no elemento <billing/>, sendo obrigatrio somente o
nome.

Os parmetros recebidos na gerao de um boleto so:
Nome Descrio
version
(obrigatrio)
Verso da API
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
referenceNum
(obrigatrio)
Identificador nico do pedido
Este campo aceita apenas valores alfanumricos
processorID
(obrigatrio)
Cdigo do meio de pagamento
Boleto Ita = 11
Boleto Bradesco = 12 (USE 12 PARA TESTES)
Boleto Banco do Brasil = 13
HSBC = 14
Santander = 15
Caixa Econmica Federal = 16
ipAddress Endereo de IP do comprador
chargeTotal
(obrigatrio)
Valor do pedido.
Os decimais devem ser separados por ponto (".")
Exemplo: 15.00 ou 1649.99
expirationDate
(obrigatrio)
Data de vencimento do boleto. Formato AAAA-MM-DD
number
(obrigatrio)
Nmero do boleto (Nosso Nmero), usado para identificar o
boleto dentro do banco.
Este valor precisa ser nico
Ita = mximo de 8 nmeros
Bradesco = mximo de 10 nmeros
Banco do Brasil = mximo de 10 nmeros
instructions
Instrues a serem impressas no boleto. Use ponto e vrgula
(;) para pular uma linha.
Exemplo: Sr. Caixa, no aceitar aps o vencimento.;Referente




36

ao pedido 123.


Abaixo temos um exemplo de XML de gerao de boleto:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>12</processorID>
<referenceNum>00987</referenceNum>
<ipAddress>123.123.123.123</ipAddress>
<billing>
<name>Fulano de Tal</name>
<address>Av. Republica do Chile, 230</address>
<address2>16 Andar</address2>
<city>Rio de Janeiro</city>
<state>RJ</state>
<postalcode>20031170</postalcode>
<country>BR</country>
<phone>2140099400</phone>
<email>fulanodetal@email.com</email>
</billing>
<transactionDetail>
<payType>
<boleto>
<expirationDate>2022-12-25</expirationDate>
<number>0112233</number>
</boleto>
</payType>
</transactionDetail>
<payment>
<chargeTotal>12.00</chargeTotal>
</payment>
</sale>
</order>
</transaction-request>

Conciliando pagamentos de boleto

A confirmao de pagamento do boleto offline. A maxiPago! recebe um arquivo de pagamento do
banco listando os boletos pagos para o Estabelecimento. Ns ento processamos este arquivo e
atualizamos o status do pedido, que pode ser checado pelo Portal ou pela Requisio de Consulta.
Para mais informaes sobre a confirmao de pagamentos de Boleto contate nossa equipe de
Suporte.


maxiPago! Smart Payments 2013
37

Requisies de Transao Transferncia Bancria

A transferncia um mtodo de pagamento onde o comprador redirecionado para a pgina de
pagamento do seu banco, entra em sua conta corrente e autoriza o dbito para o Estabelecimento.

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 transao.

ATENO
Para que possamos habilitar esse servio preciso que voc envie para a nossa equipe de Suporte as
seguintes informaes:

* 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

No ser possvel o envio de testes sem que as duas URLs estejam cadastradas

Enviando uma transao de transferncia

Por se tratar de um meio de pagamento que obriga o redirecionamento para um ambiente externo,
permitimos o envio de parmetros adicionais em GET para facilitar o rastreamento do pedido.

Os campos aceitos pela requisio de dbito online esto abaixo:
Name Description
version
(Obrigatrio)
A verso da API
merchantId
(Obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(Obrigatrio)
Chave associada ao ID de Loja
referenceNum
(Obrigatrio)
Identificador nico do pedido
Este campo aceita apenas valores alfanumricos
processorID
(Obrigatrio)
Cdigo do mtodo de pagamento
Bradesco = 17 (USE 17 PARA TESTES)
Ita = 18
customerIdExt
(obrigatrio
para Ita)
CPF ou CNPJ do comprador. Somente nmeros
name
(obrigatrio
para Ita)
Nome do comprador




38

address
(obrigatrio
para Ita)
Endereo do comprador
address2
(obrigatrio
para Ita)
Bairro do comprador
city
(obrigatrio
para Ita)
Cidade do comprador
state
(obrigatrio
para Ita)
Estado do comprador com 2 letras
postalcode
(obrigatrio
para Ita)
CEP do comprador. Somente nmeros
country
(obrigatrio
para Ita)
Pas do comprador com 2 letras (ISO 3166-2)
chargeTotal
(Obrigatrio)
Valor do pedido.
Os decimais devem ser separados por ponto (".")
Exemplo: 15.00 ou 1649.99
parametersURL
(Obrigatrio)
Parmetro que ser enviado em GET para a URL de Sucesso ou URL
de Falha ao redirecionar o comprador de volta para o lojista.
Por favor, deixe o campo vazio (no nulo) se no for usado.
Exemplo: purchaseCode=123456&amp;id=a1b2c3 (HTML encoded)









maxiPago! Smart Payments 2013
39

Abaixo temos o XML para uma transao de dbito on-line:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>17</processorID>
<referenceNum>ORD4827294</referenceNum>
<ipAddress>123.123.123.123</ipAddress>
<customerIdExt>12345678909</customerIdExt>
<billing>
<name>Fulano de Tal</name>
<address>Av. Republica do Chile, 230</address>
<address2>16 Andar</address2>
<city>Rio de Janeiro</city>
<state>RJ</state>
<postalcode>20031170</postalcode>
<country>BR</country>
</billing>
<transactionDetail>
<payType>
<onlineDebit>

<parametersURL>id=123456&amp;tp=3</parametersURL>
</onlineDebit>
</payType>
</transactionDetail>
<payment>
<chargeTotal>1.00</chargeTotal>
</payment>
</sale>
</order>
</transaction-request>


Para testar a Transferncia Bancria Bradesco, utilize os valores abaixo, sendo que a senha
11111111:






40

Retorno de Transao

O retorno das requisies de transao possui um padro nico, independentemente do tipo de
transao efetuada. Contudo, nem todos os campos so retornados em todas as transaes.

Os seguintes parmetros so retornados dentro do n raiz <transaction-response/>:
Nome Descrio
boletoURL
URL para gerao do Boleto
Recomenda-se salvar esta URL para uso futuras
onlineDebitURL
URL para redirecionamento do Dbito Online
O cliente deve ser redirecionado para esta URL para
completar a transao
authenticationURL
URL de autenticao
O cliente deve ser redirecionado para esta URL para
completar a etapa de autenticao.
authCode Cdigo de autorizao retornado pela adquirente
referenceNum Confirmao do cdigo enviado na requisio.
orderID
ID do pedido, gerado pela maxiPago!.
Deve-se salvar este campo para futuras referncias
ao pedido.
transactionID
ID da transao, gerado pela maxiPago!.
Deve-se salvar este campo para futuras referncias
ao pedido.
transactionTimestamp
Data/hora da transao em formato epoch
1
.
Veja aqui
2
instrues de converso.
responseCode
Indicador do status da transao na maxiPago!.

Voc deve utilizar APENAS este campo para validar o
resultado de uma transao. No utilize outros
campos da resposta para determinar o sucesso ou
falha de uma transao.

0 = Aprovada (*)
1 = Negada
2 = Negada por Fraude
5 = Em Reviso (Anlise Manual de Fraude)
1022 = Erro na operadora de carto
1024 = Erro nos parmetros enviados
Ver 'responseMessage' para mais informaes
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 informaes sobre o formato epoch (ou Unix time): http://pt.wikipedia.org/wiki/Era_Unix

2

Exemplos de converso dos valores: http://www.epochconverter.com/#code



maxiPago! Smart Payments 2013
41

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 transao
avsResponseCode
Resposta da verificao AVS, se houver:
-X: O numero da rua e o CEP batem,
-A: O numero da rua bate mas o CEP no,
-N: Nem o numero da rua nem o CEP batem,
-S: O servio no esta disponvel para este carto,
-C: Servio indisponvel
-W: O CEP bate mas o numero da rua no.

OBSERVAO: sugerimos que a resposta AVS seja usada
para avaliao manual do risco

processorCode
Cdigo de retorno da Adquirente
Linha Digitvel do Boleto
processorMessage Mensagem de retorno da Adquirente
processorReferenceNumber
Nmero de referncia da Adquirente
Cielo: NSU
Redecard: Comprovante de Venda (CV)
processorTransactionID
ID da transao na Adquirente.
Cielo: TID
Redecard: NSU
fraudScore
Valor de score retornado pelo fraudControl!
Quanto menor o valor, menor o risco da transao
errorMessage Mensagem de erro, se houver
token
Presente s quando um carto salvo
automaticamente, traz o token nico daquele carto.
Vem dentro do elemento <save-on-file/>.
muito importante guardar esta informao para
futura referncia!
error
Presente s quando h erro na tentativa de salvar
automaticamente o carto, traz a mensagem de erro.
Vem dentro do elemento <save-on-file/>.








42

Transao Aprovada
<?xml version="1.0" encoding="UTF-8"?>
<transaction-response>
<authCode>005772</authCode>
<orderID>7F000001:013829A1C09E:8DE9:016891F0</orderID>
<referenceNum>123456789</referenceNum>
<transactionID>1418605</transactionID>
<transactionTimestamp>1340728262</transactionTimestamp>
<responseCode>0</responseCode>
<responseMessage>CAPTURED</responseMessage>
<avsResponseCode/>
<cvvResponseCode/>
<processorCode>0</processorCode>
<processorMessage>APPROVED</processorMessage>
<errorMessage/>
<processorTransactionID>2612953</processorTransactionID>
<processorReferenceNumber>689472845</processorReferenceNumber>
<fraudScore>29</fraudScore>
<save-on-file>
<token>eBUv/SIBJv0=</token>
</save-on-file>
</transaction-response>

Transao 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>

Parmetros Invlidos
<?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/>


maxiPago! Smart Payments 2013
43

<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 Descrio
Credit Card Number is not a valid
credit card number
Nmero de carto de crdito no vlido
The transaction has an expired
credit card
Data de vencimento do carto no vlida
A transaction with boletoNumber =
XXX already exists in the database
O campo boletoNumber enviado j existe
em nosso sistema para este lojista
Transaction Amount is not a valid
number in the range of 0.01 to
1.0E14
O valor da transao no vlido
Request is invalid and can not be
processed
O campo processorID enviado no
vlido

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>






44

Requisies de Cadastro

As requisies de cadastro executam aes no-transacionais no sistema. Estas funes esto
ligadas principalmente ao produto quickPago!, que permite salvar o carto de crdito do cliente em
nossa base e gerenciar futuras transaes a partir de um token nico.

Ateno!

A URL das Requisies de Cadastro diferente da usada para as transaes, e no h verso de API.

URL de Teste: https://testapi.maxipago.net/UniversalAPI/postAPI

A estrutura do XML um pouco diferente nas requisies de Transao. A validao das credenciais
permanece a mesma, mas surgem dois novos elementos, alm de ter outro n-raiz: <api-request/>.

O elemento <command/> determina a funo a ser executada, enquanto que o n <request/> contm
os detalhes da requisio. Os comandos disponveis so:

add-consumer: cria um cadastro para o cliente com as suas informaes bsicas. Sem um
cadastro no possvel executar as demais funes.
delete-consumer: remove o cadastro do cliente
update-consumer: atualiza o cadastro do cliente
add-card-onfile: adiciona um carto de crdito ao cadastro do cliente
delete-card-onfile: remove um carto de crdito do cadastro do cliente

A estrutura bsica do XML fica, ento, da seguinte forma:
<api-request>
<verification>
<merchantId/>
<merchantKey/>
</verification>
<command/>
<request>

</request>
</api-request>



maxiPago! Smart Payments 2013
45

Adicionar um cliente

Antes de se adicionar um carto base preciso criar um cadastro do cliente usando o comando add-
consumer.
Os parmetros aceitos no comando add-consumer esto abaixo. Se o campo for vazio, no enviar.
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado
Para criar um cadastro: add-consumer
customerIdExt
(obrigatrio)
Identificador interno do Estabelecimento para o cliente.
firstName
(obrigatrio)
Nome do cliente
lastName
(obrigatrio)
Sobrenome do cliente
address1 Endereo da residncia do cliente
address2 Endereo da residncia do cliente - Complemento
city Cidade da residncia do cliente
state
UF da residncia do cliente
2 letras seguindo padro brasileiro. ZZ = Fora do Brasil.
zip CEP da residncia do cliente
country Pas (ISO 3166-2)
phone Telefone do cliente
email E-mail do cliente
dob
Data de nascimento do cliente
Formato MM/DD/AAAA
sex Sexo do cliente. F = Feminino | M = Masculino

O XML exemplo abaixo cria a conta de um cliente:
<api-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>add-consumer</command>
<request>
<customerIdExt>00000001</customerIdExt>
<firstName>Fulano</firstName>
<lastName>de Tal</lastName>
<zip>20031170</zip>
<email>fulano@exemplo.com</email>
<dob>12/25/1970</dob>
<ssn>12345678909</ssn>
<sex>M</sex>
</request>
</api-request>




46

Remover um cliente

O comando delete-consumer remove o cliente e todas as informaes ligadas ao cadastro da
base. Esta operao no pode ser desfeita.

Os parmetros aceitos no comando delete-consumer so:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado
Para remover um cadastro: delete-consumer
customerId
(obrigatrio)
ID nico do cadastro, retornado quando o cliente foi adicionado
base

O XML abaixo remove o cadastro de um cliente fictcio:
<api-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>delete-consumer</command>
<request>
<customerId>999</customerId>
</request>
</api-request>




maxiPago! Smart Payments 2013
47

Atualizar um cliente
O comando update-consumer permite atualizar os dados salvos dentro do cadastro do cliente. Os
parmetros aceitos e o formato da chamada so muito similares ao comando add-consumer. A
principal diferena que este mtodo requer o envio do campo customerId.

Os parmetros aceitos so:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado
Para atualizar um cadastro: update-consumer
customerId
(obrigatrio)
ID nico do cadastro, retornado quando o cliente foi adicionado
base
customerIdExt
(obrigatrio)
Identificador interno do Estabelecimento para o cliente.
firstName Nome do cliente
lastName Sobrenome do cliente
address1 Endereo da residncia do cliente
address2 Endereo da residncia do cliente - Complemento
city Cidade da residncia do cliente
state
UF da residncia do cliente
2 letras seguindo padro brasileiro. ZZ = Fora do Brasil.
zip CEP da residncia do cliente
phone Telefone do cliente
email E-mail do cliente
dob
Data de nascimento do cliente
Formato MM/DD/AAAA
ssn
CPF ou CNPJ do cliente
Obs: Este campo apenas para referncia. No sero feitas
validaes dos dados enviados.
sex Sexo do cliente. F = Feminino | M = Masculino

O XML exemplo abaixo atualiza o cadastro de um cliente:




48

<api-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>update-consumer</command>
<request>
<customerId>999</customerId>
<customerIdExt>00000001</customerIdExt>
<firstName>Fulano</firstName>
<lastName>de Tal</lastName>
<zip>20031170</zip>
<email>fulano@exemplo.com</email>
<dob>12/25/1970</dob>
<ssn>12345678909</ssn>
<sex>M</sex>
</request>
</api-request>


maxiPago! Smart Payments 2013
49

Salvar um carto na base

O quickPago! permite ao Estabelecimento salvar o carto de crdito do cliente para futuras compras.
O nmero de carto e a data de vencimento ficam guardados em nossos servidores e o
Estabelecimento recebe um token nico referente ao carto.

Em uma futura compra, ao invs de pedir novamente o nmero de carto ao cliente o Estabelecimento
envia o token para a maxiPago!, agilizando o checkout.

Como funciona o armazenamento de nmeros de cartes?
A maxiPago! possui servidores de alta disponibilidade e alta performance, localizados nos Estados Unidos.
Somos auditados periodicamente dentro dos padres PCI-DSS
3
, que determinam as regras de segurana
para o armazenamento de cartes de crdito. O nmero de carto fica criptografado e no pode ser
visualizado por nenhum membro de nossa equipe.

Por medida de segurana preciso enviar os dados de cobrana do Portador, ou seja, o endereo
onde o cliente do carto recebe a fatura.

Os parmetros recebidos pelo comando add-card-onfile so:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado
Para adicionar um carto ao cadastro: add-card-onfile
customerId
(obrigatrio)
ID nico do cadastro, retornado quando o cliente foi
adicionado base
creditCardNumber
(obrigatrio)
Nmero do carto de crdito a ser salvo
expirationMonth
(obrigatrio)
Ms de vencimento do carto com 2 dgitos
expirationYear
(obrigatrio)
Ano de vencimento do carto com 4 dgitos
billingName
(obrigatrio)
Nome do Portador do carto
Obs: preciso informar o nome do Portador mesmo que o
cliente j tenha cadastro pelo comando add-consumer.
billingAddress1
(obrigatrio)
Endereo de cobrana para onde enviada a fatura do
carto
billingAddress2 Complemento do endereo de cobrana

3

Mais informaes (ingls):
http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard





50

billingCity
(obrigatrio)
Cidade
billingState
(obrigatrio)
UF da residncia do cliente
2 letras seguindo padro brasileiro. ZZ = Fora do Brasil.
billingZip
(obrigatrio)
CEP sem trao
billingCountry
(obrigatrio)
Cdigo do pas com 2 letras (ISO 3166-2
4
)
billingPhone
(obrigatrio)
Telefone de contato do Portador
Com DDD, sem trao ou espao (Ex.: 2140099400)
billingEmail
(obrigatrio)
Endereo de email do Portador
onFileEndDate
Data limite para manter o carto na base
Formato MM/DD/AAAA
onFilePermissions
Durao limite do uso do carto salvo
ongoing = indefinidamente
use_once = apenas uma vez aps a 1a. cobrana
onFileComment Comentrios adicionais sobre este carto
onFileMaxChargeAmoun
t
Valor mximo que permitido cobrar deste carto
Decimais separados por ponto ("."). Ex.: 100.00

O XML abaixo adiciona um carto ao cadastro do cliente criado anteriormente:
<api-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>add-card-onfile</command>
<request>
<customerId>999</customerId>
<creditCardNumber>4111111111111111</creditCardNumber>
<expirationMonth>12</expirationMonth>
<expirationYear>2020</expirationYear>
<billingName>Fulano de Tal</billingName>
<billingAddress1>Av Republica do Chile, 230</billingAddress1>
<billingAddress2>16. Andar</billingAddress2>
<billingCity>Rio de Janeiro</billingCity>
<billingState>RJ</billingState>
<billingZip>20031170</billingZip>
<billingCountry>BR</billingCountry>
<billingPhone>2140099400</billingPhone>
<billingEmail>fulano@exemplo.com</billingEmail>
<onFileMaxChargeAmount>300.00</onFileMaxChargeAmount>
</request>
</api-request>

4

Mais sobre o ISO 3166-2: http://pt.wikipedia.org/wiki/ISO_3166-2



maxiPago! Smart Payments 2013
51

Remover um carto da base

O comando delete-card-onfile remove um carto salvo no cadastro do cliente. O cadastro em si
continua ativo, pois a nica informao apagada o nmero do carto.

Os parmetros aceitos pelo comando delete-card-onfile so:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado
Para remover um carto do cadastro: delete-card-onfile
customerId
(obrigatrio)
ID nico do cadastro, retornado quando o cliente foi
adicionado base
token
(obrigatrio)
Token nico associado ao carto


Este XML exemplo remove o carto 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>





52

Retorno do Cadastro

O retorno das requisies de cadastro contm a confirmao de que o comando foi executado com
sucesso. Em alguns casos, como no comando add-customer, ele tambm traz de volta informaes
que sero usadas para fazer referncia ao cadastro do cliente no futuro. Estas informaes so
enviadas dentro do elemento <result/>.

Os parmetros retornados pelas requisies de cadastro so:
Nome Descrio
errorCode Cdigo de retorno da operao. Sucesso = 0
errorMessage Mensagem de erro, se houver
command Confirmao do comando enviado
time Data/hora da transao em formato epoch.
customerId
Presente s no comando add-consumer. retornado o ID nico
daquele cliente, dentro do elemento <result/>.
muito importante guardar esta informao para futura
referncia!
token
Presente s no comando add-card-onfile. retornado o token nico
daquele carto, dentro do elemento <result/>.
muito importante guardar esta informao para futura
referncia!

O XML de retorno segue esta estrutura:
<api-response>
<errorCode/>
<errorMessage/>
<command/>
<time/>
<result>

</result>
</api-response>




maxiPago! Smart Payments 2013
53

Transaes com token

Uma vez em posse do customerId e do token do carto possvel realizar autorizaes e vendas
diretas sem a necessidade de pedir o nmero de carto ao cliente.

A chamada muito similar s operaes de autorizao ou venda direta. Contudo, ao invs de se usar
o elemento <creditCard/> deve-se usar o elemento <onFile/>, que aceita os seguintes parmetros:
Nome Descrio
customerId
(obrigatrio)
ID nico do cadastro, retornado quando o cliente foi adicionado
base
token
(obrigatrio)
Token nico associado ao carto

Este XML faz uma Venda Direta usando token e customerId fictcios:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>1</processorID>
<referenceNum>987654321</referenceNum>
<ipAddress>123.123.123.123</ipAddress>
<transactionDetail>
<payType>
<onFile>
<customerId>999</customerId>
<token>k11112233d</token>
</onFile>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>7.00</chargeTotal>
</payment>
</sale>
</order>
</transaction-request>







54

Recorrncias com token

Durante a recorrncia o carto de crdito salvo automaticamente em nossa base. Porm se esse
cliente j fez uma compra prvia no Estabelecimento e usou a opo quickPago! possvel usar no
XML da Recorrncia o token previamente gerado ao invs do nmero do carto de crdito.

Este XML cria uma recorrncia a partir de um token salvo anteriormente:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<recurringPayment>
<processorID>1</processorID>
<referenceNum>12304560</referenceNum>
<ipAddress>123.123.123.123</ipAddress>
<transactionDetail>
<payType>
<onFile>
<customerId>999</customerId>
<token>k11112233d</token>
</onFile>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>22.00</chargeTotal>
</payment>
<recurring>
<action>new</action>
<startDate>2020-12-25</startDate>
<frequency>2</frequency>
<period>monthly</period>
<installments>5</installments>
<failureThreshold>1</failureThreshold>
</recurring>
</recurringPayment>
</order>
</transaction-request>



maxiPago! Smart Payments 2013
55

Salvar o carto automaticamente

possvel tambm salvar o nmero de carto automaticamente durante uma operao de autorizao
ou venda direta.

Como um carto precisa sempre estar associado a um cadastro, preciso executar o comando add-
consumer antes de se poder salvar o carto. Tambm preciso enviar os dados de cobrana
(<billing/>), descritos anteriormente neste manual.

Para indicar que deseja salvar o carto automaticamente preciso incluir, dentro do n da operao
(<sale/> ou <auth/>), o elemento <saveOnFile/>, que aceita os seguintes parmetros:
Nome Descrio
customerToken
(obrigatrio)
ID nico do cadastro, retornado quando o cliente foi
adicionado base (customerId)
onFileEndDate
Data limite para manter o carto na base
Formato MM/DD/AAAA
onFilePermission
Durao limite do uso do carto salvo
ongoing = indefinidamente
use_once = apenas uma vez aps a 1a. cobrana
onFileComment Comentrios adicionais sobre este carto
onFileMaxChargeAmount
Valor mximo que permitido cobrar deste carto
Decimais separados por ponto ("."). Ex.: 100.00

O XML abaixo passa uma Venda Direta e salva o carto de um cliente:
<transaction-request>
<version>3.1.1.15</version>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<order>
<sale>
<processorID>1</processorID>
<referenceNum>3211230001</referenceNum>
<billing>
<name>Fulano de Tal</name>
<address>Av. Repblica do Chile, 230</address>
<address2>16 Andar</address2>
<city>Rio de Janeiro</city>
<state>RJ</state>
<postalcode>20031170</postalcode>
<country>BR</country>
<phone>2140099400</phone>
<email>fulanodetal@email.com</email>
</billing>
<transactionDetail>
<payType>




56

<creditCard>
<number>4111111111111111</number>
<expMonth>12</expMonth>
<expYear>2020</expYear>
<cvvNumber>999</cvvNumber>
</creditCard>
</payType>
</transactionDetail>
<payment>
<currencyCode>BRL</currencyCode>
<chargeTotal>33.00</chargeTotal>
</payment>
<saveOnFile>
<customerToken>999</customerToken>
<onFileEndDate>12/25/2020</onFileEndDate>
</saveOnFile>
</sale>
</order>
</transaction-request>







maxiPago! Smart Payments 2013
57

Requisio de Consulta

A API de consulta e relatrios permite que o Estabelecimento extraia do banco de dados da maxiPago!
as informaes detalhadas de qualquer transao. permitido resgatar os detalhes de apenas uma
transao ou receber uma relao de transaes, filtradas por perodo.

O XML de resposta trar no mximo 100 transaes, a fim de no tornar a resposta muito pesada.
Caso a lista de transaes filtradas seja maior, ser utilizado um mecanismo de paginao, detalhado
mais abaixo.

A estrutura do XML similar s requisies de Cadastro e possui <rapi-request/> como n-raz. O
XML contm a verificao das credenciais no elemento <verification/>; a ao a ser executada na tag
<command/>; e os dados para filtragem dentro do n <request/>. No h verso de API.


URL de Teste: https://testapi.maxipago.net/ReportsAPI/servlet/ReportsAPI

Os comandos disponveis so:

transactionDetailReport: resgata todos os detalhes das transaes filtradas.
checkRequestStatusCommand: verifica o resultado de uma pesquisa em massa.

A estrutura bsica do XML fica da seguinte forma:
<rapi-request>
<verification>
<merchantId/>
<merchantKey/>
</verification>
<command/>
<request>

</request>
</rapi-request>






58

Consultar uma nica transao

A sondagem de uma nica transao permite verificar o seu status e resgatar os detalhes de uma
transao. Esta sonda necessria para confirmar os pagamentos de pedidos feitos com boletos,
alm de verificar a situao de um estorno solicitado anteriormente.

Para filtrar uma nica transao deve-se usar o elemento <filterOptions/>, dentro da tag <request/>:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado: transactionDetailReport
transactionId
(obrigatrio)
ID da transao gerado pela maxiPago!

O XML abaixo busca uma transao especfica na base:
<rapi-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>transactionDetailReport</command>
<request>
<filterOptions>
<transactionId>32165498701</transactionId>
</filterOptions>
</request>
</rapi-request>




maxiPago! Smart Payments 2013
59

Consultar um nico pedido

Os pedidos so identificados pelo elemento orderID. Nos casos a seguir, um nico orderID, pode ter
mais de uma transao (transactionID):

Autorizao e captura separadas so duas transaes agrupadas no mesmo OrderID
Recorrncia (todas as transaes de uma recorrncia tem o mesmo orderID)
Boleto (Existe a possibilidade de emitir mais de um boleto no mesmo OrderID, como por
exemplo uma remisso trocando apenas data de vencimento).

Para estes casos (especialmente as recorrncias) pode ser muito til pesquisar pelo orderID para ver
todas as transaes agrupadas no mesmo orderID.

Para filtrar um nico pedido deve-se usar o elemento <filterOptions/>, dentro da tag <request/>:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado: transactionDetailReport
transactionId
(obrigatrio)
ID da transao gerado pela maxiPago!

O XML abaixo busca uma transao especfica na base:
<rapi-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>transactionDetailReport</command>
<request>
<filterOptions>
<orderId>32165498701</orderId>
</filterOptions>
</request>
</rapi-request>





60

Consultar uma lista de transaes

A maxiPago! recomenda que os Estabelecimentos mantenham em seu prprio banco de dados os
detalhes das transaes. Entendemos que isto nem sempre possvel, e por esta razo permitimos a
sondagem de transaes por perodo.

A busca por transaes dentro de um perodo especialmente til para a produo de relatrios para
plataformas onde no possvel manter um banco de dados local, como em um aplicativo para celular.

Para filtrar transaes deve-se usar o elemento <filterOptions/>, dentro da tag <request/>:
Nome Descrio
merchantId
(obrigatrio)
ID de Loja que identifica o Estabelecimento
merchantKey
(obrigatrio)
Chave associada ao ID de Loja
command
(obrigatrio)
Comando a ser executado: transactionDetailReport
period
(obrigatrio)
Perodo de busca de das transaes. Pode ser um filtro pr-
estabelecido ou um perodo especfico.

today = busca as transaes do dia de hoje
yesterday = traz transaes do dia anterior (ontem)
lastmonth = retorna as transaes do ms anterior
thismonth = traz as transaes do ms atual (desde o
dia 1o. at hoje)
range = indica que ser escolhido um perodo
especfico para busca
pageSize
Determina o nmero mximo de transaes em cada pgina.
Mximo = 100
startDate
No caso de period = range, este campo estabelece o primeiro
dia do perodo de busca das transaes
Formato: mm/dd/aaaa
endDate
No caso de period = range, este campo estabelece o ltimo
dia do perodo de busca das transaes
Formato: mm/dd/aaaa
startTime
No caso de period = range, este campo estabelece a hora
inicial da busca
Formato: hh:mm:ss (Exemplo: 00:00:00)
endTime
No caso de period = range, este campo estabelece a hora
final da busca
Formato: hh:mm:ss (Exemplo: 23:59:59)
orderByName
Determina o campo usado para ordenar a listagem das
transaes.
Exemplo: usar 'transactionAmount' para ordenar a partir do
valor do pedido.

transactionDate = Data do pedido
transactionAmount = Valor do pedido
transactionType = Tipo de operao
transactionId = ID da Transao


maxiPago! Smart Payments 2013
61

billingName = Nome de Cobrana, se disponvel
orderId = ID do Pedido
paymentType = Meio de Pagamento
status = Status
orderByDirection
Determina se a listagem ser crescente ou decrescente.
asc = Crescente
desc = Decrescente
startRecordNumber
Define a partir de qual transao do resultado total voc
quer receber.
Exemplo: se a busca gerou 100 resultados e voc quer ver
apenas o terceiro quartil, ento "startRecordNumber=50"
endRecordNumber
Nmero da ltima transao da busca.
Exemplo: se a busca gerou 100 resultados e voc quer ver
apenas o terceiro quartil, ento "endRecordNumber=75"

O XML abaixo busca transaes feitas entre 18/12/2010 e 31/12/2010, ordenando-as por data,
comeando 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>






62

Retorno da Consulta

O retorno da chamada de consulta trar todas as informaes da transao solicitada, ou uma lista de
transaes. As informaes incluem dados como o status da transao, o valor do pedido, o ID do
Pedido, ID da Transao e os cdigos de retorno da adquirente.

Na eventualidade de o servidor postergar a sondagem do perodo, voc receber um token nico que
identifica aquela pesquisa. Guarde-o, pois ele ser usado na re-sondagem dos dados.

O XML de retorno est dividido em trs partes, <header/>, <resultSetInfo/> e <record/>:
<rapi-response>
<header>
...
</header>
<result>
<resultSetInfo>
<totalNumberOfRecords/>
<pageToken/>
<pageNumber/>
</resultSetInfo>
<records>
<record>

</record>
<record>

</record>
</records>
</result>
</rapi-response>

O elemento <header/> contm as informaes da requisio de consulta, com os seguintes campos:
Nome Descrio
errorCode Cdigo de resposta da requisio. Sucesso = 0
errorMsg Mensagem descritiva do erro (em ingls)
command Confirmao do comando enviado na requisio
time
Data e hora de gerao do relatrio no fuso PST.
Formato mm/dd/aaaa hh:mm:ss

J o elemento <resultSetInfo/> traz o total de registros encontrados e os dados do sistema de
paginao:
Nome Descrio
totalNumberOfRecord
s
Quantidade total de transaes retornadas.
pageToken
Identificador de paginao desta resposta. Ele deve ser
guardado para permitir a navegao nas pginas.
S enviado caso haja mais de uma pgina


maxiPago! Smart Payments 2013
63

pageNumber
Nmero da pgina retornada.
S enviado caso haja mais de uma pgina.

O elemento <record/> contm os detalhes das transaes individuais. Nem todos os campos so
sempre retornados:
Nome Descrio
approvalCode Cdigo de autorizao da Adquirente
comments Comentrios inseridos na autorizao
creditCardType
Bandeira de carto utilizada na transao
VISA
MASTERCARD
AMEX
DINERS
DISCOVER
customerId ID nico do cadastro, se o cliente consta na base
orderId ID do Pedido gerado pela maxiPago!
paymentType
Carto de crdito (Bandeira + 4 ltimos dgitos)
Exemplo: (Visa) ...1234
processorID Nome da Adquirente/Banco que processou esta transao
recurringPaymentFlag Flag de pagamento recorrente. Recorrente = 1
referenceNumber Identificador do pedido no Estabelecimento
responseCode
Cdigo de resposta da transao
0 = Aprovada
1 = Negada
2 = Negada por Fraude
5 = Reviso de Fraude
1022 = Erro na operadora de carto
2048 = Erro interno na maxiPago!
transactionAmount Valor do pedido, em centavos (R$1,00 = 100)
transactionId ID da transao gerado pela maxiPago!
transactionStatus
Status da transao ORIGINAL.
altamente recomendado usar o campo transactionState
para determinar a situao da transao.
transactionState
Status da transao
- Comuns
1 - Em andamento
3 - Capturada
6 - Autorizada
7 - Negada
9 - Cancelada (Voided)
10 Paga
22 - Boleto Emitido
34 - Boleto Visualizado
35 - Boleto Pago A Menor
36 - Boleto Page A Maior

- Demais




64

4 - Pendente de captura
5 - Pendente de autorizao
8 - Revertida
11 Pendente de Confirmao
12 - Pendente de Reviso (verificar com Suporte)
13 - Pendente de Reverso
14 - Pendente de Captura (retentativa)
16 - Pendente de Estorno
18 - Pendente de Void
19 - Pendente de Void (retentativa)
29 - Pendente de Autenticao
30 - Autenticada
31 - Pendente de Estorno (retentativa)
32 - Autenticao em andamento
33 - Autenticao enviada
38 - Pendente de envio de arquivo de Estorno
44 Aprovada na Fraude
45 Negada por Fraude
46 Reviso de Fraude
transactionType
Operao realizada
Auth = Autorizao
Capture = Capturea
Sale = Venda Direta
Return = Estorno
Void = Void (Cancelamento)
Boleto Payment = Boleto
transactionDate
Data da transao em fuso PST
5
.
Formato MM/DD/AAAA hh:mm:ss tt
avsResponseCode Resposta do AVS, se disponvel
billingAddress1 Dados de cobrana, se foi enviado
billingAddress2 Dados de cobrana
billingCity Dados de cobrana
billingCountry Dados de cobrana
billingEmail Dados de cobrana
billingName Dados de cobrana
billingPhone Dados de cobrana
billingState Dados de cobrana
billingZip Dados de cobrana
boletoNumber Nmero identificador do boleto ("Nosso Nmero")

5

Fuso horrio PST ou UTC-8: http://pt.wikipedia.org/wiki/UTC-8 .



maxiPago! Smart Payments 2013
65

expirationDate Data de vencimento do boleto. Formato MM/DD/AAAA
dateOfPayment
Data de pagamento do boleto, se o banco a informou
Formato MM/DD/AAAA
dateOfFunding
Data de liquidao do boleto, se o banco a informou
Formato MM/DD/AAAA
bankOfPayment Cdigo do banco onde foi feito o pagamento do Boleto
branchOfPayment Agncia onde foi feito o pagamento do Boleto
paidAmount Valor do Boleto pago pelo cliente
bankFee Taxa de cobrana do boleto, se o banco a informou
netAmount Valor lquido a receber de Boleto (valor pago - taxa)
returnCode
Cdigo de pagamento do boleto no banco
Apenas para referncia
clearingCode
Cdigo de liquidao do banco, se informado
Apenas para referncia





66

Utilizando o sistema de paginao

Ao puxar um relatrio filtrado por perodo voc provavelmente ir receber um nmero considervel de
transaes. Para evitar problemas de performance temos um sistema de paginao de resultados, que
divide o nmero total de transaes em vrias pginas. preciso puxar as demais pginas para obter
todos os resultados.

O XML abaixo mostra um exemplo de resposta com 350 transaes:
<rapi-response>
<header>
...
</header>
<result>
<resultSetInfo>
<totalNumberOfRecords>350</totalNumberOfRecords>
<pageToken>xyz35Hiua834</pageToken>
<pageNumber>1</pageNumber>
</resultSetInfo>
<records>
<record>

<record>
</records>
</result>
</rapi-response>

Para poder reaver os dados das demais pginas preciso executar o comando
transactionDetailReport novamente, passando outros parmetros no elemento <filterOptions/>:
Nome Descrio
pageToken Identificador de paginao da resposta a ser sondada.
pageNumber Nmero da pgina que se quer obter o resultado


O XML de requisio para a sondagem da 3a.pgina de uma busca fica, ento, desta forma:
<rapi-request>
<verification>
<merchantId>100</merchantId>
<merchantKey>secret-key</merchantKey>
</verification>
<command>transactionDetailReport</command>
<request>
<filterOptions>
<pageToken>xyz35Hiua834</pageToken>


maxiPago! Smart Payments 2013
67

<pageNumber>3</pageNumber>
</filterOptions>
</request>
</rapi-request>






68

Consultas em massa

Dependendo da quantidade de registros solicitados a maxiPago! poder aguardar um perodo de
menor pico no servidor para executar a busca. Isto quer dizer que, nestes raros casos, o
Estabelecimento dever sondar novamente nossos servidores para verificar que a busca foi
completada.

Nestes casos, a resposta da solicitao de envio de relatrio diferente. Os campos recebidos so:
Nome Descrio
errorCode Cdigo de retorno da requisio. Sucesso = 0
errorMsg Mensagem descritiva do erro, se houver
command Confirmao do comando enviado na requisio
time
Data e hora do recebimento da requisio
Formato MM/DD/AAAA hh:mm:ss
requestToken
Token da requisio, usado para verificar se o relatrio j est
pronto.
Deve-se salvar este token para fazer uma nova sondagem

O XML abaixo mostra um exemplo de uma resposta para estes casos:
<rapi-response>
<header>
<errorCode>0</errorCode>
<errorMsg/>
<command>transactionDetailReport</command>
<time>12-01-2011 11:27:54</time>
</header>
<result>
<requestToken>8cIjsO7cmeY=</requestToken>
</result>
</rapi-response>



maxiPago! Smart Payments 2013
69

Sondando o resultado de uma busca em massa

O Estabelecimento poder posteriormente sondar a maxiPago! para ver se o relatrio 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 relatrio foi finalizado ou se ainda est sendo processado pelo sistema. Os
campos retornados pelo comando checkRequestStatus so:
Nome Descrio
errorCode Cdigo de resposta da requisio. Sucesso = 0
errorMsg Mensagem descritiva do erro, se houver
command Confirmao do comando enviado na requisio.
time
Data e hora de recebimento da requisio
Formato MM/DD/AAAA hh:mm:ss
statusMessage
Mensagem de indicao do status do relatrio.
REQUESTPROCESSED = Processado com sucesso
REQUESTNOTPROCESSED = Gerao no finalizada
REQUESTNOTFOUND = O pedido de gerao de relatrio
no foi encontrado
totalNumberOfRecords Quantidade total de transaes retornadas.
pageToken
Identificador de paginao desta resposta. Ele deve ser
guardado para permitir a navegao nas pginas.
Este valor ser retornado inclusive para relatrios que
possuam apenas uma pgina
processedTime Data e hora de gerao do relatrio.







70

Um exemplo do XML enviado na resposta :
<rapi-response>
<header>
<errorCode>0</errorCode>
<errorMsg/>
<command>checkRequestStatusCommand</command>
<time>03-24-2011 15:45:42</time>
</header>
<result>
<statusMessage>REQUESTPROCESSED</statusMessage>
<resultSetInfo>
<totalNumberOfRecords>150</totalNumberOfRecords>
<pageToken>temp1300919096768.1</pageToken>
<processedTime>03-23-201115:24:56</processedTime>
</resultSetInfo>
</result>
</rapi-response>













maxiPago! Smart Payments 2013
71

smartPage! - Integrao por HTTPS Post

A maxiPago! oferece um ambiente seguro para a digitao e armazenamento dos dados do carto do
comprador. Isto tira do Estabelecimento a necessidade de possuir certificado de segurana SSL,
pois a maxiPago! fica responsvel pelo tratamento das informaes sigilosas.

Para utilizar a smartPage! preciso redirecionar o comprador para o ambiente seguro da
maxiPago!, postando os dados do pedido. O cliente entrar em nosso ambiente, customizado com o
logotipo do Estabelecimento e protegido por um certificado de segurana SSL. Ao finalizar o pedido a
maxiPago! ir redirecionar o comprador de volta para o site do Estabelecimento.

O endereo para onde o comprador ser redirecionado depender do resultado da transao. Se o
pedido for aprovado a maxiPago! o enviar para a URL de Sucesso do Estabelecimento, mas se o
pedido for negado postaremos para a URL de Erro.
ATENO
Para que possamos habilitar esse servio preciso que voc envie para a nossa equipe de Suporte as
seguintes informaes:

* 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 pgina, com tamanho recomendado de 300x80.

No ser possvel o envio de testes sem que as trs URLs estejam cadastradas





72

Envio da transao

O envio da transao pode ser feito atravs de um simples Post HTML. Recomendamos fazer um
redirecionamento para a URL da maxiPago! evitando os pop-ups ou qualquer tipo de frame.

URL de Teste: https://testsecure.maxipago.net/hostpay/HostPay
URL de Produo: https://secure.maxipago.net/hostpay/HostPay

Os campos recebidos pela smartPage! so:
Nome Descrio
hp_merchant_id
(obrigatrio)
ID de Loja fornecido pela maxiPago!
hp_processor_id
(obrigatrio)
Cdigo da Adquirente que ir processar esta
transao
SIMULADOR DE TESTES = 1
Redecard = 2
Amex = 3
Cielo = 4
TEF = 5
Chase Paymentech = 8
hp_method
(obrigatrio)
Meio de pagamento usado. Sempre ser ccard.
hp_txntype
(obrigatrio)
Tipo de requisio a ser realizada
auth = Autorizao
sale = Venda Direta
hp_currency
Cdigo da moeda utilizada na transao de acordo com
a norma ISO 4217.
Lista completa de moedas: anexo B.
hp_amount
(obrigatrio)
Valor do pedido.
Os decimais devem ser separados por vrgula (",").
Ex.: 10,00
hp_number_of_installments
Nmero de parcelas de transao
Se for vista, no enviar
hp_charge_interest
Tipo de parcelamento (com ou sem juros)
N = Sem juros (PADRO - parcelamento Loja)
Y = Com juros (parcelamento Carto)
Se for vista, no enviar
hp_refnum
(obrigatrio)
Identificador do pedido no Estabelecimento
Este valor deve ser nico
hp_sig_itemid
(obrigatrio)
Cdigo do pedido usado na assinatura de validao
Deve-se usar um valor diferente ao enviado em
"hp_refnum".
hp_sig_timestamp
(obrigatrio)
Data/hora da transao em formato epoch
6
, usado na
assinatura de validao

6

Mais informaes sobre o formato epoch (ou Unix time): http://pt.wikipedia.org/wiki/Era_Unix


maxiPago! Smart Payments 2013
73

hp_sig_id
(obrigatrio)
Valor aleatrio de 4 dgitos, usado na assinatura de
validao
hp_signature
(obrigatrio)
Assinatura de validao da transao.
Chave HMAC-MD5
7
de validao, detalhada mais abaixo.
hp_bname
(obrigatrio)
Nome do portador do carto
hp_baddr Endereo do cliente
hp_baddr2 Complemento o endereo
hp_bcity Cidade do cliente
hp_bstate
UF da residncia do cliente
2 letras seguindo padro brasileiro.
ZZ = Fora do Brasil.
hp_bzip CEP do cliente
hp_bcountry Pas do cliente (ISO 3166-2)
hp_phone Telefone do cliente
hp_email Email do cliente
hp_lang
Idioma da tela de pagamentos
pt = Portugus (padro)
en = Ingls
es = Espanhol
hp_cf_1
hp_cf_2
hp_cf_3
hp_cf_4
hp_cf_5
Estes campos devolvero qualquer valor enviado e
podem ser usados como eco, guardando a sesso do
cliente ou qualquer outro identificador.

possvel tambm mostrar o valor enviado na pgina
de pagamento, permitindo a insero de textos e
instrues para o comprador.

Caso faa a utilizao desta funcionalidade
preciso enviar todos os 5 campos, mesmo que vazios.

Abaixo temos um exemplo do formulrio HTML enviado para uma transao:
<form method="POST" action="https://testsecure.maxipago.net/hostpay/HostPay">
<input name="hp_merchant_id" value="100">
<input name="hp_processor_id" value="1">
<input name="hp_method" value="ccard">
<input name="hp_txntype" value="sale">
<input name="hp_currency" value="BRL">
<input name="hp_amount" value="15,00">
<input name="hp_number_of_installments" value="2">
<input name="hp_charge_interest" value="N">
<input name="hp_refnum" value="ORD1325248408">
<input name="hp_sig_itemid" value="123123">
<input name="hp_sig_timestamp" value="1325248408">


7

Mais informaes sobre a funo HMAC (em ingls): http://en.wikipedia.org/wiki/HMAC





74

<input name="hp_sig_id" value="5038">
<!--<input name="hp_signature" value="799074cdb40ce532ed97bf11a9e7963f">-->
<input name="hp_bname" value="Fulano de Tal">
<input name="hp_baddr" value="Av. Repblica do Chile, 230">
<input name="hp_bcity" value="Rio de Janeiro">
<input name="hp_bstate" value="RJ">
<input name="hp_bcountry" value="BR">
<input name="hp_lang" value="pt">
<input name="submit" type="submit" value="Finalizar pedido">
</form>




maxiPago! Smart Payments 2013
75

Salvar o carto automaticamente

possvel combinar o uso da smartPage! com o sistema de armazenamento de cartes. O comprador
digita os dados do seu carto no ambiente da maxiPago! e o Estabelecimento recebe de volta o status
da transao e o token do carto do comprador. Desta forma possvel utilizar a plataforma
quickPago! sem que o Estabelecimento veja o nmero de carto.

Para salvar um carto automaticamente preciso enviar, alm dos dados da transao, as informaes
do cliente. Se j houver um perfil de cliente criado preciso enviar tambm o seu ID, gerado pela
maxiPago!.

Os campos abaixo devem ser enviados juntamente com os dados da transao:
Nome Descrio
hp_c_firstname
(obrigatrio)
Nome do portador do carto
hp_c_lastname
(obrigatrio)
Sobrenome do portador do carto
hp_savepayment
(obrigatrio)
Flag para salvar o carto
1 = Salvar
hp_customer_token
(obrigatrio*)
ID do perfil do cliente gerado pela maxiPago!.
* Somente ao salvar o carto sob um perfil j existente
hp_save_customer
(obrigatrio*)
Flag para salvar o perfil do cliente
1 = Salvar
* Somente ao criar o perfil do cliente
hp_c_customer_id
(obrigatrio*)
Nmero de referncia do cadastro para o lojista.
* Somente ao criar o perfil do cliente
hp_c_addr Endereo de cobrana
hp_c_addr2 Complemento do endereo
hp_c_city Cidade
hp_c_state
UF do cliente
2 letras seguindo padro brasileiro. ZZ = Fora do Brasil.
hp_c_zip CEP
hp_c_country Pas do cliente (ISO 3166-2)
hp_c_phone Telefone
hp_c_email Endereo de email




76

Resposta da smartPage!

O comprador pode retornar ao site do Estabelecimento atravs de duas URLs, a de Sucesso ou de
Erro. O cliente ser redirecionado para a URL de Sucesso quando a transao for aprovada pela
processadora de carto. Por outro lado, se o pedido for negado enviaremos o cliente para a URL de
Erro, avisando de algum problema na transao.

Estas duas URLs devem ser hospedadas pelo Estabelecimento e seus endereos devem ser
informados nossa equipe de Suporte durante o processo de integrao.

O Estabelecimento tem a opo receber os dados da transao -- como cdigo de autorizao,
mensagem da operadora e ID do pedido -- no momento em que o comprador volta para o ambiente da
loja. Neste caso a maxiPago! ir postar estes dados junto com o redirecionamento do navegador.
Contudo, esta funcionalidade s est disponvel para Estabelecimentos com certificado de
segurana SSL.

Por que apenas Estabelecimentos com certificado SSL podem receber os dados via Post?
Os navegadores modernos possuem uma srie de medidas para garantir a segurana do usurio. Uma
delas, mostrada abaixo, avisa que o usurio est saindo de um ambiente seguro (HTTPS) para um
ambiente no-seguro (HTTP), e que qualquer informao postada pode ficar visvel, j que a comunicao
no est criptografada.




Um comprador que v esta mensagem pode ficar inseguro. Logo, para evitar problemas, recomendamos
postar os dados da transao para uma URL hospedada em um ambiente HTTPS.

Caso seu site no possua certificado de segurana possvel obter os dados da transao atravs do
Portal maxiPago! ou da requisio de consulta, detalhada neste manual.




maxiPago! Smart Payments 2013
77

Os dados retornados tanto para a URL de Sucesso como para a URL de Erro so:
Nome Descrio
hp_time Data e hora da transao
hp_responsecode Indicador do status da transao. Sucesso = 0
hp_responsemsg Mensagem descritiva da resposta
hp_refnum Confirmao do cdigo enviado
hp_transid
ID da transao, gerado pela maxiPago!.
Salve este campo para futuras referncias.
hp_avsresponse Resposta da verificao AVS (somente nos EUA)
hp_authcode Cdigo de autorizao retornado pela adquirente
hp_orderid
Valor nico associado ao pedido pela maxiPago!.
Salve este campo para futuras referncias/
hp_currency
Cdigo da moeda utilizada na transao de acordo
com a norma ISO 4217.
Lista completa de moedas: anexo B.
hp_amount Confirmao do valor enviado
hp_processortxnid
ID da transao na Adquirente.
Cielo: TID
Redecard: NSU
hp_processorrefno
Nmero de referncia da Adquirente
Cielo: NSU
Redecard: Comprovante de Venda (CV)
hp_fraud_score
Valor de score retornado pelo fraudControl!
Quanto menor o valor menor o risco da transao
hp_signature_response
Assinatura de validao da transao
Chave HMAC-MD5 de validao, detalhada abaixo.
hp_customer_token
Presente s quando um cadastro de cliente
criado, traz o ID do perfil do cliente.
muito importante guardar esta informao para
futura referncia!
hp_payment_token
Presente s quando um carto salvo
automaticamente, traz o token nico daquele
carto.
muito importante guardar esta informao para
futura referncia!
hp_save_payment_responsemsg
Presente s quando um carto salvo
automaticamente, traz o resultado da operao



ATENO

Para garantir a segurana das informaes postadas recomendamos que voc, ao receber um Post na sua
URL de Sucesso ou de Erro, use a Requisio de Consulta para confirmar os dados recebidos. Isto
garante que as informaes recebidas no Post no foram alteradas por terceiros.






78

Assinatura de validao do Post

Para garantir a segurana da transao e a integridade dos dados postados a maxiPago! utiliza uma
assinatura nica por pedido, que valida se os dados do Post so originais ou se foram alterados por
algum.

A assinatura montada utilizando a funo HMAC-MD5
8
, que recebe dados do pedido concatenados e
uma chave secreta, fornecida ao Estabelecimento durante o processo de integrao.

A maxiPago! utilizar a assinatura para validar os dados recebidos e checar se a requisio legtima.
O Estabelecimento tambm dever checar a assinatura no Post de retorno, verificando que a resposta
veio realmente do nosso sistema.

Os dados do pedido devem estar concatenados em uma ordem especfica e separados por um
asterisco, conforme mostra a tabela abaixo. A chave secreta, por sua vez, utilizada na funo hash
e no includa nos dados concatenados.

Requisio
Dados: hp_sig_timestamp*hp_sig_id*hp_amount*hp_sig_itemid
Exemplo: 1325248408*5038*15,00*123123
Assinatura: 799074cdb40ce532ed97bf11a9e7963f
Retorno
Dados: hp_refnum*hp_amount*APPROVED/DECLINED
Exemplo: ORD1325248408*15,00*APPROVED
Assinatura: d79ab630fe050b1ef9c4f8ccc5e18ad5
Chave secreta A chave secreta utilizada nos exemplos acima jM13K8hdbWi2V9ab

A seo de referncias
9
do artigo da Wikipdia sobre HMAC possui exemplos de implementao em
diferentes linguagens de programao.




8

Mais informaes sobre a funo HMAC (em ingls): http://en.wikipedia.org/wiki/HMAC

9

Exemplos de implementao da HMAC-MD5:
http://en.wikipedia.org/wiki/HMAC#External_links



maxiPago! Smart Payments 2013
79

Suporte integrao

O suporte aos desenvolvedores feito exclusivamente atravs do nosso Portal de Suporte. Os dados
de acesso so enviados para os nossos clientes a partir do email suporte@maxipago.com 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 integrao do seu sistema. Atualmente
temos bibliotecas de integrao em PHP, Java e .NET.

Suporte ao Cliente maxiPago!

E-mail: suporte@maxipago.com
Telefone: (11) 4063-4666







80

Anexo A Fluxos de Transaes

Este anexo contm os fluxos de transaes (diagramas de sequncia) da maioria das operaes
descritas neste manual. Estes so os fluxos mais comuns adotados na integrao com a maxiPago!.

Autorizao e Captura Pedido em duas etapas











maxiPago! Smart Payments 2013
81

Venda Direta Resposta imediata ao comprador



Venda Direta Resposta assncrona






82

Dbito Online Transferncia bancria







maxiPago! Smart Payments 2013
83

Emisso e pagamento de Boleto


















84

Estorno Adquirente com resposta online
Estorno Adquirente com resposta offline







maxiPago! Smart Payments 2013
85

Salvar carto automaticamente








86

smartPage Integrao via HTTPS POST
























maxiPago! Smart Payments 2013
87

Anexo B Moedas

Este anexo possui a listagem das moedas apresentadas no ISO 4217 e que so aceitas em nosso
sistema.

Cdigo Moeda Cdigo Moeda
AED Dirham dos Emirados LBP Libra libanesa
AMD Dram armnio LKR Rupia do Sri Lanka
ANG Florim holands LTL Litas da Litunia
ARS Peso Argentino LVL Lats do Leto
AUD Dlar australiano MAD Dirham marroquino
AWG Florim de Aruba MDL Leu da Moldvia
BBD Dlar de Barbados MNT Tugrik da Monglia
BDT Taka de Bangladesh MOP Pataca macauense
BGN Lev blgaro MRO Ouguiya da Mauritnia.
BIF Franco do Burundi MUR Rupia da Maurcia
BMD Dlar de Bermuda MVR Rufiyaa maldvia
BND Dlar do Brunei MWK Kwacha malauiano
BOB Boliviano MXN Peso Mexicano
BRL Real MYR Ringgit malsio
BSD Dlar das Bahamas NAD Dlar da Nambia
BWP Pula da Botswana NGN Naira da Nigria
BYR Rublo bielorrusso NIO Cordoba Oro
BZD Dlar do Belize NOK Coroa norueguesa
CAD Dlar canadense NPR Rupia nepalesa
CHF Franco suo NZD Dlar da Nova Zelndia
CLP Peso chileno PAB Balboa moeda
CNY Yuan chins PEN Nuevo Sol peruano
COP Peso colombiano PGK Kina da Nova Guin
CRC Colon da Costa Rica PHP Peso filipino
CVE Escudo cabo-verdiano PKR Rupia paquistanesa
CZK Coroa checa PLN Zloty polaco
DJF Franco do Djibuti PYG Guarani paraguaio
DKK Coroa dinamarquesa QAR Rial do Qatar
DOP Peso dominicano RUB Rublo russo
DZD Dinar argelino RWF Franco do Ruanda
EGP Libra egpcia SAR Riyal saudita
ETB Birr etope SBD Dlar das Ilhas Salomo




88

EUR Euro SCR Rupia das Seychelles
FJD Dlar das Fiji SEK Coroa Sueca
FKP Libra das Malvinas SGD Dlar de Cingapura
GBP Libra Esterlina SHP Libra de Santa Helena
GEL Lari (moeda) SLL Leone de Serra Leoa
GIP Libra de Gibraltar SOS Xelim somali
GMD Dalasi gambiano STD
Dobra de So Tom e
Prncipe
GNF Franco da Guin SZL Lilangeni
GTQ Quetzal guatemalteco THB Baht tailands
GYD Dlar da Guiana TOP Pa'anga tongans
HKD Dlar de Hong Kong TRY Nova Lira turca
HNL Lempira de Honduras TTD
Dlar de Trindade e
Tobago
HTG Gourde haitiano TWD Novo Dlar de Taiwan
HUF Forint hngaro TZS Xelim da Tanznia
IDR Rupia indonsia UAH Hryvnia ucraniano
ILS Shekel israelita UGX Xelim do Uganda
INR Rupia indiana USD Dlar Americano
ISK Krona islandesa UYU Peso Uruguaio
JMD Dlar jamaicano UZS Som Uzbeque
JPY Iene japons VND Dong vietnamita
KES Xelim queniano VUV Vatu de Vanuatu
KGS Som do Quirguisto WST Tala de Samoa
KHR Riel do Camboja XAF Franco CFA BEAC
KMF Franco das Comoros XCD
Dlar das Carabas
Orientais
KRW Won sul coreano XOF Franco CFA BCEAO
KYD Dlar das Ilhas Caim XPF Franco CFP
KZT Tenge do Cazaquisto YER Rial do Imene
LAK Kip do Laos ZAR Rand Sul-africano
ZMK Kwacha da Zmbia

Potrebbero piacerti anche