Serviço de confirmação de pagamento com dois cartões

Após criar e efetuar um pagamento com dois cartões pendente de confirmação, o lojista deve chamar o serviço de confirmação com dois cartões para confirmá-lo ou desfazê-lo utilizando o mesmo NIT obtido na primeira etapa do fluxo (ou seja, o NIT da primeira transação).

Fluxo#

O fluxo de confirmação de pagamento com dois cartões difere da confirmação normal por duas razões.

A primeira razão é que temos duas transações para uma mesma chamada e cada uma delas é usada para efetuar a confirmação de um dos meios de pagamento informados.

A segunda razão é que a resposta da confirmação de múltiplos pagamentos é composta pelas respostas de cada uma das transações. Sendo assim, haverá situações em que a resposta de uma transação afetará a resposta da outra.

A seguir, iremos abordar os cenários previstos no Carat com mais detalhes.

Caso de sucesso#

Caso de falha na confirmação da primeira transação#

Quando a primeira confirmação falha, a segunda transação será desfeita. Uma ocorrência é gerada para a equipe de suporte do Carat e o lojista, caso deseje, pode entrar em contato.

Exemplo de resposta#

{
"code": "255",
"message": "Transaction Denied",
"confirmations": [
{
"code": "259",
"message": "Denied transaction",
"payment": {
"authorizer_code": "409",
"authorizer_message": "Brand / card type is invalid or not supported [Cód.: 5996]",
"status": "PPC",
"acquirer_id": "414"
}
},
{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"authorizer_code": "200",
"authorizer_message": "Function performed error-free [Cód.: 00]",
"status": "PPN",
"acquirer_id": "414"
}
}
]
}

Caso de falha na confirmação da segunda transação#

Quando a segunda confirmação falha, a primeira transação já está confirmada e o cancelamento, caso seja desejado, deve ser feito manualmente, seja usando o cancelamento REST ou o Portal do Lojista. Uma ocorrência é gerada para a equipe de suporte do Carat e o lojista, caso deseje, pode entrar em contato.

Exemplo de resposta#

{
"code": "255",
"message": "Transaction Denied",
"confirmations": [
{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"authorizer_code": "200",
"authorizer_message": "Function performed error-free [Cód.: 00]",
"status": "CON",
"acquirer_id": "414"
}
},
{
"code": "259",
"message": "Denied transaction",
"payment": {
"authorizer_code": "409",
"authorizer_message": "Brand / card type is invalid or not supported [Cód.: 5996]",
"status": "PPC",
"acquirer_id": "414"
}
}
]
}

Detalhes da chamada#

  • Recurso: /v1/payments/multiple/{nit}
  • Método HTTP: PUT
  • Formato da requisição: query string
  • 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

Exemplos#

Abaixo está um exemplo de chamada do serviço de confirmação de pagamento utilizando a ferramenta cURL.

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/payments/multiple/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr?confirm=true"
--header "merchant_id:xxxxxxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--verbose

Resposta:

{
"code": "0",
"message": "OK. Transaction successful.",
"confirmations": [
{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"authorizer_code": "130",
"status": "CON",
"acquirer_id": "5"
}
},
{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"authorizer_code": "130",
"status": "CON",
"acquirer_id": "5"
}
}
]
}

Códigos de resposta

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

Parâmetros de requisição#

Na tabela abaixo está a descrição dos parâmetros de requisição do serviço de confirmação de pagamento com dois cartões:

ParâmetroDescriçãoFormatoObrigatório
confirmEste campo deve ser enviado com o valor true caso se deseje confirmar a transação, ou false, caso queira desfazer o pagamento.< 5 T/FSIM

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 confirmação de pagamento:

ParâmetroDescriçãoFormato
codeCódigo de resposta do Carat para a operação de pagamento com dois cartões. Qualquer código diferente de 0 significa falha. Saiba mais.< 4 N
messageMensagem de resposta do Carat.< 500 AN
confirmations[]
codeCódigo de resposta do Carat para a operação de confirmação de um dos meios de pagamento. Qualquer código diferente de 0 significa falha. Saiba mais.< 4 N
messageMensagem de resposta do Carat.< 500 AN
payment
statusStatus da transação de pagamento no Carat. Saiba mais.= 3 AN
authorizer_codeCódigo de resposta do autorizador. Em caso de repetição da confirmação ou do desfazimento, este campo não é devolvido.< 10 AN
authorizer_messageMensagem de resposta do autorizador. Em caso de repetição da confirmação ou do desfazimento, este campo não é devolvido.< 500 AN
acquirer_idCódigo do adquirente utilizado na transação. Em caso de repetição da confirmação ou do desfazimento, este campo não é devolvido.< 4 N