O que é recorrência?
O pagamento recorrente é um método de cobrança periódica, feita com frequência acordada junto ao portador, enquanto o contrato de serviço durar. Esse sistema é muito comum em serviços de streaming, clubes de assinatura e mensalidades de academia, por exemplo.
Por que utilizar recorrência?
Contar com um pagamento recorrente proporciona comodidade, tanto para o portador quanto para o fornecedor do serviço. Evita que os prazos de vencimento não sejam cumpridos e, por vezes, estendem o uso de um determinado serviço.
Mudanças no request para o uso de recorrência
Para a utilização de recorrência em transações, inicialmente é necessário enviar a tag <AddtlSvc>
com o valor RECP (Recurring Payment), abaixo é possível verificar em que parte do request irá a tag.
Deve ser enviado, também, uma segunda tag (), também é possível veirifcar logo abaixo seu local no request, que determinará se a transação se trata da primeira transação da série de recorrência ou uma das demais transações.
Série de recorrência
A primeira transação deve receber o valor FREC (First Recurring) na tag <SvcAttr>
. E o modo de entrada deve ser Ecommerce.
<AccptrAuthstnReq>
<AuthstnReq>
<Cntxt>
<PmtCntxt>
<CardDataNtryMd>PHYS</CardDataNtryMd>
<TxChanl>ECOM</TxChanl>
</PmtCntxt>
</Cntxt>
<Tx>
<AddtlSvc>RECP</AddtlSvc>
<SvcAttr>FREC</SvcAttr>
</Tx>
</AuthstnReq>
</AccptrAuthstnReq>
Já as demais transações recebem o valor RREC (Following Recurring) na tag <SvcAttr>
. E o modo de entrada é cartão armazenado.
<AccptrAuthstnReq>
<AuthstnReq>
<Cntxt>
<PmtCntxt>
<CardDataNtryMd>CDFL</CardDataNtryMd>
<TxChanl>ECOM</TxChanl>
</PmtCntxt>
</Cntxt>
<Tx>
<AddtlSvc>RECP</AddtlSvc>
<SvcAttr>RREC</SvcAttr>
</Tx>
</AuthstnReq>
</AccptrAuthstnReq>
CVV
Em transações recorrentes, o CVV só deve ser enviado na primeira transação da recorrência.
Identificador de recorrência
Ao iniciar uma série de recorrência, a bandeira gera um identifcador daquela transação (esse identificador é gerado em todas as transações) que deve ser enviado nas demais transações da série, isto é, ao receber o identificador, o integrador deve guardá-lo e enviar nos request das transações subsequentes daquela série de recorrência. Caso a série sofra alteração (como o valor da recorrência, por exemplo) uma nova série irá se iniciar (FREC) e um novo identificador deverá ser armanezado do lado do integrador para ser enviado nas demais transações dessa série.
Seguem abaixo as exemplficações de onde o identificador é enviado para o integrador no response da primeira transação da série e onde ele deve ser enviado no request para a Stone nas demais transações da série.
<Document xmlns="urn:AcceptorAuthorisationResponseV02.1">
<AccptrAuthstnRspn>
<AuthstnRspn>
<Tx>
<IssrTxId>IdentificadordaRecorrencia</IssrTxId>
</Tx>
</AuthstnRspn>
</AccptrAuthstnRspn>
</Document>
<Document xmlns="urn:AcceptorAuthorisationRequestV02.1">
<AccptrAuthstnReq>
<AuthstnReq>
<Tx>
<OrgnlTx>
<IssrTxId>IdentificadordaRecorrencia</IssrTxId>
</<OrgnlTx>
</Tx>
</AuthstnReq>
</AccptrAuthstnReq>
</Document>
Para a Bandeira Elo e a bandeira Visa o envio do identificador é obrigatório
Abaixo temos exemplos completos de ambas as situações.
<Document xmlns="urn:AcceptorAuthorisationRequestV02.1">
<AccptrAuthstnReq>
<Hdr>
<MsgFctn>AUTQ</MsgFctn>
<PrtcolVrsn>2.0</PrtcolVrsn>
</Hdr>
<AuthstnReq>
<Envt>
<Mrchnt>
<Id>
<Id>ABCDE123456789ABCDE123456789ABCD</Id>
<ShrtNm>Tst_001</ShrtNm>
</Id>
</Mrchnt>
<POI>
<Id>
<Id>001</Id>
</Id>
</POI>
<Card>
<PlainCardData>
<PAN>4000000000000000</PAN>
<XpryDt>2030-01</XpryDt>
<CardSctyCd>
<CSCVal>123</CSCVal>
</CardSctyCd>
</PlainCardData>
</Card>
<Crdhldr>
<Nm>Bruce Banner</Nm>
</Crdhldr>
</Envt>
<Cntxt>
<PmtCntxt>
<CardDataNtryMd>PHYS</CardDataNtryMd>
<TxChanl>ECOM</TxChanl>
</PmtCntxt>
</Cntxt>
<Tx>
<AddtlSvc>RECP</AddtlSvc>
<SvcAttr>FREC</SvcAttr>
<InitrTxId>123123123</InitrTxId>
<TxCaptr>false</TxCaptr>
<TxId>
<TxDtTm>2020-04-20T14:11:06</TxDtTm>
<TxRef>06064f516a50483da7f189243c95ccca</TxRef>
</TxId>
<TxDtls>
<Ccy>986</Ccy>
<TtlAmt>1000</TtlAmt>
<AcctTp>CRDT</AcctTp>
<RcrngTx>
<InstlmtTp>NONE</InstlmtTp>
<TtlNbOfPmts>0</TtlNbOfPmts>
</RcrngTx>
</TxDtls>
</Tx>
</AuthstnReq>
</AccptrAuthstnReq>
</Document>
<Document xmlns="urn:AcceptorAuthorisationRequestV02.1">
<AccptrAuthstnReq>
<Hdr>
<MsgFctn>AUTQ</MsgFctn>
<PrtcolVrsn>2.0</PrtcolVrsn>
</Hdr>
<AuthstnReq>
<Envt>
<Mrchnt>
<Id>
<Id>ABCDE123456789ABCDE123456789ABCD</Id>
<ShrtNm>Tst_001</ShrtNm>
</Id>
</Mrchnt>
<POI>
<Id>
<Id>001</Id>
</Id>
</POI>
<Card>
<PlainCardData>
<PAN>4000000000000000</PAN>
<XpryDt>2030-01</XpryDt>
</PlainCardData>
</Card>
<Crdhldr>
<Nm>Bruce Banner</Nm>
</Crdhldr>
</Envt>
<Cntxt>
<PmtCntxt>
<CardDataNtryMd>CDFL</CardDataNtryMd>
<TxChanl>ECOM</TxChanl>
</PmtCntxt>
</Cntxt>
<Tx>
<AddtlSvc>RECP</AddtlSvc>
<SvcAttr>RREC</SvcAttr>
<InitrTxId>123123123</InitrTxId>
<TxCaptr>false</TxCaptr>
<TxId>
<TxDtTm>2020-05-20T14:11:06</TxDtTm>
<TxRef>06064f516a50483da7f189243c95ccca</TxRef>
</TxId>
<OrgnlTx>
<IssrTxId>IdentificadordaRecorrencia</IssrTxId>
</<OrgnlTx>
<TxDtls>
<Ccy>986</Ccy>
<TtlAmt>1000</TtlAmt>
<AcctTp>CRDT</AcctTp>
<RcrngTx>
<InstlmtTp>NONE</InstlmtTp>
<TtlNbOfPmts>0</TtlNbOfPmts>
</RcrngTx>
</TxDtls>
</Tx>
</AuthstnReq>
</AccptrAuthstnReq>
</Document>