Serviço de criação da transação

O consumo do serviço de criação de transação é obrigatório nos fluxos de pagamento e agendamento. Como resultado dessa operação, o lojista obterá um NIT (pagamento) que será necessário para os próximos passos do fluxo, assim como a utilização do serviço de consulta de transações.

O NIT possui um tempo limite para sua utilização. Este prazo está configurado na API, e caso seja excedido, a transação passará do status NOV (nova) para EXP (expirada), que impede futuras operações com essa transação, tornando necessário consumir novamente o serviço de criação de transação.

Detalhes da chamada#

  • Recurso: /v1/transactions
  • Método HTTP: POST
  • 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 criação de transações utilizando a ferramenta cURL.

Criação de pagamento com confirmação automática#

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
sandbox.ecomm-bin.fiserv.com.br

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
"merchant_usn":"12042142155",
"order_id":"12042142155",
"installments":"1",
"installment_type":"4",
"authorizer_id":"2",
"amount":"1000"
}
--verbose

Resposta:

{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"status": "NOV",
"nit": "1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
"order_id": "12042142155",
"merchant_usn": "12042142155",
"amount": "1000"
}
}

Criação de pagamento com confirmação tardia#

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
sandbox.ecomm-bin.fiserv.com.br

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
"merchant_usn":"12050620649",
"order_id":"12050620649",
"installments":"1",
"installment_type":"4",
"authorizer_id":"2",
"amount":"1000",
"additional_data":{
"postpone_confirmation":"true"
}
}
--verbose

Resposta:

{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"status": "NOV",
"nit": "1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
"order_id": "12050620649",
"merchant_usn": "12050620649",
"amount": "1000"
}
}

Criação de pagamento com análise de risco #

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
sandbox.ecomm-bin.fiserv.com.br

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
"merchant_usn":"12042142155",
"order_id":"12042142155",
"installments":"1",
"installment_type":"4",
"authorizer_id":"2",
"amount":"1000",
"additional_data":{
"payer":{
"name":"Comprador",
"surname":"credito AF",
"email":"compradorteste@live.com",
"city":"Rio de Janeiro",
"state":"RJ",
"address_street_name":"Rua Jupiter",
"address_street_number":"174",
"address_zip_code":"21241140",
"born_date":"1991-01-02T08:30:00",
"address_street_complement":"AP 201",
"address_country":"BRA"
},
"shipment":{
"method":"LOW_COST",
"name":"Sr Comprador Teste",
"phones":[
{
"number":"21114740",
"ddd":"16",
"ddi":"55"
}
],
"receiver_address":{
"complement":"AP 201",
"city":"Rio de Janeiro",
"state":"RJ",
"country":"BRA",
"zip_code":"21241140",
"street_number":"174",
"street_name":"Rua Jupiter"
}
},
"connections":[
{
"from":"RAO",
"to":"SAO",
"flight_date":"2020-01-02T20:15:00"
}
],
"gift":"false",
"browser":{
"email":"compradorteste@live.com",
"agent":"Chrome",
"cookies_accepted":"false",
"host_name":"Teste",
"ip_address":"200.190.150.350"
},
"items":[
{
"title":"ItemTeste",
"quantity":"1",
"id":"1487337308522",
"risk":"HIGH",
"hedge":{
"time":"NORMAL",
"host":"OFF",
"nonSensical":"OFF",
"obscenities":"OFF",
"phone":"OFF",
"velocity":"HIGH"
},
"passenger":{
"name":"Comprador accept",
"email":"compradorteste@live.com",
"rating":"ADULT",
"phone":{
"number":"999994444",
"ddd":"11",
"ddi":"55"
},
"legal_document":"1234567890",
"customer_class":"Gold"
},
"unit_price":"1000",
"category_id":"other",
"gift_category":"OFF"
}
],
"extra_param":{
"acquirer_params":[
{
"key":"95",
"value":"parametros adicionais"
}
]
},
"anti_fraud":"enabled_before_auth",
"anti_fraud_institution":"AUTHORIZER",
"anti_fraud_criteria":"ALWAYS",
"finger_print_id":"074c1ee676ed4998ab66491013c565e2",
"returns_accepted":"true",
"journey_type":"OUTWARD"
}
}
--verbose

Resposta:

{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"status": "NOV",
"nit": "1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr",
"order_id": "12042142155",
"merchant_usn": "12042142155",
"amount": "1000"
}
}

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 criação de transações:

ParâmetroDescriçãoFormatoObrigatório
merchant_usnNúmero sequencial único para cada pedido, criado pela loja. 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.
< 40 ANNÃO
installmentsNúmero de parcelas. Envie ‘1’ para transações à vista.< 2 NSIM
installment_typeTipo de financiamento do parcelamento:
valor 3 = parcelamento com juros da administradora do cartão.
valor 4 = parcelamento realizado pela loja e sem juros (adotar este valor como padrão/default para transações à vista).
Valor 6 = parcelamento com juros da administradora (IATA).
valor 7 = parcelamento realizado pela loja e sem juros (IATA).
O parcelamento IATA é utilizado somente por empresas do seguimento de transporte aéreo.
< 2 NSIM
authorizer_idCódigo da autorizadora no Carat. Saiba mais.

