Introdução
Neste item exemplificamos o modelo esperado pela nossa API para as requisições de cancelamentos e o mapeamento das tags da mensagem de resposta.
Deve-se adicionar o endpoint /Cancellation ao endereço de conexão.
Exemplo.:
Novas mudanças
Bloqueio de cancelamento sem Reason Code
Por conta de uma regra de negócio no Autorizador não serão aceitos cancelamentos
iniciados sem a tag do Reason Code, que informa o motivo do cancelamento.
<AccptrCxlReq>
<CxlReq>
<Tx>
<TxDtls>
<Rsn>4021</Rsn>
</TxDtls>
</Tx>
</CxlReq>
</AccptrCxlReq>
Abaixo temos uma lista com possíveis reason codes a serem utilizados.
Cancellation Reason | ID |
---|---|
Customer Cancellation | 4000 |
Reason Unknown | 4001 |
Auth Malfunction | 4002 |
Card Removed | 4007 |
Timed Out | 4021 |
Terminal Shutdown | 4013 |
Invalid Response | 4020 |
ICC Declined | 4351 |
Cancelamento por ITK
Para cancelamentos enviados utilizando unicamente o ITK como ID da transação, só serão aceitos se, e somente se, acompanhados por Reason Codes relacionados a erros técnicos, ou seja, Reason Codes diferentes de 4000 (Customer Cancellation).
Cancelamento por ATK
Para cancelamentos enviados utilizando o ATK como ID da transação todos os reason codes serão aceitos, e os cancelamentos sem reason codes serão negados.
Cancelamento parcial
Por conta de uma outra regra de negócio só serão aceitos cancelamentos parciais iniciados com ATK e acompanhados do Reason Code 4000 (Customer Cancellation).
Tags da Mensagem de Requisição
Abaixo estão descritas as tags para a mensagem de requisição de cancelamento:
Campo | Ocorrência | Tipo | Tamanho | Descrição |
---|---|---|---|---|
Header <Hdr> | [1..1] | Container | Cabeçalho da mensagem | |
MessageFunction <MsgFctn> | [1..1] | CodeSet | n 4 | Identifica o tipo de processo em que a mensagem se propõe. Fixo: “CCAQ” = Cancellation Request. |
ProtocolVersion <PrtcolVrsn> | [1..1] | Text | ans …6 | Versão do protocolo utilizado na mensagem. |
CancellationRequest <CxlReq> | [1..1] | Container | Informações relacionadas à requisição de cancelamento. | |
Environment <Envt> | [1..1] | Container | Ambiente da transação. | |
Merchant <Mrchnt> | [1..1] | Container | Dados do estabelecimento. | |
Identification <Id> | [1..1] | Container | Identificação do estabelecimento comercial. | |
Identification <Id> | [1..1] | Text | an 32 | Identificação do estabelecimento comercial no adquirente. Também conhecido como SAK |
Poi <POI> | [1..1] | Container | Dados do Ponto de Interação | |
Identification <Id> | [1..1] | Container | Identificação do ponto de interação | |
Identification <Id> | [1..1] | Text | ans 8 | Código de identificação do ponto de interação atribuído pelo estabelecimento. |
Transaction <Tx> | [1..1] | Container | Dados da transação. | |
TransactionCapture <TxCaptr> | [1..1] | Boolean | an 4 | Fixo true para requisições de cancelamento. |
TransactionIdentification <TxId> | [1..1] | Container | Identificação da transação atribuída pelo POI (Ponto de interação). | |
TransactionDateTime <TxDtTm> | [1..1] | DateTime | ans 19 | Data e hora local da transação definidas pelo ponto de interação, no formato: yyyy-mm-ddTHH:MM:SS |
TransactionReference <TxRef> | [1..1] | Text | an …32 | Identificação da transação definida pelo ponto de interação. O formato é livre. |
TransactionDetails <TxDtls> | [1..1] | Container | Detalhes da transação | |
Currency <Ccy> | [1..1] | CodeSet | n 3 | Moeda utilizada na transação em conformidade com a ISO 4217. |
TotalAmount <TtlAmt> | [1..1] | Amount | n ...23 | Valor total da transação em centavos |
Reason <Rsn> | [1..1] | Text | n 4 | Razão do Cancelamento |
OriginalTransaction <OrgnlTx> | [1..1] | Container | Dados da transação original | |
InitiatorTransactionIdentification <InitrTxId> | [1..1] | Text | an ...32 | Identificação da transação definida pelo sistema que se comunica com o Host Stone. |
RecipientTransactionIdentification <RcptTxId> | [1..1] | Text | an ...35 | Identificação da transação definida pelo adquirente. Deve ser o valor da transação original. |
Pedido de Cancelamento
<Document xmlns="urn:AcceptorCancellationRequestV02.1">
<AccptrCxlReq>
<Hdr>
<MsgFctn>CCAQ</MsgFctn>
<PrtcolVrsn>2.0</PrtcolVrsn>
</Hdr>
<CxlReq>
<Envt>
<Mrchnt>
<Id>
<Id>ABCDE123456789ABCDE123456789ABCD</Id>
</Id>
</Mrchnt>
<POI>
<Id>
<Id>2FB4C89A</Id>
</Id>
</POI>
</Envt>
<Tx>
<TxCaptr>true</TxCaptr>
<TxId>
<TxDtTm>2014-03-12T15:09:00</TxDtTm>
<TxRef>12345ABC</TxRef>
</TxId>
<TxDtls>
<Ccy>986</Ccy>
<TtlAmt>100</TtlAmt>
<Rsn>4000</Rsn>
</TxDtls>
<OrgnlTx>
<InitrTxId>123123123</InitrTxId>
<RcptTxId>00000034071000000215346</RcptTxId>
</OrgnlTx>
</Tx>
</CxlReq>
</AccptrCxlReq>
</Document>
Tags de Mensagem de Resposta
Abaixo estão descritas as tags para a mensagem de resposta de cancelamento:
Campo | Ocorrência | Tipo | Tamanho | Descrição |
---|---|---|---|---|
Header <Hdr> | [1..1] | Container | Cabeçalho da mensagem | |
MessageFunction <MsgFctn> | [1..1] | CodeSet | n 4 | Identifica o tipo de processo em que a mensagem se propõe. Fixo: “CCAP” = Cancellation Response. |
ProtocolVersion <PrtcolVrsn> | [1..1] | Text | ans …6 | Versão do protocolo utilizado na mensagem. |
CreationDateTime <CreDtTm> | [0..1] | Text | ans 19 | Data de criação da mensagem |
CancellationResponse <CxlRspn> | [1..1] | Container | Informações relacionadas à resposta de cancelamento. | |
Environment <Envt> | [1..1] | Container | Ambiente da transação. | |
Merchant Identification <MrchntId> | [0..1] | Container | Dados do estabelecimento. | |
Identification <Id> | [1..1] | Text | an 32 | Identificação do estabelecimento comercial no adquirente. Também conhecido internamente como SAK |
POIId <POIId> | [0..1] | Container | Dados do ponto de interação | |
Identification <Id> | [1..1] | Text | ans 8 | Código de identificação do ponto de interação atribuído pelo estabelecimento (Campo ecoado). |
Transaction <Tx> | [1..1] | Container | Dados da transação. | |
TransactionCapture <TxCaptr> | [1..1] | Boolean | an 4 | Indica se os dados da transação devem ser capturados true ou não false imediatamente. |
TransactionIdentification <TxId> | [1..1] | Container | Identificação da transação atribuída pelo POI. | |
TransactionDateTime <TxDtTm> | [1..1] | DateTime | ans 19 | Data e hora local da transação definidas pelo ponto de interação. |
TransactionReference <TxRef> | [1..1] | Text | an ...32 | Identificação da transação definida pelo ponto de interação. Este campo será ecoado pelo adquirente. |
TransactionDetails <TxDtls> | [1..1] | Container | Detalhes da transação | |
Currency <Ccy> | [1..1] | CodeSet | n 3 | Moeda utilizada na transação em conformidade com a ISO 4217. |
TotalAmount <TtlAmt> | [1..1] | Amount | n ...23 | Valor total da transação em centavos. |
TransactionResponse <TxRspn> | [1..1] | Container | Dados de resposta da transação. | |
AuthorisationResult <AuthstnRslt> | [1..1] | Container | Informações sobre o resultado da autorização a ser cancelada. | |
ResponseToAuthorisation <RspnToAuthstn> | [1..1] | Container | Dados de resposta da autorização a ser cancelada. | |
Response <Rspn> | [1..1] | CodeSet | n 4 | Resposta da transação. DECL: Declined; APPR: Aproved; PART: PartialApproved; TECH: TechinicalError; |
ResponseReason <RspnRsn> | [0..1] | Text | n 4 | Código de resposta da autorização. |
CompletionRequired <CmpltnReqrd> | [0..1] | Boolean | n 4 | Indica se a mensagem precisa ser capturada posteriormente. |