Cancellation (Cancelamentos)

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

https://sandbox-auth-integration.stone.com.br/Cancellation

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 ReasonID
Customer Cancellation4000
Reason Unknown4001
Auth Malfunction4002
Card Removed4007
Timed Out4021
Terminal Shutdown4013
Invalid Response4020
ICC Declined4351

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:

CampoOcorrênciaTipoTamanhoDescrição
Header <Hdr>[1..1]ContainerCabeçalho da mensagem
MessageFunction <MsgFctn>[1..1]CodeSetn 4Identifica o tipo de processo em que a mensagem se propõe. Fixo: “CCAQ” = Cancellation Request.
ProtocolVersion <PrtcolVrsn>[1..1]Textans …6Versão do protocolo utilizado na mensagem.
CancellationRequest <CxlReq>[1..1]ContainerInformações relacionadas à requisição de cancelamento.
Environment <Envt>[1..1]ContainerAmbiente da transação.
Merchant <Mrchnt>[1..1]ContainerDados do estabelecimento.
Identification <Id>[1..1]ContainerIdentificação do estabelecimento comercial.
Identification <Id>[1..1]Textan 32Identificação do estabelecimento comercial no adquirente. Também conhecido como SAK
Poi <POI>[1..1]ContainerDados do Ponto de Interação
Identification <Id>[1..1]ContainerIdentificação do ponto de interação
Identification <Id>[1..1]Textans 8Código de identificação do ponto de interação atribuído pelo estabelecimento.
Transaction <Tx>[1..1]ContainerDados da transação.
TransactionCapture <TxCaptr>[1..1]Booleanan 4Fixo true para requisições de cancelamento.
TransactionIdentification <TxId>[1..1]ContainerIdentificação da transação atribuída pelo POI (Ponto de interação).
TransactionDateTime <TxDtTm>[1..1]DateTimeans 19Data e hora local da transação definidas pelo ponto de interação, no formato:
yyyy-mm-ddTHH:MM:SS
TransactionReference <TxRef>[1..1]Textan …32Identificação da transação definida pelo ponto de interação. O formato é livre.
TransactionDetails <TxDtls>[1..1]ContainerDetalhes da transação
Currency <Ccy>[1..1]CodeSetn 3Moeda utilizada na transação em conformidade com a ISO 4217.
TotalAmount <TtlAmt>[1..1]Amountn ...23Valor total da transação em centavos
Reason <Rsn>[1..1]Textn 4Razão do Cancelamento
OriginalTransaction <OrgnlTx>[1..1]ContainerDados da transação original
InitiatorTransactionIdentification <InitrTxId>[1..1]Textan ...32Identificação da transação definida pelo sistema que se comunica com o Host Stone.
RecipientTransactionIdentification <RcptTxId>[1..1]Textan ...35Identificaçã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:

CampoOcorrênciaTipoTamanhoDescrição
Header <Hdr>[1..1]ContainerCabeçalho da mensagem
MessageFunction <MsgFctn>[1..1]CodeSetn 4Identifica o tipo de processo em que a mensagem se propõe. Fixo: “CCAP” = Cancellation Response.
ProtocolVersion <PrtcolVrsn>[1..1]Textans …6Versão do protocolo utilizado na mensagem.
CreationDateTime <CreDtTm>[0..1]Textans 19Data de criação da mensagem
CancellationResponse <CxlRspn>[1..1]ContainerInformações relacionadas à resposta de cancelamento.
Environment <Envt>[1..1]ContainerAmbiente da transação.
Merchant Identification <MrchntId>[0..1]ContainerDados do estabelecimento.
Identification <Id>[1..1]Textan 32Identificação do estabelecimento comercial no adquirente. Também conhecido internamente como SAK
POIId <POIId>[0..1]ContainerDados do ponto de interação
Identification <Id>[1..1]Textans 8Código de identificação do ponto de interação atribuído pelo estabelecimento (Campo ecoado).
Transaction <Tx>[1..1]ContainerDados da transação.
TransactionCapture <TxCaptr>[1..1]Booleanan 4Indica se os dados da transação devem ser capturados true ou não false imediatamente.
TransactionIdentification <TxId>[1..1]ContainerIdentificação da transação atribuída pelo POI.
TransactionDateTime <TxDtTm>[1..1]DateTimeans 19Data e hora local da transação definidas pelo ponto de interação.
TransactionReference <TxRef>[1..1]Textan ...32Identificação da transação definida pelo ponto de interação. Este campo será ecoado pelo adquirente.
TransactionDetails <TxDtls>[1..1]ContainerDetalhes da transação
Currency <Ccy>[1..1]CodeSetn 3Moeda utilizada na transação em conformidade com a ISO 4217.
TotalAmount <TtlAmt>[1..1]Amountn ...23Valor total da transação em centavos.
TransactionResponse <TxRspn>[1..1]ContainerDados de resposta da transação.
AuthorisationResult <AuthstnRslt>[1..1]ContainerInformações sobre o resultado da autorização a ser cancelada.
ResponseToAuthorisation <RspnToAuthstn>[1..1]ContainerDados de resposta da autorização a ser cancelada.
Response <Rspn>[1..1]CodeSetn 4Resposta da transação. DECL: Declined; APPR: Aproved; PART: PartialApproved; TECH: TechinicalError;
ResponseReason <RspnRsn>[0..1]Textn 4Código de resposta da autorização.
CompletionRequired <CmpltnReqrd>[0..1]Booleann 4Indica se a mensagem precisa ser capturada posteriormente.