Webhook

Assinando eventos, a lista de eventos, a carga útil que cada notificação carrega e as regras de entrega e reenvio.

Ver como Markdown

Um webhook é uma URL HTTPS sua que recebe um POST com um corpo JSON quando um evento acontece. Duas maneiras de se inscrever:

  • Um recurso WebhookPOST /webhooksAPI com um url e um event. Entrega esse evento para cada recurso da aplicação.
  • webhookUrl em um recurso — definido ao criar um Item, um Connect Token ou uma Solicitação de Pagamento. Entrega cada evento, mas apenas para esse recurso (ou os Items criados com esse token).

Recurso Webhook#

CampoObrigatórioSignificado
urlsimApenas HTTPS. localhost não é aceito — use um túnel como ngrok enquanto desenvolve.
eventsimUm evento das tabelas abaixo, item/all para cada evento de Item, ou all para tudo.
headersnãoEnviado com cada entrega para esta URL — a maneira de passar uma chave de API que seu endpoint requer. Apenas configurável através da API, nunca mostrado no dashboard.

Endpoints: GET /webhooksAPI, POST /webhooksAPI, e recuperar, atualizar e deletar em /webhooks/{id}API.

Eventos#

Dados

EventoDispara quando
item/createdUm Item foi criado e conectado com sucesso.
item/updatedUm Item foi atualizado e sincronizado com sucesso.
item/deletedUm Item foi deletado.
item/errorUma execução terminou em erro; USER_AUTHORIZATION_PENDING também dispara isso.
item/waiting_user_inputO Item precisa de entrada do usuário (MFA) para continuar.
item/waiting_user_actionO Item precisa que o usuário atue em seu dispositivo — autorizar no aplicativo do banco, escanear um código QR.
item/login_succeededO login na instituição foi bem-sucedido; a coleta de dados está em andamento.
connector/status_updatedUm conector mudou de status (ONLINE, UNSTABLE, OFFLINE). Transporta connectorId.
transactions/createdNovas transações após uma atualização; transporta createdTransactionsLink para buscá-las.
transactions/updatedTransações mudaram após uma atualização; transporta seus ids.
transactions/deletedTransações removidas após uma atualização; transporta seus ids.

Eventos de transação disparam apenas quando algo muda; uma atualização sem novas transações não emite transactions/created.

Pagamentos

EventoDispara quando
payment_intent/createdUma intenção de pagamento foi criada para uma solicitação.
payment_intent/waiting_payer_authorizationA intenção precisa da autorização do pagador.
payment_intent/completedA intenção foi concluída.
payment_intent/errorA intenção falhou.
payment_request/updatedUma solicitação de pagamento mudou de status.
scheduled_payment/created, /completed, /error, /canceledUm pagamento agendado de uma autorização foi movido.
scheduled_payment/all_created, /all_completedCada pagamento agendado de uma autorização foi criado / concluído.
automatic_pix_payment/created, /completed, /error, /canceledUm pagamento de uma solicitação de PIX Automático foi movido.
smart_transfer_preauthorization/completed, /errorUma pré-autorização de Transferência Inteligente foi aprovada ou falhou.
smart_transfer_payment/completed, /errorUm pagamento de Transferência Inteligente foi liquidado ou falhou.

Payload#

Cada notificação carrega:

CampoSignificado
eventO nome do evento.
eventIdIdentifica o evento; o mesmo valor quando um evento é entregue a várias URLs.
triggeredByUSER (um Connect Token, por exemplo, o widget), CLIENT (uma Chave de API, por exemplo, um PATCH), SYNC (auto-sync) ou INTERNAL (suporte Pluggy). Ausente em item/deleted, connector/status_updated e transactions/deleted.
o id da entidadeitemId em eventos de Item, transactionIds em eventos de transação, connectorId em eventos de conector, e assim por diante por evento.
clientUserIdSomente em eventos item/* — o valor definido através das options do Connect Token. Não em transactions/*: mapeie-os para seu usuário através de itemId.

Entrega e tentativas#

Uma entrega é bem-sucedida quando seu endpoint responde 2xx dentro de 5 segundos. Responda primeiro, processe depois — um manipulador lento é contado como uma falha e tentado novamente.

Em caso de falha: três tentativas consecutivas; se todas falharem, mais três após 1 hora; se essas falharem, uma última tentativa de três após 2 horas. Até 9 entregas de um evento. Exceção: item/login_succeeded recebe apenas as três tentativas consecutivas, sem tentativas atrasadas.

Leia o guia: Webhook — exemplos de payload por evento e solução de problemas.

Esta página foi útil?