Integração sem servidor
Receba o webhook de qualquer sistema e entregue no seu, no formato que ele espera
Damos um URL. Aponte para ele o disparo de quem quiser, escreva o mapeamento numa caixa de texto, e nós entregamos no seu endpoint — assinado, com nova tentativa e sem ter de alojar nada.
Quem dispara
recebe
APIBrasil
reescreve o corpo
Seu sistema
entrega e volta a tentar
Quando isso resolve
Todo caso abaixo é o mesmo problema: um sistema avisa de um jeito, o outro só entende de outro.
A cobrança foi paga
O gateway avisa com os campos dele; o seu ERP espera os campos que você definiu quando o escreveu.
Saiu um pedido na loja
A plataforma dispara um evento pesado, e o seu sistema interno só precisa de três campos dele.
O parceiro só dispara GET
Ele manda tudo na querystring; o seu endpoint espera POST com JSON. Ninguém dos dois lados vai mudar.
Você precisa confiar no que chega
Exija um cabeçalho combinado na entrada, e receba tudo assinado em HMAC do nosso lado para conferir na chegada.
Como funciona
Três passos, e o único que exige atenção é o terceiro.
Crie a rota
Recebe um URL público, com um segredo embutido, só seu.
Aponte o disparo para ela
No painel de quem envia, cole o URL onde hoje está o do seu servidor.
Escreva o mapeamento
Um JSON com chaves entre chaves para os valores que chegam. A prévia mostra o resultado enquanto você digita.
O mapeamento é um JSON com buracos
Você escreve o corpo que o SEU sistema espera e marca com chaves os lugares onde entra o que chegou. A prévia roda no navegador, então ela responde enquanto você digita.
O que chega
{
"event": "charge.paid",
"data": {
"id": "ch_9f2",
"amount": 14990,
"customer": { "name": "Ana Ribeiro" }
}
}O seu template
{
"pedido": "{data.id}",
"valor": "{data.amount}",
"cliente": "{data.customer.name}",
"observacao": "{data.note}",
"recebido_em": "{_received_at}"
}O que sai
{
"pedido": "ch_9f2",
"valor": "14990",
"cliente": "Ana Ribeiro",
"observacao": "",
"recebido_em": "2026-08-28T03:14:07Z"
}As três regras que evitam a maioria dos enganos
Ponto desce um nível
Para chegar num campo aninhado você escreve o caminho com ponto. Não há segunda sintaxe para aprender.
Campo que não veio sai vazio
O encaminhamento não falha por causa de um campo faltando: o lugar dele sai vazio e o resto entrega.
Lista não é achatada
Uma lista chega inteira, como JSON, no lugar onde a pediu. O índice de um array não é estável entre um disparo e o outro — um template que aponta para o primeiro item acerta no teste e falha em produção.
Dois campos que ninguém disparou, e que pode usar
{_raw}O corpo recebido inteiro, para quem quer reencaminhar sem reescrever nada.
{_received_at}O instante em que a chamada chegou — que o destino quase nunca tem como saber sozinho.
O sublinhado à frente existe para não colidirem com um campo de igual nome vindo de quem disparou.
Como você sabe que fomos nós
Tudo que sai daqui pode ir assinado. Você confere a assinatura na chegada e descarta o que não bater — é o que separa um webhook seu de qualquer um que descobriu o seu endereço.
HMAC SHA-256 no cabeçalho
A assinatura vai em um cabeçalho fixo, calculada sobre o corpo exato que sai. Mesmo esquema do callback de workflow: quem já integrou com um, não escreve a conferência duas vezes.
A entrada também é protegida
A URL que recebe já vem com um segredo embutido, e você pode exigir um cabeçalho combinado. Quem não souber os dois não entra.
GET assina o vazio
Requisição sem corpo assina string vazia dos dois lados. É a divergência clássica — um lado assinando nada, o outro assinando chaves — e ela está resolvida na origem.
O que ele aceita nas duas pontas
A entrada acompanha quem dispara. A saída acompanha o seu sistema. As duas não precisam combinar.
| O que | Na entrada | Na saída |
|---|---|---|
| Método | POST, GET, PUT ou PATCH | POST, GET, PUT ou PATCH |
| Onde vai o conteúdo | Corpo ou querystring, como chegar | Corpo ou querystring, como você escolher |
| Cabeçalhos | Exija os que quiser | Monte os que o destino pedir |
| Assinatura | Segredo na URL | HMAC SHA-256, opcional |
DELETE não está na lista, e é de propósito
Webhook é notificação: quem dispara está dizendo que algo aconteceu, e os quatro verbos acima são os que carregam conteúdo para descrever o quê. DELETE como gatilho de notificação não existe no campo — oferecê-lo criaria uma combinação que nunca chega.
Não custa nada
O encaminhador não tem plano próprio, não consome saldo e não cobra por disparo. Precisa de conta na APIBrasil, e é só isso.
Grátis com a conta
A mesma conta que você usa para as APIs abre o encaminhador. Não há upgrade a fazer nem produto a contratar.
Não mexe no seu saldo
Encaminhar não é consulta: nada do que passa por aqui aparece na fatura das APIs.
E economiza um servidor
O que isto substitui é um endpoint seu no ar, com domínio, certificado e alguém de prevenção quando ele cair.
A primeira rota leva uns dois minutos
Crie a conta, abra o encaminhador e aponte um disparo de teste. Se o mapeamento estiver certo, você vê o resultado antes de salvar.
Grátis com conta APIBrasil.
Registo sem cartão. Sem período de fidelização: cancele quando quiser.

