Realizar o reembolso de faturas (estorno) por API

📘

O que você irá aprender com esse artigo?

  • O que é um reembolso
  • Como realizar reembolso por api
  • Gatilho de reembolso de uma fatura

Caso de uso

"Cliente entra em contato informando que gostaria de realizar o estorno de uma cobrança, pois não gostou do produto, ou serviço contratado."

Diagrama de sequência

940

O que é um reembolso

O reembolso é a devolução dos valores de uma venda para o comprador. Essa devolução pode ser feita integralmente, considerando o valor total da transação que o cliente pagou, ou pode ser parcial, onde apenas uma parte do valor total é devolvido.

Para pagamentos com o cartão de crédito o prazo máximo para solicitar reembolso é de 180 dias e a devolução pode demorar até 2 meses para constar na fatura do cartão do cliente, conforme padrão da Visa, Master e outras bandeiras.

Se o método de pagamento for PIX, o prazo máximo de solicitação de reembolso é de 90 dias e nesse caso não é possível estornar parcialmente.

O que acontece com o split no caso de reembolso parcial

No caso de cartão, é possível solicitar reembolso parcial. Nesse cenário, se houver split, o valor que sai das contas é devolvido proporcionalmente ao recebimento. Supondo que uma fatura foi criada entre a conta mestre e uma subconta e que nesse cenário a conta mestre tenha recebido 20% e a subconta 80%. Nesse caso, se houver um reembolso parcial de R$ 10,00 para essa fatura, R$ 8,00 saíra do recebimento da subconta (80% dos R$ 10,00) e R$ 2,00 sairá da conta mestre (20% dos R$ 10,00).

❗️

Boleto:

Não realizamos reembolso para boletos. Nesse caso é necessário que faça uma transferência para o cliente do seu lado.

🚧

Saiba que:

O reembolso não possui custo e as taxas transacionais iugu também são devolvidas nesse processo.

Como funciona reembolso por cartão na iugu

No caso de pagamento parcelado, se já houver parcelas liquidadas, o valor sai do saldo disponível da conta e se ainda houver parcelas futuras, então o valor sai do saldo a receber.

É possível realizar reembolso parcial e total.

Reembolso parcial com parcelas liquidadas

Vale ressaltar que no caso de reembolso parcial, se já houver parcelas liquidadas, parte do valor sai do saldo disponível e o restante do saldo a receber. Por exemplo: supondo que há uma transação de R$ 120,00 parcelada em 12 vezes, em que a primeira parcela já foi liquidada (R$ 10,00) e chega uma solicitação de reembolso parcial de R$ 90,00. Nesse cenário vamos calcular R$ 90,00 divido por 12 parcelas, então temos R$ 7,50. Será descontado de todas as parcelas R$ 7,50, mas no caso da primeira parcela esse valor sai do saldo disponível, pois já havia sido liquidado. Enquanto nas outras 11 parcelas, tirando R$ 7,50 de cada uma sobrará R$ 2,50, que é o valor a ser liquidado.

Reembolso parcial sem parcelas liquidadas

Supondo que há uma transação de R$ 120,00 parcelada em 12 vezes e nenhuma das parcelas foi liquidada ainda e chega uma solicitação de reembolso parcial de R$ 90,00. Nesse caso, será descontado os R$ 90,00 do valor total da transação, esse valor sairá do saldo a receber e será reembolsado. O que sobrou (R$ 30,00 => R$ 120,00 menos R$ 90,00) dividimos por 12 e esse será o valor das parcelas. Nesse caso então cada parcela terá um valor de R$ 2,50.

Reembolso total sem parcelas liquidadas

O valor completo será retirado do saldo a receber.

Reembolso total com parcelas liquidadas

O que já estiver liquidado sai do saldo disponível e o restante sai do saldo a receber.

Supondo que há uma transação de R$ 120,00 parcelada em 12 vezes, em que duas parcelas já foram liquidadas (R$ 20,00) e chega uma solicitação de reembolso total (R$ 120,00). Os R$ 20,00 que já estavam liquidados vão sair do saldo disponível e os outros R$ 100,00 vão sair do saldo a receber.

❗️

Atenção!

Caso a conta não tenha saldo disponível e no reembolso solicitado o valor ou parte dele tenha que sair desse saldo, nesse caso, o reembolso não será realizado.

Veja outros detalhes do processo de estorno aqui e consulte como emitir comprovante de reembolso aqui.

Como realizar reembolso via API

Para realizar um reembolso é necessário realizar um POST na api Reembolsar faturas, passando na url da request, o id da fatura que deseja estornar, ou seja, devolver o valor a pessoa que fez a compra.

Modelo de request

curl --location --request POST 'https://api.iugu.com/v1/invoices/{{invoice_id}}/refund' \ 
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token in base64}}' \
--data-raw ''

Modelo de response

858

Caso exista a necessidade de realizar um reembolso parcial da fatura, basta inserir no corpo da request a propriedade partial_value_refund_cents, ela deve ser informada em centavos e no formato int32.

Por exemplo, caso exista a necessidade de estornar apenas R$10,00 de uma fatura de R$80,00, precisa realizar a seguinte request:

curl --location --request POST 'https://api.iugu.com/v1/invoices/id/refund' \ 
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token in base64}}' \
--data-raw '{ 
     "partial_value_refund_cents": 1000 
}'

Gatilho de reembolso de uma fatura

Caso de uso

"Cliente entra em contato informando que deseja realizar o estorno de uma fatura, porém por uma estratégia definida da empresa, para ocorrer esse processo, o cliente precisa conversar com um atendente que irá ter acesso ao painel da iugu para realizar o estorno, porém é necessário que essa atualização do estorno seja replicada para o site para atualizar o pedido desse cliente para estornado."

Diagrama de sequência

1123

Após ser realizado o estorno dentro do painel da iugu, será enviado o gatilho invoice.refunded, onde será apresentado o id da fatura que foi estornada.

Se sua empresa trabalha com estorno parcial, para saber o valor estornado é necessário realizar um GET na api Consultar Faturas passando seu token_api e o id da invoice na url da request.

Modelo de request

curl --location --request GET 'https://api.iugu.com/v1/invoices/{{invoice_id}}' \ 
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token in base64}}' \
--header 'Cookie: __cfruid=ba38fe00a0ba07ff13cb5574006ba07a4e082a46-1627652114'