Saltar para o conteúdo principal
APIBrasil

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.

  1. Quem dispara

    recebe

  2. APIBrasil

    reescreve o corpo

  3. Seu sistema

    entrega e volta a tentar

Um webhook entra num formato, a APIBrasil reescreve o corpo, e ele sai no formato do seu sistema.

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.

  1. Crie a rota

    Recebe um URL público, com um segredo embutido, só seu.

  2. Aponte o disparo para ela

    No painel de quem envia, cole o URL onde hoje está o do seu servidor.

  3. 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 queNa entradaNa saída
MétodoPOST, GET, PUT ou PATCHPOST, GET, PUT ou PATCH
Onde vai o conteúdoCorpo ou querystring, como chegarCorpo ou querystring, como você escolher
CabeçalhosExija os que quiserMonte os que o destino pedir
AssinaturaSegredo na URLHMAC 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.