Integração com o Webhooks
Cada sincronização faz POST de JSON assinado para o seu endpoint HTTPS: transações, saldos, posições e operações de 14 mil+ bancos, verificados com o seu próprio segredo de assinatura.
webhook-id: evt_job-7q2_0_1_1webhook-timestamp: 1792501320webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=content-type: application/json { "id": "evt_job-7q2_0_1_1", "type": "transactions.delta", "apiVersion": "2026-06-01", "createdAt": "2026-10-20T13:02:00.000Z", "feed": { "id": "feed_9d1", "name": "Chase to Webhook", "dataType": "transactions" }, "job": { "id": "job_7q2", "trigger": "scheduled" }, "batch": { "sequence": 1 }, "data": [ { "id": "10a4d071832649a", "date": "2026-10-19", "amount": 4200.00, … }, { "id": "4bdd8e6931727cd", "date": "2026-10-19", "amount": -86.42, … }, …1 more ]}
Do banco para o seu servidor em três passos.
- 01
Ligue um endpoint
Cole um URL HTTPS público. O BankSync mostra uma única vez um segredo de assinatura whsec_ e envia um evento de teste.
URLhttps://api.yourapp.com/…Segredowhsec_••••••••••••Evento de teste● 200 em 142 ms - 02
Aponte um feed para ele
Escolha as contas e um tipo de dados. Não há nada para mapear: recebe um envelope JSON com versão.
TransaçõesSaldosPosiçõesOperaçõesEmpréstimosEventotransactions.deltaMapeamentoNenhum, uma pré-visualização do payload - 03
Verifique cada entrega
Verifique a assinatura com qualquer biblioteca Standard Webhooks e depois faça upsert das linhas pelo id.
server.js
import { Webhook } from 'standardwebhooks'const wh = new Webhook(secret)const event = wh.verify(body, headers)// eliminar duplicados por event.id
Configure o Webhooks do início ao fim.
Configuração do Webhooks no BankSync, filmada com contas de exemplo.
O que chega ao seu endpoint.
- id
- Único por entrega e estável entre repetições. A sua chave de idempotência, igual ao cabeçalho webhook-id.
- type
- transactions.delta para transações novas ou alteradas; saldos, posições, operações, ordens e empréstimos chegam como *.snapshot.
- apiVersion
- O contrato do payload fixado por data, atualmente 2026-06-01.
- feed
- O id, o nome e o tipo de dados do feed que o enviou.
- job
- A execução a que pertence e o que a iniciou: scheduled, manual, api, test ou redelivery.
- batch
- A posição do lote na execução, para que os possa ordenar.
- data
- As linhas. As transações incluem id, data, descrição, valor com sinal, moeda, categoria, estado pendente e a conta.
O seu endpoint é apenas uma etapa. Não é tudo.
Webhooks, em resumo.
- Dados
- Transações, saldos, posições, operações, ordens e empréstimos, um tipo de dados por feed.
- Assinatura
- Standard Webhooks: HMAC-SHA256 sobre o id, o timestamp e o corpo. Ao rodar o segredo, o antigo continua válido durante 24 horas.
- Entrega
- Pelo menos uma vez. Após respostas 408, 425, 429, 5xx ou tempos limite, a entrega é repetida com backoff; 410 desativa o endpoint.
- Endpoints
- Só HTTPS público. Os endereços privados, de loopback e internos são rejeitados.
- Periodicidade
- Escolha sincronizações automáticas de hora a hora, diárias ou semanais, conforme o seu plano, ou faça uma sincronização manual a qualquer momento.
- Plano
- Plano Standard ou superior, a par da API e do MCP.
- Configuração
- Cerca de 5 minutos. Envie JSON assinado para o seu próprio endpoint; sem custos de terceiros.
- Estado
- Já disponível.
Perguntas e respostas.
Como verifico um webhook do BankSync?
Cada entrega inclui os cabeçalhos webhook-id, webhook-timestamp e webhook-signature no formato Standard Webhooks. Verifique-os com o seu segredo whsec_ usando qualquer biblioteca Standard Webhooks e rejeite timestamps com mais de 5 minutos.
O que acontece se o meu endpoint estiver em baixo?
A entrega é feita pelo menos uma vez. Após respostas 408, 425, 429 e 5xx ou tempos limite, a entrega é repetida com backoff exponencial com o mesmo id, por isso elimine duplicados pelo id. Uma resposta 410 desativa o endpoint.
Que eventos envia o BankSync?
transactions.delta para transações novas ou alteradas; balances.snapshot, holdings.snapshot, trades.snapshot, orders.snapshot e loans.snapshot para o estado atual; sync.completed ou sync.failed no fim de cada execução; e endpoint.test para eventos de teste.
Posso enviar webhooks para localhost ou para uma rede privada?
Não. Os endpoints têm de ser URL https:// públicos. Os endereços que resolvem para intervalos privados, de loopback, link-local ou internos são rejeitados quando os guarda.
Que plano inclui webhooks?
Os webhooks estão incluídos no plano Standard e nos planos superiores, juntamente com a API e o MCP.
Dados bancários no seu endpoint.
O BankSync não é afiliado a Webhooks, não é apoiado por Webhooks nem é seu parceiro oficial. As marcas de Webhooks pertencem aos respetivos proprietários.
