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, osettleDate
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), osettleDate
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 code | Código | Descrição |
---|---|---|
400 | BILL_CODE_REQUIRED | O código de barras não pode estar vazio. |
400 | INVALID_BILL_BAR_CODE | O 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 code | Código | Descrição |
---|---|---|
400 | REQUEST_WITHOUT_CORRELATION_ID | correlationId não informado. |
404 | BILL_PAYMENT_NOT_FOUND_FOR_SUPPLIED_ID | Boleto não encontrado. |
Importante
Os erros estão em processo de mapeamento. Em breve, as listas serão atualizadas.
Updated 12 months ago