Serviço de efetivação de recarga

import ApiDoc from '../../src/components/api-doc/ApiDoc';

Detalhes da chamada

<ApiDoc method="put" path="/e-sitef/api/v3/recharge/{nit}" />

  • Recurso: /v3/recharge/{nit}
  • Método HTTP: PUT
  • Formato da requisição: JSON
  • Formato da resposta: JSON
  • Parâmetros de cabeçalho:
ParâmetroDescriçãoFormatoObrigatório
Content-TypeDeve ser enviado com o valor application/json.= 15 ANSIM
AuthorizationAssinatura de autenticidade no formato Bearer {assinatura}. Saiba mais.<br/><br/>Exemplo: Bearer {TOKEN_JWT_EXAMPLE}.<br/><br/>Este campo é obrigatório caso a transação tenha sido criada pelo processo de assinatura.< 2000 ANCOND.

Exemplos

Abaixo estão exemplos de chamada do serviço de efetivação de recarga utilizando a ferramenta cURL.

Recarga tipo normal com pagamento

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/v3/recharge/asdfghjk12345678asdfghjk12345678asdfghjk12345678asdfghjk12345678"
--header "Content-Type: application/json"
--data-binary
{
   "do_recharge_request":{
      "hashes":{
         "general":"0000000000000000"
      },
      "dealer":{
         "code":"1",
         "type_code":"03",
         "branch":{
            "code":"98006000000"
         }
      },
      "phone":{
         "ddd":"11",
         "number":"123456789"
      },
      "amount":"3000",
      "amount_key":"3",
      "used_payment_methods":[
         "11",
         "12"
      ],
      "answers":[
         {
            "code":"1",
            "description":"resposta"
         },
         {
            "code":"2",
            "description":"resposta2"
         }
      ],
      "terminal_type":"03",
      "cpf":"8298374982374",
      "cnpj":"123121333000123",
      "zip_code":"01310100",
      "payment":{
         "amount":"12",
         "authorizer_id":"1",
         "customer_id":"12341234",
         "merchant_key":"OIAUSWHFN012375901J23047FNN00UYWHN0R871Y2ND87",
         "installment":{
            "number":"2",
            "type":"4"
         },
         "card":{
            "number":"1111111111111111",
            "token":"",
            "security_code":"123",
            "expiry_date":"1222"
         },
         "extra_param":[
            {
               "key":"CRIPTO",
               "value":"1"
            }
         ]
      }
   }
}
--verbose

Resposta:

{
   "do_recharge_response":{
      "status":"PPC",
      "order_id":"12344231",
      "merchant_usn":"5123",
      "esitef":{
         "message":"OK",
         "code":"0",
         "usn":"123456789012345"
      },
      "sitef":{
         "message":"OK",
         "code":"0"
      },
      "host":{
         "message":"OK",
         "code":"0"
      },
      "acquirer":{
         "branch_code":"cod filial",
         "merchant_code":"codigoEstab"
      },
      "authorization":{
         "confirmation_data":"000033333",
         "authorizer_date":"20150514",
         "authorizer_time":"1100",
         "host_usn":"11122",
         "sitef_usn":"333",
         "number":"332234"
      },
      "customer":{
         "total_copies":3,
         "receipt":"COMPROVANTE DE RECARGA via do cliente"
      },
      "merchant":{
         "total_copies":3,
         "receipt":"COMPROVANTE DE RECARGA via do estabelecimento"
      },
      "payment_methods":{
         "max":4,
         "available":[
            {
               "name":"dinheiro"
            },
            {
               "name":"cheque"
            }
         ]
      },
      "payment":{
         "status":"PPC",
         "amount":"12",
         "type":"C",
         "esitef":{
            "usn":"098765432109876",
            "date":"12/12/2012 12:12"
         },
         "customer":{
            "receipt":"nwiugrnboinb APROVADO via do cliente"
         },
         "merchant":{
            "receipt":"nwiugrnboinb APROVADO via do estabelecimento "
         },
         "authorizer_id":"1",
         "acquirer":"CIELO",
         "authorization":{
            "number":"163457212",
            "sitef_usn":"456456",
            "host_usn":"654654",
            "tid":"7334312a2",
            "eci":"fr3u214wf71",
            "sitef_date":"12122012"
         },
         "analysis":{
            "status":"PEN",
            "code":"0",
            "message":"aprovado"
         },
         "extra_param":[
            {
               "key":"CRIPTO",
               "value":"1"
            }
         ],
         "sitef":{
            "code":"000"
         }
      }
   }
}

