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

import ApiDoc from '../../src/components/api-doc/ApiDoc'; import ResponseCodes from './codigos-de-resposta.md';

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

<ApiDoc method="put" path="/e-sitef/api/v1/payments/multiple/{nit}" />

  • 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<br/> <URLPOSTMAN/>

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"
      }
    }
  ]
}

<ResponseCodes />

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