Serviço de edição de pré-autorização de origem externa

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

O roteamento GetnetLac permite alterar o valor de uma pré-autorização não capturada, mesmo que a mesma não conste nos registros do Carat. Consulte nosso Suporte para verificar se existem outros roteamentos com esta funcionalidade. Para utilizar essa funcionalidade, basta chamar novamente a operação doPreAuthorization com os dados de uma transação de pré-autorização com status CON (confirmada) com adição do campo amount. Abaixo estão os detalhes dessa chamada.

Atualmente esta funcionalidade permite somente a edição de transações de pré-autorização realizadas no SiTef.

Esta operação possui um passo a mais no fluxo, em relação a uma edição de pré-autorização normal. É preciso que seja criada uma edição de pré-autorização utilizando a operação beginTransaction, que irá gerar um registro no Carat de uma transação com status=NOV, e, retornará ao aplicativo o parâmetro nit, que identificará essa transação.

Criação da edição de pré-autorização com origem externa

Detalhes da Chamada

<ApiDoc method="post" path="/e-sitef/api/v1/transactions" />

  • Recurso: /v1/transactions
  • Operação HTTP: POST
  • Formato da requisição: JSON
  • Formato da resposta: JSON
  • Parâmetros de cabeçalho:
Nome do ParâmetroDescriçãoTamanhoObrigatório
Content-TypeValor fixo "application/json"= 15 ASim
merchant_idCódigo da loja no Carat. Os códigos de produção e certificação serão diferentes≤ 15 ASim
merchant_keyChave de autenticação da loja no Carat. As chaves de produção e certificação serão diferentes.< 80 ASim

Exemplos

Abaixo estão alguns exemplos de chamada do serviço de criação de transações 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 POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
    "order_id":"orderID",
    "merchant_usn":"20190101",
    "amount":"100",
    "transaction_type":"preauthorization",
    "is_transaction_origin_external": "true"
}
--verbose

Resposta:

{
    "code": "0",
    "message": "OK. Transaction successful.",
    "pre_authorization": {
        "status": "NOV",
        "nit":
        "1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
        "order_id": "orderID",
        "merchant_usn": "20190101",
        "amount": "100"
    }
}

Parâmetros de Requisição

Nome do ParâmetroDescriçãoTamanhoObrigatório
amountValor total da compra (em centavos). Exemplo: 1,00 = 100 ou 1.100,00 = 110000 – enviar o valor sem a vírgula e ponto< 12NSim
encrypted_cardEste campo deve ser enviado com valor "true" caso o número do cartão a ser enviado na próxima etapa do fluxo use a criptografia do SiTef. <br/> A opção de envio do cartão criptografado só será possível com roteamento via SiTef e é necessário a configuração prévia do SiTef em questão.<br/> Opções: <br/>1. "true" <br/>2. "false" (valor default)< 5 ANNão
merchant_usnNúmero sequencial único para cada pedido, criado pela loja. <br/> O NSU será utilizado em toda a comunicação com a loja, de forma a identificar o pedido. Como se trata de uma possível chave para acesso do lado da loja, apesar de ser opcional para o Carat, é fortemente recomendado que o campo seja formatado e enviado pela aplicação da loja.< 12 NNão
order_idCódigo do pedido para ser exibido ao comprador, definido pelo lojista. É aconselhável que seja diferente a cada pedido para que facilite a rastreabilidade.<br/> Se a integração da Loja com as redes adquirentes/roteamentos (Cielo, Redecard, etc) for via SiTef (TEF), o campo orderId que tem o tamanho máximo de 40 caracteres, será reduzido a 12 caracteres, devido a uma restrição do SiTef. Essa redução será realizada mantendo os caracteres da esquerda para direita (ex.: se um código de pedido inserido for 12345678901234567890 no Carat, no SiTef ele será apenas 123456789012).< 40 ANNão
transaction_typeValor fixo "preauthorization"= 15 ASim
soft_descriptorTexto adicional que será apresentado junto ao nome do estabelecimento na fatura do cartão de crédito do comprador. Saiba mais< 22 ANNÃO
is_transaction_origin_externalIndica se a transação foi originada fora do Carat. Valor fixo "true"= 5 ANSim

Legenda do tipo do campo "Tamanho":

AN = alfanumérico

N = numérico

N A = não utilizado

Parâmetros de resposta