Recarga tipo normal sem pagamento

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/v3/recharge/asdfghjk12345678asdfghjk12345678asdfghjk12345678asdfghjk12345678"
--header "Content-Type: application/json"
--data-binary
{
   "do_recharge_request":{
      "dealer":{
         "code":"1"
      },
      "phone":{
         "ddd":"11",
         "number":"123456789"
      },
      "amount":"3000"
   }
}
--verbose

Resposta:

{
   "do_recharge_response":{
      "status":"PPC",
      "order_id":"12344231",
      "merchant_usn":"5123",
      "esitef":{
         "message":"OK",
         "code":"0",
         "usn":"123456789012345"
      },
      "sitef":{
         "message":"OK",
         "code":"0"
      },
      "host":{
         "message":"OK",
         "code":"0"
      },
      "acquirer":{
         "branch_code":"cod filial",
         "merchant_code":"codigoEstab"
      },
      "authorization":{
         "confirmation_data":"000033333",
         "authorizer_date":"20150514",
         "authorizer_time":"1100",
         "host_usn":"11122",
         "sitef_usn":"333",
         "number":"332234"
      },
      "customer":{
         "total_copies":3,
         "receipt":"COMPROVANTE DE RECARGA via do cliente"
      },
      "merchant":{
         "total_copies":3,
         "receipt":"COMPROVANTE DE RECARGA via do estabelecimento"
      },
      "payment_methods":{
         "max":4,
         "available":[
            {
               "name":"dinheiro"
            },
            {
               "name":"cheque"
            }
         ]
      }
   }
}

Recarga tipo others

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/v3/recharge/asdfghjk12345678asdfghjk12345678asdfghjk12345678asdfghjk12345678"
--header "Content-Type: application/json"
--data-binary
{
   "do_recharge_request":{
      "dealer":{
         "code":"901",
         "type_code":"03",
         "branch":{
            "code":"98006000000"
         }
      },
      "amount":"3000"
   }
}
--verbose

Resposta:

{
   "do_recharge_response":{
      "status":"PPC",
      "order_id":"12344231",
      "merchant_usn":"5123",
      "esitef":{
         "message":"OK",
         "code":"0",
         "usn":"123456789012345"
      },
      "sitef":{
         "message":"OK",
         "code":"0"
      },
      "host":{
         "message":"OK",
         "code":"0"
      },
      "acquirer":{
         "branch_code":"cod filial",
         "merchant_code":"codigoEstab"
      },
      "authorization":{
         "confirmation_data":"000033333",
         "authorizer_date":"20150514",
         "authorizer_time":"1100",
         "host_usn":"11122",
         "sitef_usn":"333",
         "number":"332234"
      },
      "customer":{
         "total_copies":3,
         "receipt":"COMPROVANTE DE RECARGA via do cliente"
      },
      "merchant":{
         "total_copies":3,
         "receipt":"COMPROVANTE DE RECARGA via do estabelecimento"
      }
   }
}

Recarga tipo invoice

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/v3/recharge/asdfghjk12345678asdfghjk12345678asdfghjk12345678asdfghjk12345678"
--header "Content-Type: application/json"
--data-binary
{
   "do_recharge_request":{
      "hashes":{
         "general":"85E791AD85E791AD"
      },
      "dealer":{
         "code":"800",
         "branch":{
            "code":"80019000000"
         }
      },
      "amount":"6339",
      "terminal_type":"04",
      "cpf":"12312312312",
      "cnpj":"11110110000101",
      "zip_code":"12345678",
      "invoice":{
         "bar_code":"88888888888888888888888888888888888888888888",
         "description":"Boleto Parcial Credito Manual",
         "expiry_date":"21082007",
         "reference_data":"082007",
         "echo":"12340000000"
      }
   }
}
--verbose

Resposta:

{
   "do_recharge_response":{
      "status":"PPC",
      "order_id":"31045431771",
      "merchant_usn":"2047986911",
      "esitef":{
         "message":"OK. Transaction successful.",
         "code":"0",
         "usn":"200831056294572"
      },
      "sitef":{
         "message":"Transacao Aprovada",
         "code":"000"
      },
      "acquirer":{
         "merchant_code":"302800000000000"
      },
      "authorization":{
         "confirmation_data":"0831310011A6",
         "authorizer_date":"0831",
         "authorizer_time":"165459",
         "host_usn":"000310011",
         "sitef_usn":"310011",
         "number":"000000"
      },
      "customer":{
         "receipt":"----- COMPROVANTE -----"
      },
      "merchant":{
         "receipt":"----- COMPROVANTE -----"
      },
      "payment_methods":{
         "max":"4",
         "available":[
            {
               "name":"00"
            },
            {
               "name":"01"
            },
            {
               "name":"02:03-07-08-09-10-14"
            },
            {
               "name":"03:03-07-08-09-10-14"
            },
            {
               "name":"04:10"
            },
            {
               "name":"05:10"
            },
            {
               "name":"06:10"
            }
         ]
      },
      "hashes":{
         "general":"85E791AD85E791AD",
         "wallet":""
      },
      "send_payment_methods":"true"
   }
}

Parâmetros de requisição

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

ParâmetroDescriçãoFormatoObrigatório
nitIdentificação da transação de recarga no Carat= 64 ANSIM
amountValor da recarga, em centavos< 12 NSIM
amount_keyCódigo do valor da recarga< 10 ANNÃO
terminal_type01 - PDV<br/>02 - TU<br/>03 - TAS<br/>04 - Internet<br/>05 - POS-Sitef/POS= 2 NNÃO
cpfCPF do cliente< 20 ANNÃO
cnpjCNPJ do cliente< 20 ANNÃO
zip_codeCEP do cliente< 9 ANNÃO
<td colspan="3" /> hashes
generalCódigo de identificação da tabela com os dados relativos às recargas (operadoras, filiais, faixas de valores, validades dos créditos, dentre outros).= 16 ANNÃO
<td colspan="3" /> dealer
codeCódigo da concessionária/operadora< 3 NSIM
type_codeCódigo do tipo concessionária/operadora< 2 NSIM
dealer.branch<td colspan="3" />
codeCódigo da filial da concessionária/operadora. Obrigatório apenas para recarga tipo others.11 NCOND.
<td colspan="3" /> phone
phone.dddCódigo DDD do telefone. Obrigatório apenas para recarga tipo normal.= 2 NCOND.
phone.numberNúmero do telefone. Obrigatório apenas para recarga tipo normal.< 9 NCOND.
<td colspan="3" /> answers[]<br/>Este campo agrega uma lista de respostas. Obrigatório caso perguntas tenham sido recebidas na listagem de dados da filial.
codeCódigo da pergunta a ser respondida< 20 ANCOND.
descriptionResposta da pergunta< 200 ANCOND.
<td colspan="3" /> invoice<br/> Este objeto contém campos obrigatórios para pagamento sem fatura (recarga tipo invoice).
bar_codeCódigo de barras da fatura escolhida.= 48 NSIM para tipo invoice
descriptionDescrição da fatura escolhida.< 64 ANSIM para tipo invoice
expiry_dateData de validade da fatura escolhida em formato DDMMAAAA.= 8 NSIM para tipo invoice
reference_dataDados de referência da fatura escolhida.< 32 ANSIM para tipo invoice
echoValor do campo echo recebido na listagem de dados da filial.< 11 NSIM para tipo invoice
<td colspan="3" /> payment<br/>Este elemento somente deve ser enviado caso se deseje efetuar um pagamento atrelado à recarga.*<br/><br/>Atenção: O pagamento é permitido apenas no tipo de recarga normal. Para o tipo de recarga others a transação será invalidada.
amountValor do pagamento, em centavos< 12 NSIM*
authorizer_idCódigo da autorizadora no Carat. Saiba mais.< 5 NSIM*
customer_idDocumento de identidade do comprador. Use apenas caracteres alfanuméricos< 20 ANNÃO
merchant_keyChave da loja cadastrada no Carat. Deve ser a mesma loja utilizada para efetuar a recarga.< 80 ANSIM*
<td colspan="3" /> payment.installment
numberNúmero de parcelas< 2 NSIM*
typeTipo de financiamento do parcelamento:<br/>3 - parcelamento com juros da administradora do cartão,<br/>4 - parcelamento realizado pela loja e sem juros. (Adotar este valor como padrão/default para transações à vista)<br/>6 - parcelamento com juros da administradora (IATA)<br/>7 - parcelamento realizado pela loja e sem juros (IATA)= 1 NSIM*
<td colspan="3" /> payment.card
numberNúmero do cartão.< 19 NSIM*
tokenToken do cartão armazenado no Carat.= 88 ANSIM*
security_codeCódigo de segurança do cartão. Campo opcional, se enviado, será utilizado o código de empresa SiTef principal, não o de recorrência (que não pede código de segurança). Sua obrigatoriedade depende do contrato firmado com as Adm. de cartão.< 5 NCOND.
expiry_dateData de vencimento no formato MMAA= 4 NSIM*
<td colspan="3" /> payment.extra_param[]<br/> Este campo agrega uma lista de parâmetros extras.
keyChave do parâmetro extraN/ANÃO
valueValor do parâmetro extraN/ANÃO
<td colspan="3" /> used_payment_methods[]<br/>Formas de pagamento utilizadas. Este campo agrega uma lista de valores que devem ser enviados conforme descrito no capítulo abaixo.

