Serviço de pagamento múltiplas transações

O Pagamento Múltiplas Transações é uma funcionalidade voltada para estabelecimentos que vendem um produto / serviço de terceiros. Possibilitando, através de uma única requisição, a separação do valor principal e do produto / serviço, de tal forma que o montante é diretamente destinado aos estabelecimentos envolvidos.

O valor total de uma venda qualquer é dividido em N partes e enviado (via POST/HTML) para N empresas distintas (N merchantId's distintos) definidas pela aplicação web e devidamente cadastradas no Carat.

Exemplo: Tomando como exemplo uma venda de R$ 100,00 podemos efetuar uma única requisição para enviar a quantia de R$ 60,00 para a fabricante do produto principal, R$20 para a fabricante de um acessório e R$ 20,00 para a prestadora do serviço.

Interfaces Carat suportadas para integração com pagamento múltiplas transações#

A interface utilizada é POST HTML com JSON.

É possível utilizar as seguintes interfaces para a integração com o pagamento múltiplas transações:

Observação: Caso a loja esteja iniciando a primeira integração com o Carat, recomenda-se a integração via Pagamento HTML, por oferecer uma melhor experiência ao usuário e uma interface mais moderna para a integração com o sistema da loja.

Funcionalidades Carat NÃO permitidas para integração com pagamento múltiplas transações#

O Carat não permite integração (na mesma transação) entre um pagamento múltiplas transações e as seguintes funcionalidades do Carat:

  • Transação de análise de risco manual (onde o pagamento HTML fica pendente de confirmação posterior pela loja enquanto esta faz a análise de risco separada do Carat);
  • Transação de Recarga de crédito de celulares pré-pagos associada ao pagamento;
  • Armazenamento de cartão durante o pagamento.

Configurações necessárias no Carat#

O lojista que deseja efetuar pagamentos múltiplas transações deve solicitar à equipe de cadastro para que a permissão para este tipo de pagamento seja ativada.

Parâmetros utilizados para efetuar um pagamento múltiplas transações#

Na realização de pagamentos múltiplas transações, os parâmetros POST abaixo possuem os seguintes conceitos:

Nome do parâmetroDescriçãoTamanhoObrigatório
amount*Deve ser enviado o valor total do pagamento, ou seja, o valor da transação principal somado com as demais.<= 1024 NSIM
installments**Será utilizado para todas as transações secundárias. A transação principal será sempre à vista.<= 1024 NSIM

(*) O Carat realizará a validação dos valores com o total enviado (amount). Caso ocorra alguma diferença, a transação será invalidada.

(**) Em caso de pagamento parcelado, a transação principal sempre será a vista e as transações secundárias serão parceladas, com o mesmo número de parcelas entre elas.

As transações secundárias são todas as transações vinculadas à transação principal. Para requisição, é possível ter um máximo de 16 (dezesseis) transações secundárias. Quanto maior o número de transações enviadas, maior será a demora na resposta devido ao aumento no processamento de várias transações.

Caso ocorra algum problema durante o fluxo completo do Pagamento múltiplas transações, o Carat irá desfazer todas as transações já aprovadas daquele fluxo de pagamento. Ex.: A aplicação realizou um fluxo de pagamento contendo 3 merchantId’s, a transação do 1° merchantId foi aprovada, porém a transação do 2° merchantId foi negada. Como no fluxo de pagamento ocorreu um erro na segunda transação (status=NEG), o Carat irá desfazer a primeira (status= PPN) e negará o fluxo por completo, retornando NEG também para a terceira transação, mesmo que nenhuma tentativa de pagamento tenha sido realizada. Em casos em que o Carat nega umas das transações, além do comportamento descrito acima (negar todas as transações), é apresentado no relatório de transações (Portal do Lojista) a mensagem “Negada Split” no campo “Mensagem”.

Os parâmetros JSON abaixo possuem os seguintes conceitos:

ADDITIONAL_DATA (additional_data)#

Nome do parâmetroDescriçãoTamanhoObrigatório
methodUsado para realizar uma transação diferenciada. Caso se deseje fazer uma transação múltiplas transações, este campo deve receber o texto "SPLIT".<= 1024 ASIM
extra_amountSerá utilizado para receber o valor da transação principal<= 1024 NSIM

INNER_TRANSACTIONS (inner_transactions)#

Nome do parâmetroDescriçãoTamanhoObrigatório
merchant_idCódigo da loja no Carat a ser utilizado em cada transação secundária.<= 1024 ASIM
amountDeve ser enviado o valor total do pagamento de cada transação secundária, sempre respeitando o limite do valor total do pagamento.<= 1024 NSIM
order_idCódigo do pedido na loja a ser utilizado em cada transação secundária.<= 1024 ANÃO
merchant_usnNúmero sequencial da loja a ser utilizado em cada transação secundária.<= 1024 ANÃO

IMPORTANTE 1: As autorizadoras configuradas de uma loja secundária devem ser as mesmas configuradas na loja enviada na transação principal.

IMPORTANTE 2: Caso qualquer uma das transações seja negada, seja qual for o motivo (falha de comunicação, saldo insuficiente, etc.), o comportamento padrão será de desfazer / negar todas as transações envolvidas. A funcionalidade foi desenvolvida com a premissa de confirmar todas ou negar todas as transações.

Aviso de status#

O aviso de status enviado pelo Carat para a URL de aviso de status da loja possui um campo adicional no caso de transações Split.

Nome do parâmetroDescriçãoTamanho
NITTransacaoSecundariaCampo composto de merchantIds e NIT’s das transações secundárias, no formato (merchantId1:nit1|merchantId2:nit2)<= 1296 A

O campo NITTransacaoSecundaria é enviado no aviso de status da transação principal, indicando os NIT’s das transações secundárias e permitindo, assim, a consulta de status de todas elas.

Exemplo de campo NITTransacaoSecundaria para 2 transações secundárias:

NITTransacaoSecundaria=LOJATESTE:95f386518449f6be6b4d25449989b5cee7736eb93ce96901ea2338a76fd01ad8|LOJATESTE2:95f386518449f6bea6fed3e03f7326fbe7736eb93ce96901dc1d6fba16d8f011

Exemplos de chamada#

Exemplo de chamada com os parâmetros da transação do Carat + dados do pagamento múltiplas transações em formato JSON para Pagamento HTML:

{
"merchant_id": "CODIGO_LOJA1",
"amount": "15000",
"order_id": "654321",
"additional_data": {
"method": "split",
"extra_amount": "1000",
"inner_transactions": [
{
"merchant_id": "CODIGO_LOJA2",
"merchant_usn": "12341234",
"order_id": "654321",
"amount": "10000"
},
{
"merchant_id": "CODIGO_LOJA3",
"merchant_usn": "3456789",
"order_id": "654321",
"amount": "4000"
}
]
}
}