Processo de pagamento de conta

stable scopes: payment.validate payment.confirm

Nossos parceiros podem oferecer aos seus clientes o serviço de pagamento de títulos e contas concessionárias.

🚧

Importante

Somente é possível realizar o pagamento de uma conta concessionária se a empresa a qual o pagamento se destina estiver devidamente registrada na lista de convênios do Bankly.

As etapas que contemplam o processo de pagamento de uma conta são: a validação do título e a confirmação do pagamento.

Etapas

Validação por meio da linha digitável

A validação por meio da linha digitável é a primeira etapa do processo de pagamento de conta, pois ela verifica se o título está apto a ser pago.

Neste momento, verificamos se o título:

  • já foi pago anteriormente;
  • é recebível na instituição;
  • está dentro da data mínima para adiantamento;
  • possibilita pagamento parcial;
  • não atingiu o limite de pagamentos parciais;
  • exige pagamento mínimo ou máximo;
  • está dentro da data limite de pagamento;
  • pode ser pago após a data de vencimento;
  • possui multa, juros e/ou descontos;
  • está dentro do valor máximo que pode ser pago, sendo o valor de R$249.999,99 para ficha de compensação e R$950.000,00 para concessionária, tributos e convênio.

Também checamos se o beneficiário do boleto está apto para receber o pagamento.

Endpoint

Para consumo do endpoint de validação do título, no body da requisição, obrigatoriamente, informe no campo code o valor da linha digitável para pagamento.

🚧

Importante

No header da requisição, é obrigatório informar o campo x-correlation-id com um GUID.

--location  --request POST 'https://api-mtls.sandbox.bankly.com.br/bill-payment/validate' \   
--header 'api-version: 1' \  
--header 'x-correlation-id: GUID' \  
--header 'Authorization: Bearer' \  
--header 'Content-Type: application/json' \   
--data-raw '{ 
  "code": "{{linha digitável}}",
}'

Retorno

Quando a requisição é concluída, além dos dados do recebedor e do pagador, o endpoint retorna os seguintes campos:

  • id: identificador único que será necessário no momento de confirmar o pagamento;
  • businessHour:
    • start: horário mínimo para realizar o pagamento;
    • end: horário máximo para realizar o pagamento;

🚧

Importante

O sistema Bankly somente recebe pagamentos de boletos de depósito ou cobrança emitidos pelo próprio Bankly até as 20h.

  • dueDate: data de vencimento;
  • settleDate: retorna a data em que o pagamento será liquidado. Caso a data de vencimento coincida com feriados ou finais de semana, esse campo informará a data do próximo dia útil;

📘

Nota

O campo settleDate apresenta um valor dinâmico, pois exibe a data em que será feita a conciliação do pagamento. Por exemplo, caso o boleto seja pago no dia 03/10/2022 (dia útil) dentro do horário limite, o settleDate apresentará o valor 03/10/2022, que é o dia em que o pagamento será liquidado. No entanto, se o boleto for pago no dia 01/10/2022 (sábado), o settleDate apresentará o valor 03/10/2022, que é o próximo dia útil que permitirá sua liquidação.

  • nextSettle: informa se o título será liquidado no próximo dia útil;
  • interestAmountCalculated: valor dos juros;
  • fineAmountCalculated: valor de multa;
  • discountAmount: valor de desconto;
  • maxAmount: máximo valor permitido por pagamento;
  • minAmount: mínimo valor permitido por pagamento;
  • allowChangeAmount: se permite pagamento parcial.

📘

Nota

Caso haja alguma incidência de juros, multas ou descontos, o valor a pagar já vem atualizado.

{
   "id": "61854f59-7379-4a3b-b699-91899c6f6743",
   "assignor": "BANCO_Teste",
   "recipient": {
      "name": "BENEFICIARIO_XXX",
      "documentNumber": "21.568.259/0001-00"
   },
   "payer": {
      "name": "PAGADOR_Teste",
      "documentNumber": "11.111.111/1111-00"
   },
   "businessHours": {
      "start": "07:00",
      "end": "23:00"
   },
   "dueDate": "2022-03-20T00:00:00",
   "settleDate": "2022-03-17T00:00:00",
   "nextSettle": false,
   "originalAmount": null,
   "amount": 895.59,
   "charges": {
      "interestAmountCalculated": 0,
      "fineAmountCalculated": 0,
      "discountAmount": 0
   },
   "maxAmount": 1791.09,
   "minAmount": 0.08,
   "allowChangeAmount": true,
   "digitable": "00190000090280316401743442449222100000000000000"
}

Erros

Status codeCódigoDescrição
400BILL_CODE_REQUIREDO código de barras não pode estar vazio.
400INVALID_BILL_BAR_CODEO código de barras deve ter:
- pelo menos 44 caracteres;
- no máximo 48 caracteres quando iniciar com o número "8";
- no máximo 47 caracteres quando não iniciar com o número '8'.

🚧

Importante

O parceiro tem até 20 minutos a partir da validação para confirmar o pagamento. Caso contrário, irá receber o erro 404 - BILL_PAYMENT_NOT_FOUND_FOR_SUPPLIED_ID e precisará realizar a validação novamente para prosseguir.

Confirmação do pagamento

Após a validação do título, o parceiro deve confirmar o pagamento para que ele seja efetivado.

Endpoint

Para o consumo do endpoint de confirmação de pagamento, informe os seguintes campos obrigatórios:

  • id: código ID gerado na etapa de validação;
  • bankBranch: agência do banco do pagador;
  • bankAccount: número da conta do banco do pagador;
  • amount: valor a ser pago.

Opcionalmente, insira uma descrição do pagamento no campodescription.

curl   
--location  --request POST 'https://api-mtls.sandbox.bankly.com.br/bill-payment/confirm' \   
--header 'api-version: 1' \  
--header 'x-correlation-id: GUID' \  
--header 'Authorization: Bearer ' \  
--header 'Content-Type: application/json' \   
--data-raw '{ 
   "id": "código ID gerado na etapa de validação", 
   "bankBranch": "{{bankBrach}}", 
   "bankAccount": "{{bankAccount}}", 
   "amount": {{00.00}} 
}'

Retorno

O endpoint retorna o authenticationCode (Id de confirmação da transação), que será utilizado para realizar consultas sobre o pagamento.

{ 
 "authenticationCode": "4b3eaf21-0e70-47f1-ab39-8f742dd5ed7a", 
 "settleDate": "2022-03-24T00:00:00" 
}

Após o envio da requisição de confirmação (status Created), e caso não haja nenhum impedimento, o pagamento é confirmado (status Completed), e o valor é retirado da conta do pagador.

Isso geralmente acontece instantaneamente, porém, a compensação do título poderá ocorrer em até três dias úteis.

📘

Nota

Em caso de intermitência, e consequente atraso na confirmação do pagamento em mais de 30 minutos, o dinheiro do pagador é estornado para sua conta e a transação é cancelada (status Canceled).

Erros

Status codeCódigoDescrição
400REQUEST_WITHOUT_CORRELATION_IDcorrelationId não informado.
404BILL_PAYMENT_NOT_FOUND_FOR_SUPPLIED_IDBoleto não encontrado.

🚧

Importante

Os erros estão em processo de mapeamento. Em breve, as listas serão atualizadas.