Esta seção discutirá como cada webhook é acionado após a conclusão de cada etapa, afetando as entidades PaymentRequest, PaymentIntent e SchedulePayment.
Fluxo de Webhooks Agendados#
O fluxo geral funciona da seguinte forma: quando o pagador autoriza o consentimento, um webhook payment_intent/created é acionado, seguido por payment_intent/completed uma vez que a intenção é confirmada. Em seguida, um webhook scheduled_payment/created é acionado para cada pagamento agendado, e um webhook scheduled_payment/all_created uma vez que todos os agendamentos tenham sido registrados. À medida que cada pagamento agendado é executado na sua data, um webhook scheduled_payment/completed é acionado (ou scheduled_payment/error se falhar), e finalmente scheduled_payment/all_completed quando todos os agendamentos tiverem terminado.
Exemplos de payloads de webhook#
Aqui estão exemplos de payloads de webhook em um caso com dois pagamentos agendados, ambos se tornando COMPLETOS:
payment_intent/created
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"paymentIntentId": "056b8046-2f7c-4d97-b5d5-f5f54005db51",
"event": "payment_intent/created",
"eventId": "aa8f7239-101c-4553-afdd-9689a4ac46cd"
}payment_intent/completed
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"paymentIntentId": "056b8046-2f7c-4d97-b5d5-f5f54005db51",
"event": "payment_intent/completed",
"eventId": "1ecfb159-e506-48a3-895e-aed5241db4d9"
}scheduled_payment/created (1)
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"event": "scheduled_payment/created",
"eventId": "5f519a62-87e1-45ce-be36-d2b185994c21",
"scheduledPaymentId": "65c6f9cd-e69f-46cd-8103-80b42dd61bfd"
}scheduled_payment/created (2)
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"event": "scheduled_payment/created",
"eventId": "c8e0dd66-5939-425d-bfd2-900ffa6921ae",
"scheduledPaymentId": "502b68b5-f82a-4d1c-bcb3-e1e61fadc48a"
}scheduled_payment/all_created
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"event": "scheduled_payment/all_created",
"eventId": "4f45ca0a-3286-47b4-b8b3-195cd35cac01"
}scheduled_payment/completed (1)
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"event": "scheduled_payment/completed",
"eventId": "1d5d1aab-fc1a-40d4-aeae-15e7b9c11a10",
"endToEndId": "E44471172202505211500U0d9ffa12345",
"scheduledPaymentId": "65c6f9cd-e69f-46cd-8103-80b42dd61bfd"
}scheduled_payment/completed (2)
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"event": "scheduled_payment/completed",
"eventId": "9ebc222b-a94d-41e1-ad52-c0cf26f0357e",
"endToEndId": "E44471172202505211500U0d9ffa12345",
"scheduledPaymentId": "502b68b5-f82a-4d1c-bcb3-e1e61fadc48a"
}scheduled_payment/all_completed
{
"paymentRequestId": "a0ed730e-5a44-491f-9a32-aa295c399fdf",
"event": "scheduled_payment/all_completed",
"eventId": "7a9426aa-2ac3-4d8e-a5a4-fe780f116c6b"
}Exemplo
Se você configurou todos os webhooks, seguindo o exemplo acima de fluxo, isso acionará todos esses webhooks nessa ordem.
Você receberá:
- Dois webhooks
payment_intent(criado e concluído).- Cinco webhooks
scheduled_payment.
- Como neste exemplo agendamos dois pagamentos, receberemos dois para cada pagamento que foi agendado (criado e concluído).
- Um webhook quando todos os agendamentos tiverem terminado.
Erros de Webhook#
Quando você recebe um webhook scheduled_payment/error, pode ter um dos seguintes códigos de erro.
| Código de Erro | Significado | Descrição |
|---|---|---|
INSUFFICIENT_BALANCE | Saldo Insuficiente | A conta não tem saldo suficiente para realizar o pagamento. |
EXCEEDED_LIMIT | Limite Excedido | O valor do pagamento excede o limite permitido. |
INVALID_AMOUNT | Valor Inválido | O valor do pagamento fornecido é inválido. |
INVALID_INVOICE | Fatura Inválida | A fatura fornecida é inválida. |
INVALID_CONSENT | Consentimento Inválido | O consentimento fornecido é inválido. |
PARAMETER_NOT_PROVIDED | Parâmetro Não Fornecido | Um parâmetro obrigatório não foi fornecido. |
INVALID_PARAMETER | Parâmetro Inválido | Um parâmetro fornecido é inválido. |
NOT_PROVIDED | Parâmetro Não Fornecido | Um parâmetro obrigatório não foi fornecido. |
PAYMENT_DIFFERENT_FROM_CONSENT | Pagamento Diferente do Consentimento | O pagamento difere do consentimento autorizado. |
INVALID_PAYMENT_DETAIL | Detalhe de Pagamento Inválido | Os detalhes do pagamento fornecidos são inválidos. |
PAYMENT_REJECTED_BY_HOLDER | Pagamento Rejeitado pelo Titular | O titular da conta rejeitou o pagamento. |
IDEMPOTENCY_ERROR | Erro de Idempotência | Ocorreu um erro de idempotência, possivelmente devido a solicitações duplicadas. |
CONSENT_PENDING_AUTHORIZATION | Consentimento Pendente de Autorização | O consentimento está pendente de autorização. |
INFRASTRUCTURE_FAILURE | Falha na Infraestrutura | Ocorreu uma falha na infraestrutura. |
SAME_ACCOUNT_ORIGIN_DESTINATION | Mesma Conta de Origem e Destino | As contas de origem e destino são as mesmas, o que não é permitido. |
PAYMENT_SCHEDULING_FAILURE | Falha no Agendamento do Pagamento | Ocorreu uma falha ao agendar o pagamento. |
UNKNOWN_ERROR | Erro Desconhecido | Ocorreu um erro desconhecido, seja do lado do iniciador ou do titular da conta. |