Envio do campo used_payment_methods

A loja deve utilizar o próprio campo used_payment_methods para indicar ao Carat quais formas de pagamento foram utilizadas para pagar uma determinada transação, como por exemplo uma recarga.

A quantidade de dados a serem gravadas no campo used_payment_methods é limitada pelo campo payment_methods.max. Se, por exemplo, foi recebido o valor 3 no campo payment_methods.max, então a loja só poderá gravar 3 informações no campo used_payment_methods.

Para cada forma de pagamento utilizada deve ser gravado um elemento (dado) no campo used_payment_methods. O dado a ser gravado no campo used_payment_methods possui o seguinte formato:

TipoN:ValorN:IDColetaN1:DadoColetaN1-IDColetaN2:DadoColetaN2-...-IDColetaNn:DadoColetaNn

Onde:

  • TipoN: indica a forma de pagamento utilizada (conforme tabela já apresentada acima).
  • ValorN: indica o valor utilizado com esta forma de pagamento, com duas casas decimais, sem a vírgula.
  • IDColetaNn: indica o ID do campo que foi coletado pela loja (conforme tabela já apresentada acima).
  • DadoColetaNn: indica o conteúdo coletado pela loja para este campo.

Observações:

Se para uma determinada forma de pagamento nenhum campo deva ser coletado pela loja, o campo used_payment_methods deve ser valorizado com os seguintes dados: TipoN:ValorN.

A consistência dos valores (soma das várias formas de pagamento utilizadas, totalizando o valor da transação realizada) deve ser feita pela loja, sendo que o Carat só utilizará os valores da maneira como foram enviados.

Exemplo

Vamos supor que na execução de uma transação de recarga, a loja obteve o valor 2 na leitura do campo payment_methods.max e os seguintes valores do campo used_payment_methods:

00
02:03-07-10-13(5,125)
03:10

O valor 2 recebido no campo payment_methods.max, indica à loja que o mesmo só pode fazer o pagamento da recarga com no máximo 2 formas de pagamento diferentes.

Supondo que a loja realizou o pagamento da recarga da seguinte maneira: R$ 30,00 em dinheiro e R$ 20,00 com cartão de débito processados pela rede adquirente Rede (Rede Destino = 5; NSU do Host = 123456789; Dados de confirmação = 0520200001A6). Neste caso, o campo used_payment_methods deverá ser valorizado com os seguintes dados:

00:3000
02:2000:03:5-07:123456789-10:0520200001A6

Envio de dados do cartão para pagamento

Caso se deseje enviar o token de cartão armazenado no Carat, os demais dados de cartão (card.number, card.expiry_date) não serão considerados.

Caso se deseje enviar os dados abertos do cartão, o token não deve ser enviado.

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 efetivação de recarga:

