[BV] Baixa de fatura por meio de pagamentos externos
stable
A baixa de fatura permite aos parceiros a flexibilidade de disponibilizar seus próprios meios de pagamento de fatura aos seus clientes.
Ou seja, os parceiros que não utilizam core bancário do Bankly podem efetuar o recebimento dos valores de pagamento de uma fatura emitida através de seu próprio sistema financeiro e sinalizar esse pagamento ao Bankly, por meio do endpoint de baixa de fatura, para que seja possível realizar a baixa.
Fluxo da baixa de fatura
A baixa de fatura ocorre por meio dos seguintes passos:
- Junto ao Bankly, o parceiro configura em seu token de segurança a utilização da funcionalidade de baixa de fatura por meio de pagamentos externos;
- O parceiro disponibiliza um meio de pagamento de fatura ao seu cliente (Pix ou boleto);
- O cliente realiza o pagamento da fatura;
- Ao receber o pagamento, o parceiro envia ao Bankly as informações da fatura paga, bem como de seu valor, por meio do endpoint de baixa de fatura.
ImportanteSó é permitido realizar a baixa de fatura caso não exista um ciclo posterior de fatura já fechado.
Este endpoint permite que o parceiro possa realizar a baixa total ou parcial de uma fatura emitida por meio de seu próprio sistema financeiro.
Pré-requisitos
Para que seja possível utilizar este endpoint, é necessário que:
- O parceiro tenha configurado previamente em seu token de segurança a utilização da funcionalidade de baixa de fatura;
- Não haja um ciclo posterior de fatura já fechado.
Requisição (Request)
Requisição HTTP
POST https://api-mtls.sandbox.bankly.com.br/cards/invoices/{statementId}/settlement--request POST
--url'https://api-mtls.sandbox.bankly.com.br/cards/invoices/{statementId}/settlement' \
--header 'Authorization: Bearer {{Token}}' \
--header 'Idempotency-key: {{IdempotencyKey}}' \
--header 'api-version: 1.0' \
--header 'x-bkly-version: 01-04-2023' \
--header 'x-correlation-id: 1e15fdb6-592f-4cbd-9403-e3f28694be82' \
--header 'Content-Type: application/json' \
--data '{
"type": "Billet",
"liquidateDate": "2023-11-20 00:00:00.000",
"paymentDate": "2023-11-9 00:00:00.000",
"externalId": "0000015",
"amount": {
"value": 100.00,
"currency": "BRL"
},
"paymentOptionId" : 1234
}'Autorização
Para garantir a segurança nas requisições, todos os endpoints do Bankly utilizam scopes como parte do seu fluxo de autorização.
Esta requisição requer o scope descrito a seguir:
| Scope | Descrição |
|---|---|
invoice.write | Concede acesso para realizar a baixa de uma fatura. |
Cabeçalhos (Headers)
| Nome | Descrição |
|---|---|
Authorization | Obrigatório. Token de autorização do tipo Bearer. |
api-version | Obrigatório. Versão da API. Atualmente estamos na versão 1.0. |
Idempotency-key | Obrigatório. Chave de idempotência. Informe um GUID, sendo um novo cada requisição. |
x-bkly-version | Obrigatório. Versão do contrato. O padrão definido é: yyyy-mm-dd , que se refere à data da quebra de contrato. A versão atual é a 01-04-2023. |
x-correlation-id | Informe um GUID v4, sendo um novo cada requisição. |
Parâmetros da rota (Path)
No path desta requisição envie os seguintes campos:
| Nome | Tipo | Descrição | Especificação |
|---|---|---|---|
statementId | path | Obrigatório. Identificador único da fatura em aberto que receberá o meio de pagamento externo. | Insira somente números, sem caracteres especiais. |
Corpo da requisição (Body)
No body, envie os seguintes campos em formato JSON:
| Nome | Tipo | Descrição | Especificação |
|---|---|---|---|
type | string | Obrigatório. Meio pelo qual a fatura será liquidada, que pode ser "Pix" ou "Billet" (Boleto). | — |
liquidateDate | string | Obrigatório. Data de liquidação do pagamento informada pelo parceiro externo. Essa data não pode ser superior a seis dias da data em que o pagamento foi realizado. | Formato ISO 8601 - UTC. |
paymentDate | string | Obrigatório. Data do pagamento. | Formato ISO 8601 - UTC. |
externalId | string | Obrigatório. Identificador único da fatura que está sendo paga. | — |
amount | object | Obrigatório. Objeto que deverá conter informações sobre o valor da operação. | — |
amount.value | number | Obrigatório. Valor monetário da operação. | — |
amount.currency | string | Obrigatório. Código da moeda com base na ISO - 4217. Exemplos: “BRL”. | — |
paymentOptionId | integer | Identificador único da opção de pagamento. O valor deste campo é obtido no endpoint de Consulta de opções de pagamento . | — |
ImportantePara ativar os planos de parcelamento com entrada personalizada, é necessário enviar tanto o campo
paymentOptionIdquanto o objetoamounte suas propriedades. Se somente o objetoamountfor informado na requisição, ela será processada apenas como um pagamento, e o parcelamento não será ativado.
{
"type": "Billet",
"liquidateDate": "2023-11-20 00:00:00.000",
"paymentDate": "2023-11-9 00:00:00.000",
"externalId": "0000015",
"amount": {
"value": 100.00,
"currency": "BRL"
},
"paymentOptionId" : 1234
}Resposta (Response)
O status code 202 indicará que a solicitação foi aceita com sucesso e que o pagamento será processado.
ImportanteA confirmação do lançamento do pagamento na fatura ocorrerá através do evento
[INVOICE_PAYMENT_PROCESSED](https://docs.bankly.com.br/docs/eventos-faturas#invoice_payment_processed).
Erros
Este endpoint pode retornar erros específicos, conforme a tabela a seguir:
| Status Code | Código | Mensagem | Descrição |
|---|---|---|---|
| 400 | CONTRACT_IS_IN_CRELIQ | Contract from statment is Creliq status. | Contrato da declaração está em status Creliq. |
| 400 | CONTRACT_IS_IN_PRE_CRELIQ | Contract in pre creliq can not have payment less than minimal. | Contrato em pré-creliq não pode ter pagamento menor que o mínimo. |
| 400 | THE_PAYMENT_LIQUIDATE_DATE_AND_PAYMENT_DATE_ARE_MORE_THAN_SIX_DAYS | The payment liquidade date and payment date are more than six days apart. | Há uma diferença de seis dias entre a data de pagamento e a data de liquidação. |
| 400 | INVOICE_PAYMENT_OPTIONS_DATA_NOT_FOUND | Payment Options Data not found! | Opções de pagamento não encontradas. |
| 406 | THE_EXTERNAL_PAYMENT_TYPE_IS_NOT_ACCEPTED | The external payment type is not accepted. | Tipo de pagamento informado não aceito. Somente são aceitos: "Pix" e "Billet". |
| 406 | IDEMPOTENCY_KEY_IS_ALREADY_BEING_USED | Idempotency Key Is Already Being Used! | A chave de idempotência (IdempotencyKey) já está em uso. |
| 406 | STATEMENT_CAN_BE_NOT_PAID_AGAIN | The Statement can be not paid again. | O pagamento não pode ser efetuado novamente. A baixa de fatura só pode ser enviada uma vez. |
Recordamos que esta API também poderá retornar erros comuns entre todos os endpoints. Portanto, recomendamos a consulta da documentação de erros, onde é possível encontrar as mensagens comuns em inglês que acompanham os erros 400 (se houver).
DicaPara simular uma requisição nesse endpoint, acesse o API Reference.
Eventos
Caso o parceiro deseje receber mensagens referentes aos eventos relacionados a esse endpoint, é preciso configurar o webhook. Os eventos são:
| Nome do evento | Descrição |
|---|---|
INVOICE_PAYMENT_PROCESSED | O pagamento da fatura do cartão foi processado. |
DISCHARGE_WAS_CREATED | Itens liquidados através de um pagamento ou crédito lançado em fatura. |
INVOICE_INSTALLMENT_PLAN_WAS_ACTIVATED | Confirmação bem-sucedida de uma oferta de crédito para parcelamento na fatura. |
INVOICE_INSTALLMENT_PLAN_ACTIVATION_WAS_FAILED | Falha na confirmação da oferta de crédito para parcelamento da fatura. |