Nome do ParâmetroDescriçãoTamanho
codeCódigo de resposta do Carat. Qualquer código diferente de ‘0’ significa falha. Para maiores informações, consulte Códigos de Resposta.< 4 N
messageMensagem de resposta do Carat.< 500 A
amountValor da transação especificado pela loja (em centavos) na criação da transação.< 12 N
merchant_usnNúmero sequencial único enviado pela loja na criação da transação.< 12 N
nitIdentificador da transação de pré-autorização no Carat.= 64 A
order_idCódigo de pedido enviado pela loja na criação da transação< 40 AN
statusStatus da transação de pré-autorização no Carat.= 3 A

Efetivação da edição de pré-auto com origem externa

A efetivação segue o mesmo fluxo de uma edição de pré-autorização originada no Carat, mas é preciso enviar alguns parâmetros a mais na requisição.

Parâmetros de Requisição

ParâmetroDescriçãoFormatoObrigatório
acquirerOs campos desse elemento só devem ser enviados em casos de transações de origem externa.
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
authorizer_idCódigo da autorizadora no Carat. Deve ser o mesmo valor enviado no pagamento.< 3 NSIM
host_usnNSU do host/autorizadora da transação a ser cancelada.= 9 NSIM
authorization_numberNúmero de autorização da transação a ser cancelada.< 6 NSIM
authorizer_dateData de efetivação SiTef do pagamento no formato DD/MM/AAAA.= 10 DSIM
order_idCódigo do pedido usado na pré-autorização iniciada externamente ao Carat.< 40 ANNÃO
identification_numberCPF ou CNPJ usado na pré-autorização iniciada externamente ao Carat.< 20 ANSIM
terminalTerminal SiTef que se deseja usar. Se não for enviado, o Carat gerará um terminal aleatório.= 8 ANNÃ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

Legenda do tipo do campo "Tamanho":

AN = alfanumérico

N = numérico

N A = não utilizado

Nota:

1 - Quando as informações de terminal e company_code são enviadas, o comportamento do cardquery muda ligeiramente. Neste momento, ao executar o cardquery, o Carat irá identificar a rede retornada pelo SiTef. Uma vez identificada, esta será usada ao invés da cadastrada na loja.

2 - Nas operações de origem externa, não temos como validar a rede que foi utilizada na parte externa da operação, que foi feita fora do Carat. Nestes casos, usamos a rede configurada no SiTef. Por causa disso, mudanças de configuração, se feitas durante o meio da operação, podem ocasionar solicitações inválidas ou negadas. Por exemplo, se uma pré autorização foi feita no meio físico na rede 181 e, antes da finalização da captura, a configuração do SiTef for alterada para a rede 125, as operações que forem feitas via Carat assumirão a rede 125.

ATENÇÃO: Os parâmetros terminal e company_code devem ser enviados simultaneamente. É necessário também solicitar à equipe de atendimento do Carat a permissão Permite envio de Empresa e Terminal SiTef via REST.

Exemplo

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor<br/> <URLPOSTMAN/>

curl
--request POST "https://{{url}}/e-sitef/api/v1/preauthorizations/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
    "amount": "3000",
    "installments": "1",
    "installment_type": "4",
    "card": {
        "number": "5555555555555555",
        "expiry_date": "1222",
        "security_code": "123"
    },
    "acquirer": {
        "authorizer_id": "1",
        "authorization_number": 212820,
        "identification_number": "11111111555",
        "order_id": 1611256811271,
        "authorizer_date": "21/01/2021",
        "host_usn": 999212820   
    }
}
--verbose

Resposta:

{
   "code":"0",
   "message":"OK. Transaction successful.",
   "pre_authorization":{
      "authorizer_code":"000",
      "authorizer_message":"Transacao OK SDO DISPONIVEL 244,00",
      "status":"CON",
      "nit":"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
      "order_id":"orderID",
      "customer_receipt":"=== CUSTOMER RECEIPT ===",
      "merchant_receipt":"=== MERCHANT RECEIPT ===",
      "authorizer_id":"1",
      "acquirer_id":"229",
      "acquirer_name":"BIN",
      "authorizer_date":"30/03/2021T10:03",
      "authorization_number":"300016",
      "merchant_usn":"30120944339",
      "esitef_usn":"210330069186034",
      "sitef_usn":"300016",
      "host_usn":"003300016 ",
      "amount":"3000",
      "payment_type":"C",
      "authorizer_merchant_id":"000000000000000"
   }
}