ParâmetroDescriçãoFormato
statusStatus da transação de recarga no Carat. Saiba mais.= 3 AN
order_idCódigo do pedido gerado pela loja.< 20 AN
merchant_usnNSU da transação gerado pela loja.< 12 N
tv_package_subscription_codes[]Códigos de assinaturas de pacotes de TV.< 32 AN
resubmit_transactionSe este campo receber o valor true, a loja deve reenviar a requisição de efetivação de recarga com o campo answers preenchido da seguinte maneira:<br/><br/>"answers":[{"code":"126","description":"<um dos códigos recebidos no campo tv_package_subscription_codes>"}]<br/><br/>Neste caso, o status da transação será retornado como AGU.<br/><br/>Este fluxo só é possível na realização de Recarga TV.T/F
send_payment_methodsFlag que indica que as formas de pagamento devem ser enviadas na próxima transação. Terá o valor true caso positivo.< 5 AN
esitef
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
usnNSU da transação de recarga no Carat= 15 N
sitef
codeCódigo de resposta do SiTef= 3 AN
messageMensagem de resposta do SiTef< 500 AN
host
codeCódigo de resposta retornado pela autorizadora< 4 AN
messageMensagem retornada pela autorizadora< 64 AN
acquirer
branch_codeCódigo da filial da recarga< 5 N
merchant_codeCódigo da loja cadastrada no adquirente< 15 N
authorization
confirmation_dataCódigo da confirmação< 128 AN
authorizer_dateData da autorização na autorizadora no formato MMDD= 4 N
authorizer_timeHorário da autorização na autorizadora no formato HHmmSS= 6 N
host_usnNSU do Host< 20 N
sitef_usnNSU do SiTef< 10 N
numberNúmero da autorização na autorizadora< 6 N
customer
total_copiesNúmero de vias do comprovante do cliente< 2 N
receiptComprovante do cliente< 4000 AN
merchant
total_copiesNúmero de vias do comprovante do estabelecimento< 2 N
receiptComprovante do estabelecimento< 4000 AN
hashes
generalCódigo de identificação da tabela com os dados relativos às recargas (operadoras, filiais, faixas de valores, validades dos créditos, dentre outros).= 16 AN
walletHash das carteiras digitais.< 32 AN
payment_methods
maxNúmero máximo de formas de pagamento< 2 N
payment_methods.available[]Este campo agrega uma lista de formas de pagamento disponíveis.
nameNome da forma de pagamento disponível. Saiba mais.< 200 AN
paymentEste elemento somente é retornado caso um pagamento atrelado à recarga tenha sido enviado.
statusStatus da transação de pagamento no Carat. Saiba mais.= 3 AN
amountValor do pagamento, o mesmo enviado na criação da transação de pagamento.< 12 AN
typeTipo do pagamento da autorizadora escolhida:
  • B = boleto
  • C = crédito
  • D = débito
  • P = cartão crédito Private Label
  • T = tranferência bancária
  • G = cartão gift
  • O = outros meios de pagamentos
= 1A
authorizer_idId da autorizadora no Carat onde o pagamento foi feito< 5 N
acquirerTipo de pagamento< 50 AN
payment.esitef
usnNSU do Carat< 15 AN
dateData do pagamento no formato DD/MM/AAAA hh:mm no Carat.< 19A
payment.sitef
codeCódigo de resposta retornado pelo SiTef= 3 AN
payment.customer
receiptComprovante do pagamento (via cliente)< 4000 AN
payment.merchant
receiptComprovante do pagamento (via estabelecimento)< 4000 AN
payment.authorization
numberNúmero de autorização do pagamento< 6 AN
sitef_usnNSU do SiTef< 15 AN
host_usnNSU da autorizadora< 15 AN
tidID da transação na autorizadora, retornado por alguns tipos de pagamento.< 40 AN
eciEletronic commerce indicator retornado por alguns tipos de pagamento.< 3 AN
sitef_dateData do pagamento no formato DD/MM/AAAA hh:mm no SiTef.< 19 AN
payment.analysis
statusStatus da transação na instituição de análise.= 3 AN
codeCódigo de resposta da análise de risco.< 4 AN
messageMensagem de resposta da análise de risco.< 100 AN
payment.extra_param[]
keyChave do parâmetro extraN/A
valueValor do parâmetro extraN/A

Importante:

No caso de recargas de outros produtos (others) que envolvam pins (por exemplo, pins de jogos), o pin será retornado uma única vez, como parte do campo payment.customer.receipt. Por se tratar de um campo sensível, o Carat não o armazena, de forma que consultas de status posteriores não devolverão o pin. Caso ocorra algum problema após o retorno do pin pelo Carat, o pin não poderá ser recuperado e será necessário gerar outro.