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

Categorização de transações card-on-file

Desde outubro de 2022, devido a mudanças regulatórias de bandeiras, as transações card-on-file da bandeira Mastercard passarão a ser categorizadas em 12 tipos de categorias CIT (Iniciadas pelo portador do cartão – Card Holder) e MIT (Iniciadas pelo estabelecimento – Merchant). Desde 1 de junho de 2023, a bandeira passou a monitorar o envio do campo, fique atento pois podem ocorrer ações de compliance.

O crescimento contínuo do comércio eletrônico, juntamente com o aumento dos tipos de transação, exige a necessidade de entender a intenção do consumidor. A introdução do indicador CIT ou MIT fornece transparência permitindo o uso para:

  • Lógica de autorização do emissor
  • Detecção de fraude
  • Gestão de disputas

Por isso, é necessário realizar ajustes em sua integração com o e.Rede para envio do campo chamado “credentialId”, que fará parte do grupo “transactionCredentials”. Desse modo, quando storageCard for igual a 1 ou 2, indicando que o cartão está sendo ou já foi armazenado, será obrigatório indicar em qual categoria a transação card-on-file (credencial armazenada) está enquadrada.

O envio também deve ser feito em transações Zero Dollar que pretendem armazenar o cartão.

O envio deste campo passou a ser obrigatório para a operação Mastercard desde 01 de junho de 2023, e a partir de 01 de junho de 2024, a bandeira Mastercard poderá aplicar penalidades em caso de não conformidade dos estabelecimentos, referente ao período fora da norma. Entre os benefícios do envio do campo, está a capacidade de apoiar a bandeira e o emissor na análise de suas transações, o que pode ajudar na conversão. Os outros campos já utilizados atualmente para finalidades semelhantes como storageCard, subscription e installments, precisam continuar a ser populados.

Para o envio correto do campo Storage Card e Credential Id nas Transações 3DS Rede é necessário seguir tabela de parâmetros contida na Documentação do e.Rede:

Tabela de Categorização de transações card-on-file Rede

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>Cliente Gateway</name>
                <address>Rua Volkswagem 1</address>
                <address2>11 andar</address2>
                <city>Sao Paulo</city>
                <state>SP</state>
                <postalcode>04344902</postalcode>
                <country>Brasil</country>
                <phone>1140044828</phone>
                <email>clientegateway@clientegateway.com.br</email>
                <companyName>Empresa X</companyName>
            </billing>
            <shipping>
                <name>Cliente Gateway</name>
                <address>Rua Volkswagem 1</address>
                <address2>11 andar</address2>
                <city>Sao Paulo</city>
                <state>SP</state>
                <postalcode>04344902</postalcode>
                <country>Brasil</country>
                <phone>1140044828</phone>
                <email>clientegateway@clientegateway.com.br</email>
            </shipping>
            <transactionDetail>
                <payType>
                    <creditCard>
                        <number>5155900383265017</number>
                        <expMonth>12</expMonth>
                        <expYear>2030</expYear>
                        <cvvNumber>954</cvvNumber>
                        <storageCard>1</storageCard>
                        <credentialId>03</credentialId>
                    </creditCard>
                </payType>
            </transactionDetail>
            <payment>
                <chargeTotal>10.00</chargeTotal>
                <currencyCode>BRL</currencyCode>
            </payment>
            <recurring>
                <action>new</action>
                <startDate>2025-12-01</startDate>
                <period>monthly</period>
                <frequency>1</frequency>
                <installments>12</installments>
                <firstAmount>22.00</firstAmount>
                <lastAmount>22.00</lastAmount>
                <lastDate>2026-12-01</lastDate>
                <failureThreshold>15</failureThreshold>
                <onFailureAction>skip</onFailureAction>
            </recurring>
        </recurringPayment>
    </order>
</transaction-request>

 



Criando a Recorrência – Exemplo de Retorno em Caso de Suceso

<?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 Caso 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>

Criando a Recorrência – Tabela de Parâmetros

Cenários de Teste -Sandbox