Integração sem servidor
Receba o webhook de qualquer sistema e entregue no seu, no formato que ele espera
Damos uma URL. Você aponta para ela o disparo de quem quiser, escreve o mapeamento numa caixa de texto, e nós entregamos no seu endpoint — assinado, com retentativa e sem você subir nada.
Quem dispara
recebe
APIBrasil
reescreve o corpo
Seu sistema
entrega e retenta
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 gordo, 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
Você recebe uma URL pública, com um segredo embutido, só sua.
Aponte o disparo para ela
No painel de quem envia, cole a URL onde hoje está a 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 você a pediu. Índice de array não é estável entre um disparo e o outro — um template que aponta para o primeiro item acerta no teste e erra em produção.
Dois campos que ninguém disparou, e que você pode usar
{_raw}O corpo recebido inteiro, para quem quer repassar sem reescrever nada.
{_received_at}O instante em que a chamada chegou — que o destino quase nunca tem como saber sozinho.
O sublinhado na frente existe para não colidirem com um campo de mesmo 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 plantã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.
Cadastro sem cartão. Sem fidelidade: cancele quando quiser.

