Saltar al contenido principal
APIBrasil

Integración sin servidor

Recibe el webhook de cualquier sistema y entrégalo en el tuyo, en el formato que espera

Te damos una URL. Apunta hacia ella el disparo de quien quieras, escribe el mapeo en una caja de texto, y nosotros entregamos en tu endpoint — firmado, con reintento y sin que levantes nada.

  1. Quien dispara

    recibe

  2. APIBrasil

    reescribe el cuerpo

  3. Tu sistema

    entrega y reintenta

Un webhook entra en un formato, APIBrasil reescribe el cuerpo, y sale en el formato de tu sistema.

Cuándo esto resuelve

Todo caso de abajo es el mismo problema: un sistema avisa de una forma, el otro solo entiende otra.

  • El cobro fue pagado

    La pasarela avisa con sus campos; tu ERP espera los campos que definiste cuando lo escribiste.

  • Salió un pedido en la tienda

    La plataforma dispara un evento enorme, y tu sistema interno solo necesita tres campos de él.

  • El socio solo dispara GET

    Manda todo en la querystring; tu endpoint espera POST con JSON. Ninguno de los dos lados va a cambiar.

  • Necesitas confiar en lo que llega

    Exige una cabecera acordada en la entrada, y recibe todo firmado en HMAC de nuestro lado para verificar en la llegada.

Cómo funciona

Tres pasos, y el único que exige atención es el tercero.

  1. Crea la ruta

    Recibes una URL pública, con un secreto embebido, solo tuya.

  2. Apunta el disparo hacia ella

    En el panel de quien envía, pega la URL donde hoy está la de tu servidor.

  3. Escribe el mapeo

    Un JSON con claves entre llaves para los valores que llegan. La vista previa muestra el resultado mientras escribes.

El mapeo es un JSON con huecos

Escribes el cuerpo que TU sistema espera y marcas entre llaves los lugares donde entra lo que llegó. La vista previa corre en el navegador, así que responde mientras escribes.

Lo que llega

{
  "event": "charge.paid",
  "data": {
    "id": "ch_9f2",
    "amount": 14990,
    "customer": { "name": "Ana Ribeiro" }
  }
}

Tu plantilla

{
  "pedido": "{data.id}",
  "valor": "{data.amount}",
  "cliente": "{data.customer.name}",
  "observacao": "{data.note}",
  "recebido_em": "{_received_at}"
}

Lo que sale

{
  "pedido": "ch_9f2",
  "valor": "14990",
  "cliente": "Ana Ribeiro",
  "observacao": "",
  "recebido_em": "2026-08-28T03:14:07Z"
}

Las tres reglas que evitan la mayoría de los errores

  • El punto baja un nivel

    Para llegar a un campo anidado escribes la ruta con punto. No hay una segunda sintaxis que aprender.

  • Campo que no vino sale vacío

    El reenvío no falla por un campo faltante: su lugar sale vacío y el resto se entrega.

  • Una lista no se aplana

    Una lista llega entera, como JSON, en el lugar donde la pediste. El índice de un array no es estable entre un disparo y otro — una plantilla que apunta al primer elemento acierta en la prueba y falla en producción.

Dos campos que nadie disparó, y que puedes usar

  • {_raw}

    El cuerpo recibido entero, para quien quiere reenviar sin reescribir nada.

  • {_received_at}

    El instante en que llegó la llamada — que el destino casi nunca puede saber solo.

El guion bajo delante existe para no chocar con un campo del mismo nombre venido de quien disparó.

Cómo sabes que fuimos nosotros

Todo lo que sale de aquí puede ir firmado. Verificas la firma en la llegada y descartas lo que no coincida — es lo que separa un webhook tuyo de cualquiera que descubrió tu dirección.

  • HMAC SHA-256 en la cabecera

    La firma va en una cabecera fija, calculada sobre el cuerpo exacto que sale. Mismo esquema del callback de workflow: quien ya integró con uno, no escribe la verificación dos veces.

  • La entrada también está protegida

    La URL que recibe ya viene con un secreto embebido, y puedes exigir una cabecera acordada. Quien no sepa las dos cosas no entra.

  • GET firma el vacío

    Una petición sin cuerpo firma cadena vacía de los dos lados. Es la divergencia clásica — un lado firmando nada, el otro firmando llaves — y está resuelta en el origen.

Qué acepta en las dos puntas

La entrada acompaña a quien dispara. La salida acompaña a tu sistema. Las dos no necesitan coincidir.

QuéEn la entradaEn la salida
MétodoPOST, GET, PUT o PATCHPOST, GET, PUT o PATCH
Dónde va el contenidoCuerpo o querystring, como llegueCuerpo o querystring, como elijas
CabecerasExige las que quierasArma las que el destino pida
FirmaSecreto en la URLHMAC SHA-256, opcional

DELETE no está en la lista, y es a propósito

Un webhook es una notificación: quien dispara está diciendo que algo pasó, y los cuatro verbos de arriba son los que llevan contenido para describir el qué. DELETE como disparador de notificación no existe en el campo — ofrecerlo crearía una combinación que nunca llega.

No cuesta nada

El reenviador no tiene plan propio, no consume saldo y no cobra por disparo. Necesita cuenta en APIBrasil, y es todo.

  • Gratis con la cuenta

    La misma cuenta que usas para las APIs abre el reenviador. No hay upgrade que hacer ni producto que contratar.

  • No toca tu saldo

    Reenviar no es una consulta: nada de lo que pasa por aquí aparece en la factura de las APIs.

  • Y ahorra un servidor

    Lo que esto sustituye es un endpoint tuyo en el aire, con dominio, certificado y alguien de guardia cuando se caiga.

La primera ruta lleva unos dos minutos

Crea la cuenta, abre el reenviador y apunta un disparo de prueba. Si el mapeo está bien, ves el resultado antes de guardar.

Gratis con cuenta APIBrasil.

Registro sin tarjeta. Sin contrato de permanencia: cancele cuando quiera.