Webhooks e eventos
Catálogo de eventos de domínio do OSBPulse, payloads e o modelo de entrega HTTP outbound.
O Pulse emite eventos de domínio quando algo relevante acontece na organização (oportunidade ganha, pedido fechado, pagamento na loja, etc.). Esses eventos alimentam:
- Automação (regras if/then dentro do produto) — vários eventos já estão disponíveis
- Webhooks outbound (HTTP POST para a URL da sua aplicação) — planejados; ainda não implementados
A tabela abaixo é a projeção pública do registro canônico de eventos. Cada payload possui versão de schema; uma mudança incompatível exige novo ID/versão.
Modelo de entrega (webhook outbound)
Quando o módulo Plataforma estiver ativo na organização:
- Você cadastra um endpoint (URL HTTPS) e escolhe quais eventos deseja receber.
- Em cada evento inscrito, o Pulse enfileira um
POSTJSON para a sua URL. - A requisição inclui assinatura HMAC (cabeçalhos
X-Pulse-SignatureeX-Pulse-Timestamp) para você validar a origem. - Falhas temporárias são retentadas de forma assíncrona; use o identificador do evento para garantir idempotência no seu lado.
Esta seção descreve o contrato planejado. A UI de endpoints, assinatura HMAC e entrega HTTP ainda não existem. O catálogo abaixo já é usado internamente e, onde indicado, na Automação.
Formato previsto do corpo
{
"id": "evt_…",
"trigger": "sales.opportunity.won",
"schema_version": 1,
"organization_id": 123,
"occurred_at": "2026-08-03T18:00:00.000Z",
"entity_type": "sales_opportunity",
"entity_id": 456,
"data": { }
}
O objeto data segue os campos listados por evento (notação ponto na documentação = caminhos no JSON).
Webhooks de entrada (provedores de pagamento)
Além dos eventos do Pulse para o seu sistema, a loja online e a cobrança bancária recebem callbacks dos provedores (Stripe, Mercado Pago, etc.) em rotas internas do Pulse. Esses endpoints são configurados na integração do módulo — não fazem parte do catálogo abaixo.
Catálogo
A listagem detalhada (domínio, disponibilidade e campos) é renderizada nesta página a partir do catálogo oficial do produto.
Vendas
| Evento | Descrição | Emissão | Automação | Webhook |
|---|---|---|---|---|
sales.opportunity.createdschema v1Oportunidade — Criada | Uma oportunidade foi criada no funil. Campos do payload: opportunity.id, opportunity.des_title, opportunity.num_value, opportunity.id_user_owner, opportunity.id_stage_from, opportunity.id_stage_to, client.des_name, client.id, opportunity.id_loss_reason, client_suffix | Emitido hoje | Sim | Webhook em breve |
sales.opportunity.stage_changedschema v1Oportunidade — Mudou de estágio | A oportunidade mudou de estágio no funil. Campos do payload: opportunity.id, opportunity.des_title, opportunity.num_value, opportunity.id_user_owner, opportunity.id_stage_from, opportunity.id_stage_to, client.des_name, client.id, opportunity.id_loss_reason, client_suffix | Emitido hoje | Sim | Webhook em breve |
sales.opportunity.wonschema v1Oportunidade — Ganha | A oportunidade foi marcada como ganha. Campos do payload: opportunity.id, opportunity.des_title, opportunity.num_value, opportunity.id_user_owner, opportunity.id_stage_from, opportunity.id_stage_to, client.des_name, client.id, opportunity.id_loss_reason, client_suffix, bol_notify_team, bol_notify_managers | Emitido hoje | Sim | Webhook em breve |
sales.opportunity.lostschema v1Oportunidade — Perdida | A oportunidade foi marcada como perdida. Campos do payload: opportunity.id, opportunity.des_title, opportunity.num_value, opportunity.id_user_owner, opportunity.id_stage_from, opportunity.id_stage_to, client.des_name, client.id, opportunity.id_loss_reason, client_suffix, bol_notify_team, bol_notify_managers | Emitido hoje | Sim | Webhook em breve |
Comercial
| Evento | Descrição | Emissão | Automação | Webhook |
|---|---|---|---|---|
commercial.order.closedschema v1Pedido — Fechado | Um pedido comercial foi fechado. Campos do payload: order.id, order.num_total, client.id, client.des_name | No catálogo (emissão em alinhamento) | Sim | Webhook em breve |
RH
| Evento | Descrição | Emissão | Automação | Webhook |
|---|---|---|---|---|
hr.employee.createdschema v1Funcionário — Cadastrado | Um funcionário foi cadastrado (wizard, criação rápida ou importação). Campos do payload: employee.id, employee.des_name, employee.dta_admission, employee.num_employment_type, employee.num_status, employee.id_hr_department, employee.id_hr_job_title, employee.id_employee_manager, employee.id_user, employee.id_user_manager, employee.des_department_name, employee.des_job_title_name, employee.num_salary, employee.bol_user_created | Emitido hoje | Sim | Webhook em breve |
Comércio Exterior
| Evento | Descrição | Emissão | Automação | Webhook |
|---|---|---|---|---|
comex.process.createdschema v1Processo — Criado | Um processo de importação foi criado. Campos do payload: process.id, process.des_description, process.des_process_number, process.num_number, process.num_year | Emitido hoje | Sim | Webhook em breve |
comex.stage.changedschema v1Etapa — Alterada | A etapa atual de um processo Comex avançou. Campos do payload: process.id, process.des_process_number, stage_from.id, stage_from.des_name, stage_to.id, stage_to.des_name | Emitido hoje | Sim | Webhook em breve |
comex.pending.openedschema v1Pendência — Aberta | Uma pendência foi aberta em um processo Comex. Campos do payload: pending.id, pending.des_title, pending.num_severity, process.id | Emitido hoje | Sim | Webhook em breve |
E-commerce
| Evento | Descrição | Emissão | Automação | Webhook |
|---|---|---|---|---|
ecommerce.order.paidschema v1Pedido loja — Pago | Pedido da loja online confirmado como pago pelo provedor. Campos do payload: order.id, order.num_total, checkout.id, payment.provider | Emitido hoje | Não | Webhook em breve |
Compras
| Evento | Descrição | Emissão | Automação | Webhook |
|---|---|---|---|---|
purchase.requisition.submittedschema v1Requisição — Enviada | Uma requisição de compra foi enviada para o time de compras. Campos do payload: requisition.id, requisition.des_code, requisition.id_user_requester | Emitido hoje | Sim | Webhook em breve |
purchase.quote.approvedschema v1Cotação — Aprovada | Uma cotação de compra foi aprovada e pode gerar pedido. Campos do payload: quote.id, quote.des_code, quote.num_amount_total | Emitido hoje | Sim | Webhook em breve |