Serviço de efetivação de pagamento
Após consumir o serviço de criação de transação e obter um NIT, é possível prosseguir para a próxima etapa do fluxo: a chamada ao serviço de efetivação de pagamento. Esta operação deve ser consumida também em fluxos de pagamento com agendamento. Nesse caso, o Carat garante que o agendamento só será ativado caso o pagamento seja confirmado.
#
Detalhes da chamada- Recurso:
/v1/payments/{nit}
- Método HTTP:
POST
- Formato da requisição:
JSON
- Formato da resposta:
JSON
- Parâmetros de cabeçalho:
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
merchant_id | Código da loja no Carat. Os códigos de produção e certificação serão diferentes. | < 15 AN | SIM |
merchant_key | Chave de autenticação da loja no Carat. As chaves de produção e certificação serão diferentes. | < 80 AN | SIM |
Content-Type | Deve ser enviado com o valor application/json . | = 15 AN | SIM |
#
ExemplosAbaixo estão alguns exemplos de chamada do serviço de efetivação de pagamento utilizando a ferramenta cURL.
#
Pagamento com captura automáticaRequisição:
Para usar este exemplo, não esquecer de definir a variável {{url}}
com o valor
sandbox.ecomm-bin.fiserv.com.br
Resposta:
#
Pagamento com confirmação tardiaRequisição:
Para usar este exemplo, não esquecer de definir a variável {{url}}
com o valor
sandbox.ecomm-bin.fiserv.com.br
Resposta:
#
Pagamento com agendamentoRequisição:
Para usar este exemplo, não esquecer de definir a variável {{url}}
com o valor
sandbox.ecomm-bin.fiserv.com.br
Resposta:
#
Pagamento com cartão armazenadoRequisição:
Para usar este exemplo, não esquecer de definir a variável {{url}}
com o valor
sandbox.ecomm-bin.fiserv.com.br
Resposta:
#
Pagamento com prefixosRequisição:
Para usar este exemplo, não esquecer de definir a variável {{url}}
com o valor
sandbox.ecomm-bin.fiserv.com.br
Resposta:
#
Pagamento - Token BandeiraAlgumas bandeiras de cartão possuem uma solução de tokenização que oferece o armazenamento de cartões em cofres na própria bandeira, de forma criptografada. Essa tokenização de bandeira tem o intuito de melhorar a segurança e qualidade das informações de cartão trafegadas, o que acarreta em possíveis aumentos na conversão de aprovação pelos bancos emissores.
Requisição:
Para usar este exemplo, não esquecer de definir a variável {{url}}
com o valor
sandbox.ecomm-bin.fiserv.com.br
Resposta:
Códigos de resposta
Veja a referencia no Códigos da API - códigos de resposta
#
Parâmetros de requisiçãoNa tabela abaixo está a descrição dos parâmetros de requisição do serviço de efetivação de pagamento:
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
authorizer_id | Código da autorizadora no Carat. Saiba mais. Caso este campo não tenha sido enviado na etapa de criação da transação, ele passa a ser obrigatório ao consumir o serviço de efetivação do pagamento. | < 3 N | COND. |
customer_postal_code | Código postal (CEP no Brasil) do usuário. Este deve ser enviado para transações roteadas iCards via SiTef, caso a coleta deste for indicada no serviço de consulta de cartão pelo campo is_customer_postal_code_required. | < 8 N | COND. |
mcc | O MCC (Merchant Category Code) é um código que classifica um negócio pelo tipo de bens ou produtos fornecidos. | < 4 N | NÃO |
subacquirer_merchant_id | Identificação da loja na subadquirente. | < 22 N | NÃO |
card | Dados do cartão. | ||
number | Número do cartão do comprador (PAN). Token gerado pela bandeira (DPAN) para pagamento com Token Bandeira. Saiba mais | < 19 N | SIM |
cryptogram | Criptograma gerado pela bandeira. | = 28 A | Sim para pagamentos com token bandeira |
expiry_date | Data de vencimento do cartão no formato MMAA . Sua obrigatoriedade depende do adquirente escolhido. Na maioria dos casos, esse campo é obrigatório. | = 4 N | COND. |
security_code | Código de segurança. Este campo pode não ser obrigatório se a empresa possuir um acordo no contrato firmado com as redes adquirentes, somente para o pagamento de determinados seguimentos. Entretanto é possível configurar a obrigatoriedade do campo nas configurações da loja, consulte o suporte do Carat para mais informações. Importante: um pagamento com agendamento implica no armazenamento dos dados do cartão do comprador no ambiente do Carat. Porém, por questões de segurança, o código de segurança não pode ser armazenado. Por isso, os pagamentos agendados sempre serão executados sem o envio do código de segurança. | < 5 N | COND. |
holder | Nome do portador do cartão. | < 30 AN | COND. |
token | HASH de um cartão armazenado no Carat. Não é permitido enviar um número de cartão aberto (campo number ) e um cartão armazenado (campo token ) na mesma requisição. | = 88 AN | NÃO |
wallet_transaction_id | ID de uma transação de carteiras digitais. Por enquanto, essa funcionalidade está disponível apenas para as autorizadoras Visa Checkout, VEE (via CardSE-SiTef) e Google Pay. Não é permitido enviar um número de cartão aberto (campo number ), um cartão armazenado (campo token ) e um wallet_transaction_id na mesma requisição. | < 25 AN | NÃO |
initial_wallet_transaction_id | Informa se o Wallet ID (wallet_transaction_id ) está sendo utilizado pela primeira vez. Se for a primeira vez, enviar true , caso contrário enviar false . | < 5 T/F | NÃO |
wallet_type | Campo que especifica se a transação é processada com PAN ou DPAN. Se “tipo” estiver vazio, o valor padrão é PAN (número de cartão não tokenizado). Se houver uma transação tokenizada, deverá enviar o valor “network_token”. | AN | NÃO |
external_authentication | Este elemento recebe campos de resultados de autenticação MPI. | ||
version | Versão do 3DS utilizado no processo de autenticação (atualmente só está sendo aceito versão 2). | < 1 AN | NÃO |
eci | Eletronic Commerce Indicator – indica o nível de segurança da transação com autenticação do dono do cartão | < 3 N | NÃO |
reference_id | Identificador da transação de autenticação do dono do cartão, feita em serviço externo ao Carat (No nosso Web Checkout o reference_id é referenciado pelo ds.transId no retorno da autenticação do 3DS ) | < 40 N | NÃO |
cavv | Cardholder Authentication Verification Value - Código que indica o resultado da autenticação do dono do cartão. | < 40 N | NÃO |
acquirer | Dados específicos necessários dependendo da adquirente/roteamento. | ||
financing_plan | Código de plano de financiamento. Necessário apenas para pagamentos parcelados com juros roteados pela Via Certa Financiadora via SiTef. | < 4 N | NÃO |
special_code | Código de uso geral da Conductor/Renner. | < 6 N | NÃO |
recurrency | Flag que define se o pagamento é ou não recorrente. Aceito para todos os roteamentos via SiTef | < 5 T/F | NÃO |
recurrency_tid | TID da primeira transação da recorrência. Identificador que diferencia a primeira recorrência das subsequentes. Só é utilizado quando for uma recorrência. Campo utilizado somente no roteamento e.Rede REST para as bandeiras Visa e Mastercard e roteamento GetnetWS. | < 18 AN | NÃO |
recurrency_original_amount | Valor original da transação que originou a recorrência. Este valor deve ser informado em todas a recorrências subsequentes. Só é utilizado quando for uma recorrência. | < 18 AN | NÃO |
product_code | Código de produto. É obrigatório em roteamento via Marisa. | < 6 N | COND. |
terminal | Terminal SiTef que se deseja usar. Se não for enviado, o Carat gerará um terminal aleatório. | = 14 N | NÃO |
company_code | Có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 N | NÃO |
authorization_number | Código de autorização. Obrigatório para autorizadora Bradescard Voucher. | < 6 AN | COND. |
acquirer.vouchers_filter[] | Filtro de Vouchers - Escolha dos vouchers que não serão aceitos. Opções de "Vouchers": 01 - Alimentação, 02 - Refeição 03 - Cultura, 04 - Combustível, 05 - Benefício. Exemplo: Não se quer aceitar Vouchers: Cultura, Combustível, Benefício. Deve enviar: "vouchers_filter": [ "03", "04", "05" ] | ||
acquirer.prefixes | Elemento para envio de prefixos do SiTef, como CICLOS, CPLANO e VLRADD. Caso o prefixo enviado não seja suportado pelo cartão enviado, o Carat invalidará a transação, impedindo que se dê uma falsa impressão do uso de uma determinada funcionalidade. Exemplo: { "key" : "value" } -> { "CICLOS" : "01" } | ||
key | Nome do prefixo. | < 1024 AN | NÃO |
value | Valor do prefixo. | < 1024 AN | NÃO |
acquirer.submerchant_split[] | Consiste em um array para pagamentos split, exclusivos para roteamentos BIN e Sipag, ambos via SiTef. Permite a divisão de partes do valor total do pagamento entre outras empresas. O máximo de itens permitido neste array é de 5 itens. Cada item é composto pelos campos submechant_code e submerchant_amount . | ||
submerchant_code | código de estabelecimento BIN/Sipag | < 51 AN | NÃO |
submerchant_amount | valor de transação referente ao estabelecimento | < 12 N | NÃO |
acquirer.card_on_file | É destinado ao envio de informações específicas como, por exemplo, autorização de armazenamento de cartão, confirmando que o dono do cartão autorizou o armazenamento do cartão. Saiba mais | ||
usage | Identifica a utilização. Por exemplo, para autorização de armazenamento: authorized | < 11 AN | NÃO |
reason | Identifica o motivo. Por exemplo, para autorização de armazenamento: card | < 11 AN | NÃO |
ATENÇÃO: Os parâmetros
terminal
ecompany_code
deverão ser usados somente para roteamentos via SiTef e 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.
#
Parâmetros de respostaEm 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 efetivação de pagamento:
Parâmetro | Descrição | Formato |
---|---|---|
code | Código de resposta do Carat. Qualquer código diferente de 0 significa falha. Saiba mais. | < 4 N |
message | Mensagem de resposta do Carat. | < 500 AN |
payment | ||
authorizer_code | Código de resposta do autorizador. | < 10 AN |
authorizer_message | Mensagem de resposta do autorizador. | < 500 AN |
status | Status da transação de pagamento no Carat. Saiba mais. | = 3 AN |
nit | Identificador da transação de pagamento no Carat. | = 64 AN |
order_id | Código de pedido enviado pela loja na criação da transação. | < 40 AN |
merchant_usn | Número sequencial único enviado pela loja na criação da transação. | < 12 N |
amount | Valor da compra especificado pela loja (em centavos) na criação da transação. | < 12 N |
sitef_usn | Número sequencial único da transação de pagamento no SiTef. | = 6 N |
esitef_usn | Número sequencial único da transação de pagamento no Carat. | = 15 N |
customer_receipt | Cupom (via cliente). | < 4000 AN |
merchant_receipt | Cupom (via estabelecimento). | < 4000 AN |
authorizer_id | Código da autorizadora utilizada na transação. | < 4 N |
acquirer_id | Código do adquirente utilizado na transação. | < 4 N |
acquirer_name | Nome do adquirente utilizado na transação. | < 100 AN |
authorizer_date | Data de efetivação do pagamento retornada pelo autorizador no formato DD/MM/AAAA'T'HH:mm . Exemplo: 13/07/2017T16:03 | = 16 D |
authorization_number | Número de autorização. | < 6 AN |
host_usn | NSU da autorizadora. Ressalva para efetivação de pagamentos PIX Saiba mais. | < 15 AN |
tid | ID da transação no adquirente. Este campo só é retornado em transações com adquirentes externos ao SiTef. | < 40 AN |
payment_date | Data de efetivação do pagamento no Carat no formato DD/MM/AAAA'T'HH:mm . Exemplo: 13/07/2017T16:03 | = 16 D |
issuer | Código da bandeira retornado pelo autorizador. | < 5 AN |
authorizer_merchant_id | Código de afiliação do lojista na autorizadora. | < 100 AN |
xid | Campo XID retornado em autenticações 3DS ou certos adquirentes. | < 40 AN |
balance | Saldo disponível após pagamentos com cartões tipo Gift. | < 12 N |
recurrency_tid | Id de transação (TID) da bandeira, referente à primeira transação da recorrência. Só é retornado quando for uma recorrência. | |
retryable_code | Indicador de reversibilidade de uma transação cuja autorização foi negada pela autorizadora. Esse campo será retornado na resposta da requisição de pagamento com cartão e deve ser levado em consideração no mecanismo de retentativa de transação da loja virtual. Códigos válidos:01 – Transação negada reversível, retente mais tarde.02 – Transação negada irreversível, não retente. | = 2 N |
payment.analysis | ||
code | Código de resposta da operação de análise de fraude. | < 4 N |
message | Mensagem de resposta da operação de análise de fraude. | < 200 AN |
status | Status da transação de análise de fraude do Carat. Este campo pode assumir os seguintes valores:NOV – Nova.EXP – Expirada.ACC – AceitaREJ – RejeitadaREV – Em revisãoINV – Inválida | = 3 AN |
schedule | ||
status | Status do agendamento no Carat. Saiba mais. | = 3 AN |
sid | Identificador da transação de agendamento no Carat. | = 64 AN |
schedule_usn | Número sequencial único do agendamento no Carat. | = 15 N |
authorizer_id | Código da autorizadora a ser utilizada nos pagamentos agendados. Nas operações com cartão tokenizado, se a autorizadora não for informada, será usado o código da autorizadora usado no armazenamento do cartão. | = 4 N |
amount | Valor dos pagamentos agendados especificado pela loja (em centavos) na criação da transação. | < 12 N |
order_id | Código de pedido enviado pela loja na criação da transação. | < 40 AN |
merchant_usn | Número sequencial único enviado pela loja na criação da transação. | < 12 N |
initial_date | Data de execução do primeiro pagamento agendado no formato DD/MM/AAAA . | = 10 D |
next_date | Data de execução do próximo pagamento agendado no formato DD/MM/AAAA . | = 10 D |
number_of_times | Número total de pagamentos agendados. | < 3 N |
installments | Número de parcelas a ser utilizado nos pagamentos agendados. | < 2 N |
installment_type | Tipo de financiamento a ser utilizado nos pagamentos agendados. | < 2 N |
soft_descriptor | Texto adicional que será apresentado junto ao nome do estabelecimento na fatura do cartão de crédito do comprador. | < 30 AN |
show_times_invoice | Para agendamentos por tempo finito, caso esse campo tenha valor true acrescenta ao final do campo soft_descriptor o número de execuções/total de execuções (exemplo: Assinatura 3/12). | < 5 T/F |
terminal_id | Código do terminal utilizada na transação | < 8 AN |
recurrency_tid | Id de transação (TID) da bandeira, referente à primeira transação da recorrência. Só é retornado quando for uma recorrência. | < 16 AN |
payment_type | Tipo do pagamento da autorizadora escolhida: B = boleto, C = crédito, D = débito, P = cartão crédito Private Label puro, T = tranferência bancária, G = cartão gift, O = outros meios de pagamentos, W = Boleto NR via Web Service | = 1 AN |
#
Parâmetros de Card-On-FileCard on File
refere-se a transações que envolvem o armazenamento de informações de cartão de crédito para uso futuro. Essas transações indicam que um cartão foi armazenado de forma segura em um sistema, permitindo seu uso posterior sem a necessidade de inserir novamente os detalhes do cartão. A opção de armazenar o cartão oferece conveniência aos usuários, permitindo que eles efetuem pagamentos de forma rápida e fácil em transações futuras. Além disso, o armazenamento das informações do cartão também pode ser usado pelos emissores de cartões para análise de risco e prevenção de fraudes, melhorando a segurança das transações e aumentando a taxa de conversão.
Para operações de Card on File são necessários o envio dos seguintes parâmetros:
acquirer.card_on_file | ||
---|---|---|
usage | Identifica a utilização | - authorized - first - subsequent |
reason | Identifica o motivo | - card - recurring - cardholder - unscheduled |
Nota:
usage
ereason
são informações complementares e por isso é possível consultar todas as combinações validas com detalhe de uso a seguir.
#
DefiniçõesPara os parâmetros usage
e reason
, dentro de acquirer.card_on_file
, são aceitos os seguintes valores:
usage | Significado |
---|---|
first | Indica primeira ocorrência |
subsequent | Indica que o pagamento será realizado com um cartão armazenado previamente |
authorized | Para uso junto com o parametro reason=card , indicando que o usuário autorizou o armazenamento do cartão |
reason | Significado |
---|---|
cardholder | Compras subsequentes disparadas pelo titular do cartão |
unscheduled | Compra recorrente sem agendamento |
recurring | Compra recorrente agendada |
installment | Parcelamento através de recorrencia |
card | Para uso junto com o parametro usage=authorized , indicando que o usuário autorizou o armazenamento do cartão |
#
MIT e CITExistem dois tipos de transações de card-on-file: CIT (Iniciadas pelo titular do cartão) e MIT (Iniciadas pelo lojista)
Sigla | Significado |
---|---|
CIT | É qualquer transação onde o titular do cartão participa ativamente da transação, seja via terminal da loja ou através da experiência online de pagamento |
MIT | É uma transação subsequente com credenciais já armazenadas, para a qual o titular do cartão deu consentimento prévio ao comerciante para armazenar credenciais de pagamento para uso futuro, sem seu envolvimento ativo. Tal seria o caso da cobrança automática de serviços de assinatura, para citar um exemplo. |
#
Combinações válidasusage | reason | Significado | MIT/CIT? |
---|---|---|---|
authorized | card | Indica que o usuário autorizou o armazenamento do cartão quando realiza um pagamento ou validação zero dollar. | CIT |
first | unscheduled | Indica um pagamento avulso | MIT |
first | recurring | Indica a primeira a primeira ocorrência de uma recorrência | MIT |
subsequent | recurring | Indica as ocorrências subsequentes de uma recorrência | MIT |
subsequent | cardholder | Indica um pagamento feito pelo usuário com o cartão já armazenado | CIT |
subsequent | unscheduled | Indica uma ocorrência subsequente não agendada iniciada pelo lojista | MIT |
subsequent | installment | Indica parcelamento por recorrência | MIT |
#
RecorrênciaPagamentos recorrentes são transações de cartão de crédito que ocorrem de forma periódica, repetindo-se após um determinado período de tempo. Um exemplo comum é encontrado em assinaturas, em que o comprador deseja ser cobrado automaticamente, sem a necessidade de fornecer novamente os dados do cartão de crédito a cada transação. Nesse tipo de pagamento, o cliente autoriza previamente a realização de cobranças periódicas, estabelecendo as condições e o intervalo de tempo entre as transações. Isso proporciona comodidade tanto para o comprador, que não precisa se preocupar em fazer pagamentos repetidos manualmente, quanto para o vendedor, que mantém uma fonte constante de receita.
Para operações de recorrência são necessários o envio dos seguintes parâmetros:
Acquirer | ||
recurrency | Indica que esse pagamento faz parte de uma recorrência | - true - false |
recurrency_tid | TID da primeira transação que originou a recorrência. | |
recurrency_original_amount | Valor original da transação que originou a recorrência. Este valor deve ser informado em todas a recorrências subsequentes. Obrigatório somente para a ELO | |
Acquirer.card_on_file | ||
usage | Identifica a utilização. | - first - subsequent |
reason | Identifica o motivo. | - recurring |
#
ExemploChamada original
Para usar este exemplo e os demais, não esquecer de definir a variável {{url}}
com o valor
sandbox.ecomm-bin.fiserv.com.br
Chamada:
Resposta:
O parametro recurency_tid
da chamada anterior é usado nas chamadas seguintes. Observe, também, os parâmetros da estrutura card_on_file
que mudam na primeira chamada da recorrência e nas chamadas subsequentes (Segunda em diante).
Primeiro pagamento de recorrência
Chamada:
Resposta:
Demais chamadas da recorrência
Chamada:
Resposta: