Serviço de cancelamento

Após obter um NIT de cancelamento na etapa anterior, a loja poderá realizar o estorno de fato.

Após um cancelamento bem-sucedido, a transação de pagamento mudará seu status para EST (estornada). Dependendo do adquirente, é possível realizar estornos parciais, ou seja, cancelar um valor menor do que o que foi pago. Nesse caso, a transação de pagamento manterá o status CON.

Detalhes da chamada#

  • Recurso: /v1/cancellations/{nit}
  • Método HTTP: PUT
  • Formato da requisição: JSON
  • Formato da resposta: JSON
  • Parâmetros de cabeçalho:
ParâmetroDescriçãoFormatoObrigatório
merchant_idCódigo da loja no Carat. Os códigos de produção e certificação serão diferentes.< 15 ANSIM
merchant_keyChave de autenticação da loja no Carat. As chaves de produção e certificação serão diferentes.< 80 ANSIM
Content-TypeDeve ser enviado com o valor application/json.= 15 ANSIM

Exemplos#

Abaixo estão alguns exemplos de chamada do serviço de cancelamento utilizando a ferramenta cURL.

Cancelamento de pagamento via SiTef#

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl
--request PUT "https://{{url}}/e-sitef/api/v1/cancellations/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
"card":{
"security_code":"123",
"number":"5555555555555555",
"expiry_date":"1222"
},
"amount":"1000"
}
--verbose

Resposta:

{
"code":"0",
"message":"OK. Transaction successful.",
"cancellation":{
"authorizer_code":"000",
"authorizer_message":"Transacao OK",
"status":"CON",
"nit":" 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
"order_id":"09062259711",
"customer_receipt":"=== COMPROVANTE ===",
"merchant_receipt":"=== COMPROVANTE ===",
"authorizer_id":"2",
"acquirer_id":"229",
"acquirer_name":"Bin",
"authorizer_date":"09/11/2017T18:23",
"authorization_number":"092423",
"merchant_usn":"9062259711",
"esitef_usn":"171109108051261",
"sitef_usn":"092424",
"host_usn":"999092424 ",
"amount":"1000",
"payment_type":"C",
"issuer":"2",
"authorizer_merchant_id":"000000000000005",
"esitef_date":"09/11/2017T18:23",
"is_host_cancel":"false"
}
}

Cancelamento de pagamento via BIN#

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl
--request PUT "https://{{url}}/e-sitef/api/v1/cancellations/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{}
--verbose

Resposta:

{
"code":"0",
"message":"OK. Transaction successful.",
"cancellation":{
"authorizer_code":"0",
"authorizer_message":"Operation Successful",
"status":"CON",
"nit":"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
"order_id":"10022938077",
"customer_receipt":"=== COMPROVANTE ===",
"merchant_receipt":"=== COMPROVANTE ===",
"authorizer_id":"2",
"acquirer_id":"229",
"acquirer_name":"BIN",
"merchant_usn":"10022938091",
"esitef_usn":"171110108163221",
"amount":"1000",
"payment_type":"C",
"authorizer_merchant_id":"zzzzzzzzzzzzzzzzzz",
"esitef_date":"10/11/2017T14:29",
"is_host_cancel":"false"
}
}

Cancelamento via host#

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl
--request PUT "https://{{url}}/e-sitef/api/v1/cancellations/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
"card":{
"expiry_date":"1222",
"number":"455182001234512345"
},
"amount":"2000",
"acquirer":{
"host_usn":"123123123",
"sitef_usn":"123123",
"authorizer_date":"090917",
"authorizer_id":"1",
"tef_product_code":"0001",
"tef_flow_code":"01",
"authorization_number":"123456"
}
}
--verbose

Resposta:

{
"code":"0",
"message":"OK. Transaction successful.",
"cancellation":{
"authorizer_code":"000",
"authorizer_message":"Transacao OK!",
"status":"CON",
"nit":"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
"customer_receipt":"=== COMPROVANTE ===",
"merchant_receipt":"=== COMPROVANTE ===",
"authorizer_id":"1",
"acquirer_id":"229",
"acquirer_name":"BIN",
"authorizer_date":"09/11/2017T18:42",
"authorization_number":"092425",
"esitef_usn":"171109108051271",
"sitef_usn":"092425",
"host_usn":"000092425 ",
"amount":"2000",
"payment_type":"C",
"authorizer_merchant_id":"020001355570001",
"esitef_date":"09/11/2017T18:42",
"is_host_cancel":"true"
}
}

Códigos de resposta

Veja a referencia no Códigos da API - códigos de resposta

Cancelamento origem externa#

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl
--request PUT "https://{{url}}/e-sitef/api/v1/cancellations/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
"card":{
"expiry_date":"1222",
"number":"455182001234512345"
},
"amount":"2000",
"acquirer":{
"routing_id": "5",
"host_usn":"123123123",
"sitef_usn":"123123",
"authorizer_date":"090917",
"authorizer_id":"2",
"authorization_number":"123456"
}
}
--verbose

Resposta:

