A maxiPago! oferece aos seus clientes a possibilidade de agendar cobranças recorrentes de cartão de crédito. Nesta modalidade o número e a data de vencimento do cartão são guardados em nossos servidores seguros, junto com o intervalo de cobrança. A maxiPago! ficará encarregada de cobrar o seu cliente quando chegar a hora.
A estrutura do XML de uma transação recorrente é muito similar a de uma requisição de Venda Direta. O nó <recurring/> deve ser utilizado para determinar o intervalo de cobrança do pedido, e o nome do elemento da transação é <recurringPayments/>.
Criando a Recorrência – URLs Para Envio dos Dados
SANDBOX: https://testapi.maxipago.net/UniversalAPI/postXML
PRODUÇÃO: https://api.maxipago.net/UniversalAPI/postXML
Criando a Recorrência – Exemplo de Requisição
O exemplo abaixo possuí todos os parâmetros disponíveis, mas nem todos são obrigatórios.
<transaction-request> <version>3.1.1.15</version> <verification> <merchantId>store-id</merchantId> <merchantKey>store-key</merchantKey> </verification> <order> <recurringPayment> <processorID>1</processorID> <referenceNum>TestTransaction123344</referenceNum> <ipAddress>123.123.123.123</ipAddress> <customerIdExt>123.123.123-12</customerIdExt> <billing> <name>Fulano de Tal</name> <address>Av. Republica Livre, 230</address> <address2>16 Andar</address2> <district>Centro</district> <city>Sao Paulo</city> <state>SP</state> <postalcode>08021310</postalcode> <country>BR</country> <phone>1132890900</phone> <email>billing@maxipago.com</email> <companyName>Empresa X</companyName> </billing> <shipping> <name>Fulano de Tal</name> <address>Av. Republica Livre, 230</address> <address2>16 Andar</address2> <district>Centro</district> <city>Sao Paulo</city> <state>SP</state> <postalcode>08021310</postalcode> <country>BR</country> <phone>1132890900</phone> <email>shipping@maxipago.com</email> </shipping> <transactionDetail> <payType> <creditCard> <number>3550464082005915</number> <expMonth>12</expMonth> <expYear>2029</expYear> <cvvNumber>954</cvvNumber> </creditCard> </payType> </transactionDetail> <payment> <chargeTotal>10.00</chargeTotal> <currencyCode>BRL</currencyCode> </payment> <recurring> <action>new</action> <startDate>2021-12-01</startDate> <period>monthly</period> <frequency>1</frequency> <installments>12</installments> <firstAmount>22.00</firstAmount> <lastAmount>22.00</lastAmount> <lastDate>2022-12-30</lastDate> <failureThreshold>15</failureThreshold> <onFailureAction>skip</onFailureAction> </recurring> </recurringPayment> </order> </transaction-request>
Criando a Recorrência – Exemplo de Retorno em Caso de Sucesso
<?xml version="1.0" encoding="UTF-8"?> <transaction-response> <authCode>123456</authCode> <orderID>0A0115AF:017C77202440:B185:5F0F20B1</orderID> <referenceNum>TestTransaction123344</referenceNum> <transactionID>417853565</transactionID> <transactionTimestamp>1634086167</transactionTimestamp> <responseCode>0</responseCode> <responseMessage>CAPTURED</responseMessage> <avsResponseCode>YYY</avsResponseCode> <cvvResponseCode>M</cvvResponseCode> <processorCode>A</processorCode> <processorMessage>APPROVED</processorMessage> <processorName>SIMULATOR</processorName> <errorMessage/> <processorTransactionID>948380</processorTransactionID> <processorReferenceNumber>138541</processorReferenceNumber> <creditCardCountry>US</creditCardCountry> <creditCardScheme>JCB</creditCardScheme> <brandcode>00</brandcode> <brandmessage>Success.</brandmessage> <brandtransactionid>021534</brandtransactionid> </transaction-response>
Criando a Recorrência – Exemplo de Retorno em de Erro
<?xml version="1.0" encoding="UTF-8"?> <transaction-response> <authCode/> <orderID/> <referenceNum/> <transactionID/> <transactionTimestamp>1634086666896</transactionTimestamp> <responseCode>1024</responseCode> <responseMessage>INVALID REQUEST</responseMessage> <avsResponseCode/> <cvvResponseCode/> <processorCode/> <processorMessage/> <processorName>SIMULATOR</processorName> <creditCardBin>355046</creditCardBin> <creditCardLast4>5915</creditCardLast4> <errorMessage>Recurring Payment StartDate must be greater than today.</errorMessage> <creditCardScheme>JCB</creditCardScheme> </transaction-response>