Pular para o conteúdo principal
A maioria dos fluxos destes guias termina de forma assíncrona — um PIX é pago, um cartão é debitado, um ciclo recorrente é liquidado. O Portão 3 avisa você sobre isso por webhook. Você mesmo registra o endpoint HTTPS que os recebe, pela seção Webhooks da API de Notification (POST /realms/{realmId}/organizations/{organizationId}/webhooks — uma URL inscrita nos eventos que quiser; registrar a mesma URL de novo adiciona eventos a ela, e cada evento pode ser desativado e reativado por webhook); as entregas são enviadas via HTTPS para essa URL.

O envelope de notificação

Todo webhook compartilha o mesmo envelope. O event informa o que aconteceu; o payload é o recurso afetado.
Webhooks podem ser entregues mais de uma vez. Trate notificationId como uma chave de idempotência: registre os que você já processou e ignore repetições. Sempre responda 2xx rapidamente e faça o processamento de forma assíncrona.

Catálogo de eventos

Uma inscrição é um par { "source", "event" }, e o event precisa pertencer ao seu source — o endpoint de registro rejeita qualquer outra combinação com 422. Estes são os três sources e todos os eventos que cada um aceita, exatamente como a API os valida.

WALLET — pagamentos, cartões e carteiras

BILLING — deals e faturas

TRAVEL — reservas

Uma cobrança por boleto (POST .../boleto-billing) não tem webhook: consulte-a com GET .../boleto-billing/{boletoId} para acompanhar o status.

Exemplo: provisionamento guiado por webhooks

Um padrão comum é deixar os usuários fazerem o próprio onboarding no aplicativo Portão 3 e seu sistema reagir a webhooks em vez de chamar a API diretamente. Por exemplo, quando um usuário é convidado e vincula um cartão, você recebe: Os campos personalizados são enviados como customFields em carteiras e transações — um mapa cuja chave é o slug da definição do campo ({ "centro-de-custo": "Projetos", "valido": true }). Para obter rótulos/tipos, consulte as definições na API de custom fields.
Apenas mudanças de campos personalizados de carteira emitem webhook (WALLET_UPDATED). Mudanças nos campos personalizados de uma transação não emitem webhook — leia-os na própria transação. (O antigo evento TRANSACTION_CUSTOM_FIELDS_UPDATED não é mais enviado.)
Payloads de webhook e campos personalizados podem carregar dados pessoais (nomes, CPF/CNPJ, e-mails, endereços). Armazene apenas o necessário, mantenha-os fora de logs em texto puro e siga suas próprias obrigações de retenção e minimização sob a LGPD.

Consultar uma organização

Para resolver os dados cadastrais de uma organização (razão social, documento, endereço) a partir de seu realmId e organizationId — útil ao reconciliar payloads de webhook — use o endpoint de organização do Identity:
Referência: GET /realms/{realmId}/organizations/{organizationId}

Próximos passos

Cobrar com PIX

O fluxo guiado por webhook mais simples para testar.

Cobrança recorrente com PIX Automático

O fluxo com o ciclo de vida de eventos mais rico.