{
"code":"0",
"message":"OK. Transaction successful.",
"cancellation":{
"authorizer_code":"000",
"authorizer_message":"Transacao OK!",
"status":"CON",
"nit":"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
"customer_receipt":"=== COMPROVANTE ===",
"merchant_receipt":"=== COMPROVANTE ===",
"authorizer_id":"2",
"acquirer_id":"229",
"acquirer_name":"Bin",
"authorizer_date":"09/11/2017T18:42",
"authorization_number":"092425",
"esitef_usn":"171109108051271",
"sitef_usn":"092425",
"host_usn":"000092425 ",
"amount":"2000",
"payment_type":"C",
"authorizer_merchant_id":"020001355570001",
"esitef_date":"09/11/2017T18:42"
}
}

Parâmetros de requisição#

Na tabela abaixo está a descrição dos parâmetros de requisição do serviço de cancelamento:

ParâmetroDescriçãoFormatoObrigatório
amountValor em centavos a ser cancelado. É importante notar que não são todos os adquirentes que suportam estorno com valor menor do que o do pagamento (cancelamento parcial).
Caso este campo não seja enviado, o Carat utilizará o valor total do pagamento.
< 12 NNÃO
soft_descriptorTexto adicional que será apresentado junto ao nome do estabelecimento na fatura do cartão de crédito do comprador. Saiba mais< 30 ANNÃO
card
numberNúmero do cartão do comprador (PAN). Obrigatório no cancelamento de pagamentos via SiTef.< 19 NCOND.
expiry_dateData de vencimento do cartão no formato MMAA. Sua obrigatoriedade depende do adquirente escolhido.= 4 NCOND.
security_codeCódigo de segurança. Obrigatório dependendo do contrato firmado com as redes adquirentes.< 5 NCOND.
tokenHASH de um cartão armazenado no Carat. Não é permitido enviar um número de cartão aberto (campo number) e um cartão armazenado (campo token) na mesma requisição.= 88 ANNÃO
wallet_transaction_idID de uma transação de carteiras digitais. Por enquanto, essa funcionalidade está disponível apenas para as autorizadoras Visa Checkout e VEE (via CardSE via SiTef).
Não é permitido enviar um número de cartão aberto (campo number), um cartão armazenado (campo token) e um wallet_transaction_id na mesma requisição.
< 25 ANNÃO
acquirerOs campos desse elemento só devem ser enviados em casos de cancelamentos via host, cancelamentos de origem externa ou cancelamentos de roteamentos via PayPal.
routing_idInformação do roteamento utilizado para o pagamento efetuado fora do Carat. Esta informação, se enviada, é utilizada para identificar o roteamento no SiTef. Esta informação só faz sentido nas transações de origem externa.< 5 NNÃO
host_usnNSU do host/autorizadora da transação a ser cancelada. Obrigatório para cancelamentos via host e origem externa.= 20 NCOND.
sitef_usnNSU do SiTef da transação a ser cancelada. Obrigatório para cancelamentos via host e origem externa.= 6 NCOND.
authorizer_dateData de efetivação SiTef do pagamento no formato DD/MM/AAAA. Obrigatório para cancelamentos via host e origem externa.= 6 DCOND.
authorizer_idCódigo da autorizadora no Carat. Deve ser o mesmo valor enviado no pagamento. Obrigatório para cancelamentos via host e origem externa.< 3 NCOND.
tef_product_codeCódigo do produto TEF obtido no pagamento. Este campo pode receber os seguintes valores:
0001 - Visa
0080 - Mastercard
Estes valores podem ser alterados pela Cielo sem aviso prévio. Obrigatório para cancelamentos via host e origem externa para roteamento via Cielo.
< 4 NCOND.
tef_flow_codeCódigo do fluxo TEF obtido no pagamento. Atualmente, este campo pode apenas receber o valor 01 (fluxo crédito). Obrigatório para cancelamentos via host e origem externa para roteamento via Cielo. < 2 NCOND.
authorization_numberNúmero de autorização da transação a ser cancelada. Obrigatório para cancelamentos via host e origem externa.< 60 NCOND.
product_codeCódido de produto.
É obrigatório e utilizado apenas em roteamento via Marisa.
< 6 NCOND.
refund_typeTipo de estorno que se deseja realizar sobre o pagamento.
É obrigatório e utilizado apenas para roteamento via Paypal.

Valores permitidos:

Full - É desejado o estorno completo do pagamento.

Partial - É desejado o estorno parcial do pagamento
< 7 ANCOND.
currency_codeCódigo da moeda a ser utilizada no estorno de acordo com a ISO 4217. Para o Real, o código utilizado é o BRL.
É obrigatório e utilizado apenas para roteamento via Paypal.
< 3 ANCOND.
invoice_idCódigo de pedido do estorno próprio do lojista para futura consulta ou rastreamento.
Utilizado apenas para roteamento via Paypal.
< 127 ANNÃO
noteMensagem personalizada para lembretes sobre o estorno.
Utilizado apenas para roteamento via Paypal.
< 256 ANNÃO
retry_untilData e hora limite até a qual será realizada a tentativa do estorno. Formato: AAAA-MM-DDTHH:MM:SS.
Utilizado apenas para roteamento via Paypal.
< 20 ANNÃO
refund_sourceFonte de fundos do lojista que será utilizado para realizar o estorno.
Utilizado apenas para roteamento via Paypal.