Nas operações com cartão tokenizado, se o codigo da autorizadora não for informado, será usado o código da autorizadora usado no armazenamento do cartão.
< 3 NNÃO
amountValor total da compra (em centavos). Exemplo: 1,00 = 100 ou 1.100,00 = 110000 – enviar o valor sem a vírgula e ponto.< 12 NSIM
soft_descriptorTexto adicional que será apresentado junto ao nome do estabelecimento na fatura do cartão de crédito do comprador. Saiba mais< 25 ANNÃO
additional_dataElemento para envio de dados adicionais.
postpone_confirmationEsse campo deve ser enviado com valor true caso se deseje um pagamento com confirmação tardia.< 5 T/FNÃO
customer_emailPara transações REST, envia o cupom do pagamento para o email informado.< 50 ANNÃO
additional_data.payerElemento para envio de dados referentes ao comprador.
identification_numberDocumento de identificação do comprador (CPF/RG).< 20 ANNÃO
store_identificationIdentificação do comprador para armazenamento de cartão. Esta identificação deve ser única para cada usuário da loja. Mas atenção, essa garantia de unicidade é de total responsabilidade da loja, A API não realizará nenhuma validação.< 20 ANSIM para agendamento
namePrimeiro nome do comprador< 100 ANNão
surnameSobrenome nome do comprador< 100 ANNão
additional_data.merchantElemento para envio de dados referentes ao lojista.
emailEndereço de e-mail do lojista.< 1024 ANNÃO
additional_data.extra_param.prefixesElemento para envio de prefixos do SiTef, como CICLOS, CPLANO e VLRADD. Caso o prefixo enviado não seja suportado pelo cartão enviado, a API invalidará a transação, impedindo que se dê uma falsa impressão do uso de uma determinada funcionalidade.

Exemplo:
{ "key" : "value" } -> { "CICLOS" : "01" }
keyNome do prefixo.< 1024 ANNÃO
valueValor do prefixo.< 1024 ANNÃO

Campos de MCC Dinâmico#

Inicialização da transação de pagamento ou de pré-autorização REST#

Parâmetros de requisição#

Adicionalmente aos campos mencionados, os campos abaixo são usados no cenário específico de MCC dinâmico da integração com a bin:

Elemento para envio de dados adicionais. Elemento para envio de dados referentes ao lojista de uma subadquirente.
ParâmetroDescriçãoFormatoObrigatório
soft_descriptorFrase personalizada que será impressa na fatura do portador. Para informação referente ao MCC dinâmico, equivale ao nome do sublojista.< 25 ANSIM
additional_data
mccMCC do sublojista.= 4 NSIM
subacquirer_merchant_idCódigo do sublojista. Campo legado!!! Dar preferência ao additional_data.subacquirer_merchant.id< 15 NNÃO
additional_data.subacquirer_merchant
idCódigo do sublojista.< 15 NSIM
phone_numberNúmero de Telefone do sublojista.< 14 ANNÃO
addressEndereço do sublojista.< 48 ANNÃO
cityCidade do sublojista.< 13 ANNÃO
stateEstado do sublojista, em formato de sigla de dois dígitos (ex.: SP).= 2 ASIM
countryPaís do sublojista. Seguir o padrão ISO 3166-1 alpha-2 (ex.: BR).= 2 ASIM
zip_codeCódigo postal do sublojista.< 9 ANSIM
identification_numberCNPJ do sublojista.< 18 NSIM
payment_facilitator_idCódigo do facilitador.< 11 NSIM

Exemplo#

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
sandbox.ecomm-bin.fiserv.com.br

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
"merchant_usn": "19035815234",
"order_id": "1616438400044",
"installments": "1",
"installment_type": "4",
"authorizer_id": "2",
"amount": "1300",
"soft_descriptor": "L012121",
"additional_data": {
"mcc": "1111",
"subacquirer_merchant": {
"id": "12345",
"address": "Avenida Paulista, 2000",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"zip_code": "01107001",
"identification_number": "53455823000178",
"payment_facilitator_id": "654321",
"phone_number": "+55 11 99999-9999"
}
}
}

Resposta:

{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"status": "NOV",
"nit": "6215a32a557f5dc4627b540f517e40abd6a8411cf89a2e073913aa25d7c95590",
"order_id": "1616438400044",
"merchant_usn": "19035815234",
"amount": "1300"
}
}

Parâmetros de resposta#

Em caso de sucesso, o código de resposta HTTP será 201. 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 criação de transações:

ParâmetroDescriçãoFormato
codeCódigo de resposta do Carat. 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
nitIdentificador da transação de pagamento 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 da compra especificado pela loja (em centavos) na criação da transação.< 12 N
schedule
sidIdentificador da transação de agendamento no Carat.= 64 AN
amountValor dos pagamentos agendados especificado pela loja (em centavos) na criação da transação.< 12 N
statusStatus do agendamento no Carat. Saiba mais.= 3 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