Webhooks de Pagamento Agendado

Saiba mais sobre o fluxo de webhook e os payloads para pagamentos agendados, incluindo códigos de erro que podem ocorrer durante o processamento de pagamentos.

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

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

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)

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)

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

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)

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)

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

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 ErroSignificadoDescrição
INSUFFICIENT_BALANCESaldo InsuficienteA conta não tem saldo suficiente para realizar o pagamento.
EXCEEDED_LIMITLimite ExcedidoO valor do pagamento excede o limite permitido.
INVALID_AMOUNTValor InválidoO valor do pagamento fornecido é inválido.
INVALID_INVOICEFatura InválidaA fatura fornecida é inválida.
INVALID_CONSENTConsentimento InválidoO consentimento fornecido é inválido.
PARAMETER_NOT_PROVIDEDParâmetro Não FornecidoUm parâmetro obrigatório não foi fornecido.
INVALID_PARAMETERParâmetro InválidoUm parâmetro fornecido é inválido.
NOT_PROVIDEDParâmetro Não FornecidoUm parâmetro obrigatório não foi fornecido.
PAYMENT_DIFFERENT_FROM_CONSENTPagamento Diferente do ConsentimentoO pagamento difere do consentimento autorizado.
INVALID_PAYMENT_DETAILDetalhe de Pagamento InválidoOs detalhes do pagamento fornecidos são inválidos.
PAYMENT_REJECTED_BY_HOLDERPagamento Rejeitado pelo TitularO titular da conta rejeitou o pagamento.
IDEMPOTENCY_ERRORErro de IdempotênciaOcorreu um erro de idempotência, possivelmente devido a solicitações duplicadas.
CONSENT_PENDING_AUTHORIZATIONConsentimento Pendente de AutorizaçãoO consentimento está pendente de autorização.
INFRASTRUCTURE_FAILUREFalha na InfraestruturaOcorreu uma falha na infraestrutura.
SAME_ACCOUNT_ORIGIN_DESTINATIONMesma Conta de Origem e DestinoAs contas de origem e destino são as mesmas, o que não é permitido.
PAYMENT_SCHEDULING_FAILUREFalha no Agendamento do PagamentoOcorreu uma falha ao agendar o pagamento.
UNKNOWN_ERRORErro DesconhecidoOcorreu um erro desconhecido, seja do lado do iniciador ou do titular da conta.