Valores permitidos:

any - O lojista não tem preferência. Será utilizado qualquer fonte de fundos disponível.

default - Será utilizado a fonte de fundos configurada na conta do lojista.

instant - Será utilizado o balanço do vendedor como fonte de fundos.

eCheck - Será utilizado a opção “eCheck” como fonte de fundos. Se o balanço do lojista puder cobrir o estorno, será utilizado o balanço.
< 7 ANNÃO
merchant_store_detailsInformações sobre o estabelecimento do lojista.
Utilizado apenas para roteamento via Paypal.
< 50 ANNÃO
refund_adviceIndicador para cliente que já foi recebeu algum estorno da determinada transação.
Utilizado apenas para roteamento via Paypal.
< 5 ANNÃO
refund_item_detailsDetalhes do item individual tratado no estorno.
Utilizado apenas para roteamento via Paypal.
NÃO
msg_sub_idEsse ID identificará de maneira única a mensagem e poderá ser utilizado para requisitar os últimos resultados de um requisição anterior sem a necessidade de criar uma nova requisição. Isso pode ser realizado, por exemplo, em chamadas que foram canceladas por timeout ou erros durante o processo.
Utilizado apenas para roteamento via Paypal.
< 38 ANNÃO
terminal_idUtilizado caso seja um Ponto de Venda.
Utilizado apenas para roteamento via Paypal.
< 50 ANNÃO
store_idUtilizado caso seja um Ponto de Venda.
Utilizado apenas para roteamento via Paypal.
< 50 ANNÃO
terminalTerminal SiTef que se deseja usar. Se não for enviado, o Carat gerará um terminal aleatório.= 14 NNÃO
company_codeCódigo de empresa SiTef que se deseja usar. Se não for enviado, o Carat enviará o código de empresa cadastrado na loja.= 8 NNÃO
acquirer.submerchant_split[]Consiste em um array para transações split, exclusivos para roteamentos BIN e Sipag, ambos via SiTef. Permite a divisão de partes do valor total do pagamento entre outras empresas.
O máximo de itens permitido neste array é de 5 itens. Cada item é composto pelos campos submechant_code e submerchant_amount.
submerchant_codecódigo de estabelecimento BIN/Sipag< 51 ANNÃO
submerchant_amoutValor de transação referente ao estabelecimento< 12 NNÃO
ecomm_pos_refEste campo enviará uma identificação que constará no campo PDV do relatório do SiTef Web para transações e-commerce.< 8 AFNÃO

Parâmetros de resposta#

Em caso de sucesso, o código de resposta HTTP será 200. Qualquer outro código deve ser interpretado como erro. Na tabela abaixo está a descrição dos parâmetros de resposta do serviço de cancelamento:

ParâmetroDescriçãoFormato
codeCódigo de resposta do Carat. Qualquer código diferente de 0(zero) significa falha. Saiba mais.< 4 N
messageMensagem de resposta do Carat.< 500 AN
cancellation
authorizer_codeCódigo de resposta do autorizador.< 10 AN
authorizer_messageMensagem de resposta do autorizador.< 500 AN
statusStatus da transação de cancelamento no Carat. Saiba mais.= 3 AN
nitNúmero identificador da transação de cancelamento no Carat.= 64 AN
order_idCódigo de pedido enviado pela loja na criação da transação.< 40 AN
merchant_usnNúmero sequencial único enviado pela loja na criação da transação.< 12 N
amountValor do cancelamento especificado pela loja (em centavos).< 12 N
sitef_usnNúmero sequencial único da transação de cancelamento no SiTef.= 6 N
esitef_usnNúmero sequencial único da transação de cancelamento no Carat.= 15 N
customer_receiptCupom (via cliente).< 4000 AN
merchant_receiptCupom (via estabelecimento).< 4000 AN
authorizer_idCódigo da autorizadora utilizada na transação.< 4 N
acquirer_idCódigo do adquirente utilizado na transação.< 4 N
acquirer_nameNome do adquirente utilizado na transação.< 100 AN
authorizer_dateData de efetivação do cancelamento retornada pelo autorizador no formato DD/MM/AAAA'T'HH:mm. Exemplo: 13/07/2017T16:03= 16 D
authorization_numberNúmero de autorização.< 6 AN
host_usnNSU da autorizadora.< 20 AN
tidID da transação no adquirente. Este campo só é retornado em transações com adquirentes externos ao SiTef.< 40 AN
esitef_dateData de efetivação do cancelamento no Carat no formato DD/MM/AAAA'T'HH:mm. Exemplo: 13/07/2017T16:03= 16 D
issuerCódigo da bandeira retornado pelo autorizador.< 5 AN
authorizer_merchant_idCódigo de afiliação do lojista na autorizadora.< 100 AN
is_host_cancelEste campo retornará o valor true em caso de cancelamento via host.< 5 T/F