[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:

  1. 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;
  2. O parceiro disponibiliza um meio de pagamento de fatura ao seu cliente (Pix ou boleto);
  3. O cliente realiza o pagamento da fatura;
  4. 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.
🚧

Importante

Só é 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:

ScopeDescrição
invoice.writeConcede acesso para realizar a baixa de uma fatura.

Cabeçalhos (Headers)

NomeDescrição
AuthorizationObrigatório. Token de autorização do tipo Bearer.
api-versionObrigatório. Versão da API. Atualmente estamos na versão 1.0.
Idempotency-keyObrigatório. Chave de idempotência. Informe um GUID, sendo um novo cada requisição.
x-bkly-versionObrigató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-idInforme um GUID v4, sendo um novo cada requisição.

Parâmetros da rota (Path)

No path desta requisição envie os seguintes campos:

NomeTipoDescriçãoEspecificação
statementIdpathObrigató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:

NomeTipoDescriçãoEspecificação
typestringObrigatório. Meio pelo qual a fatura será liquidada, que pode ser "Pix" ou "Billet" (Boleto).
liquidateDatestringObrigató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.
paymentDatestringObrigatório. Data do pagamento.Formato ISO 8601 - UTC.
externalIdstringObrigatório. Identificador único da fatura que está sendo paga.
amountobjectObrigatório. Objeto que deverá conter informações sobre o valor da operação.
amount.valuenumberObrigatório. Valor monetário da operação.
amount.currencystringObrigatório. Código da moeda com base na ISO - 4217. Exemplos: “BRL”.
paymentOptionIdintegerIdentificador único da opção de pagamento. O valor deste campo é obtido no endpoint de Consulta de opções de pagamento .
🚧

Importante

Para ativar os planos de parcelamento com entrada personalizada, é necessário enviar tanto o campo paymentOptionId quanto o objeto amount e suas propriedades. Se somente o objeto amount for 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.

🚧

Importante

A 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 CodeCódigoMensagemDescrição
400CONTRACT_IS_IN_CRELIQContract from statment is Creliq status.Contrato da declaração está em status Creliq.
400CONTRACT_IS_IN_PRE_CRELIQContract in pre creliq can not have payment less than minimal.Contrato em pré-creliq não pode ter pagamento menor que o mínimo.
400THE_PAYMENT_LIQUIDATE_DATE_AND_PAYMENT_DATE_ARE_MORE_THAN_SIX_DAYSThe 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.
400INVOICE_PAYMENT_OPTIONS_DATA_NOT_FOUNDPayment Options Data not found!Opções de pagamento não encontradas.
406THE_EXTERNAL_PAYMENT_TYPE_IS_NOT_ACCEPTEDThe external payment type is not accepted.Tipo de pagamento informado não aceito. Somente são aceitos: "Pix" e "Billet".
406IDEMPOTENCY_KEY_IS_ALREADY_BEING_USEDIdempotency Key Is Already Being Used!A chave de idempotência (IdempotencyKey) já está em uso.
406STATEMENT_CAN_BE_NOT_PAID_AGAINThe 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).

👍

Dica

Para 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 eventoDescrição
INVOICE_PAYMENT_PROCESSEDO pagamento da fatura do cartão foi processado.
DISCHARGE_WAS_CREATEDItens liquidados através de um pagamento ou crédito lançado em fatura.
INVOICE_INSTALLMENT_PLAN_WAS_ACTIVATEDConfirmação bem-sucedida de uma oferta de crédito para parcelamento na fatura.
INVOICE_INSTALLMENT_PLAN_ACTIVATION_WAS_FAILEDFalha na confirmação da oferta de crédito para parcelamento da fatura.

Copyright © 2021 Acesso Soluções de Pagamento S.A - Todos os direitos reservados