Confirmação do pagamento

stable

Após o título ter sido validado com sucesso, o parceiro deverá utilizar este endpoint para confirmar o pagamento . Somente após a confirmação, o pagamento será efetivado.

Pré-requisito

Para que seja possível utilizar este endpoint, é necessário que:

  • O parceiro possua o ID de pagamento gerado na validação do título;
  • O cliente possua uma conta e cadastro ativos pra que seja possível debitar o saldo do pagamento.

Requisição

Requisição HTTP

POST https://api-mtls.sandbox.bankly.com.br/bill-payment/confirm
--location --request POST 'https://api-mtls.sandbox.bankly.com.br/bill-payment/confirm' \
--header 'api-version: 1.0' \
--header 'authorization: Bearer {{Token}}' \
--header 'content-type: application/*+json' \
--header 'x-correlation-id: GUID' \
--data '{ 
   "id": "código ID gerado na etapa de validação", 
   "bankBranch": "{{bankBranch}}", 
   "bankAccount": "{{bankAccount}}", 
   "amount": {{00.00}} 
}'

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
payment.confirmConcede acesso para confirmar o pagamento de um título.

Cabeçalhos (Headers)

NomeDescrição
api-versionObrigatório. Versão da API. Atualmente estamos na versão 1.0.
authorizationObrigatório. Token de autorização do tipo Bearer.
x-correlation-idObrigatório. Informe um GUID, sendo um novo cada requisição.

Parâmetros da rota (Path)

Não é necessário enviar parâmetros no path desta requisição.

Corpo da requisição (Body)

No body, envie o seguintes campo em formato JSON:

NomeTipoDescrição
idstringObrigatório. Código ID gerado na etapa de validação.
bankBranchstringObrigatório. Número da agência do banco do pagador.
bankAccountstringObrigatório. Número da conta do pagador.
amountnumberObrigatório. Valor a ser pago.
descriptionstringDescrição do pagamento.
{ 
   "id": "código ID gerado na etapa de validação", 
   "bankBranch": "{{bankBranch}}", 
   "bankAccount": "{{bankAccount}}", 
   "amount": 00.00,
   "description": "Descrição do pagamento"
}

Resposta (Response)

O status code 200 indicará que o pagamento foi confirmado com sucesso.

Sendo bem-sucedido, o retorno irá trazer os seguintes campos em formato JSON:

NomeTipoDescrição
authenticationCodestringId de confirmação da transação que será utilizado para realizar consultas sobre o pagamento.
settleDatestringData em que o pagamento será liquidado, no formato ISO 8601 - UTC. Caso a data de vencimento coincida com feriados ou finais de semana, esse campo informará a data do próximo dia útil.
{ 
 "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).

👍

Dica

Para simular uma requisição nesse endpoint, acesse o API Reference.

Erros

Este endpoint pode retornar erros específicos, conforme a tabela a seguir:

Status codeCódigoMensagemDescrição
400ASSIGNOR_NOT_AUTHORIZEDNon authorized assignor, payment was not completedComerciante não autorizado. O pagamento não foi efetivado.
400PAYMENT_AMOUNT_GREATER_THAT_MAX_ALLOWED_AMOUNTAmount to be paid is above the maximum allowed amountO valor do pagamento informado é maior do que o permitido.
400PAYMENT_AMOUNT_LOWER_THAT_MIN_ALLOWED_AMOUNTAmount to be paid is bellow the min allowed amountO valor informado é inferior ao mínimo permitido. Consulte o campo minAmount retornado no endpoint de validação do título.
400QUERY_ID_ALREADY_UTILIZEDQuery protocol ID already utilized by another paymentO ID informado já foi utilizado anteriormente.
400QUERY_ID_NOT_FOUNDQuery protocol ID not not found in the current dateId não encontrado. É possível que a consulta tenha sido realizada no mesmo dia da criação do pagamento.
400INVALID_BAR_CODE_BY_QUERY_IDBar Code is incorrect for the query protocolId informedCódigo de barras inválido.
400AMOUNT_NOT_ALLOWEDPayment amount not allowedO valor informado no campo amount é inválido.
400PAYMENT_ALREADY_PERFORMEDPayment already performedO pagamento já foi realizado.
400TRANSACTION_NOT_FOUNDTransaction not foundCódigo de barras ou linha digitável é inválida.
400CASHOUT_LIMIT_NOT_ENOUGHSender does not have sufficient cash out limitA transação excede o limite de valor da transferência.
400OPERATIONAL_ERRORThere is no resource available to perform a transaction at this time.Não há recurso disponível para realizar a transação no momento.
400OPERATION_NOT_COMPLETEDOperation not completed. Try AgainA operação não foi completada. Tente novamente em alguns minutos.
400AMOUNT_BELLOW_MIN_ALLOWEDPayment amount bellow min allowedO valor informado é inferior ao mínimo permitido. Consulte o campo minAmount retornado no endpoint de validação do título.
400AMOUNT_ABOVE_MAX_ALLOWEDPayment amount above max allowedO valor informado é superior ao máximo permitido. Consulte o campo maxAmount retornado no endpoint de validação do título.
400PAYMENT_CONFIRMATION_ALREADY_IN_PROCESSA confirmation is already being processed for the payment in question.A confirmação desse pagamento já está está sendo processada.
400PAYMENT_VALUE_EXCEEDEDExceeded the maximum valueEste boleto supera o valor máximo que pode ser pago, sendo R$249.999,99 para fichas de compensação e R$950.000,00 para concessionárias, tributos e convênios.
400PAYMENT_AMOUNT_CANNOT_BE_CHANGEDPayment amount cannot be changedO valor do pagamento não pode ser alterado.

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.

Eventos

Caso o parceiro deseje receber mensagens referentes aos eventos relacionados a esse endpoint, é preciso configurar o webhook. O evento é:

EventoDescrição
BILL_PAYMENT_WAS_CONFIRMEDPagamento confirmado.