Introdução
O que é a OnmIA Integration API, o fluxo OnmIA→ERP, base URL, namespace /integration/v1 e ativação por feature flag.
A OnmIA Integration API v1 é a superfície REST server-to-server para ERPs, PDVs e middlewares integrarem catálogo, estoque, pedidos, fidelidade e webhooks com a plataforma OnmIA. O contrato formal (schemas completos de request/response) vive na API Reference, gerada do OpenAPI.
O fluxo em uma frase
Você empurra catálogo e estoque para a OnmIA, e a OnmIA empurra os pedidos para o seu ERP via webhook assinado. Pedido é unidirecional OnmIA→ERP: o ERP não cria pedidos — ele os recebe.
┌──────────────────── OnmIA ────────────────────┐
│ catálogo público · WhatsApp/IA · dashboard · │
│ iFood → todos geram pedido na OnmIA │
└───────────────────────┬───────────────────────┘
│ webhook order.created (HMAC)
▼
seu ERP ◄──────────────────────────────────────────── recebe pedido completo
│ (cliente, itens, totais)
│ PATCH /stock (estoque é autoridade do ERP)
│ POST /products/bulk (catálogo)
└──────────────────────────────────────────────────► OnmIA- Catálogo e estoque: o ERP é a autoridade. Você envia produtos
(
POST /products/bulk) e o saldo de estoque/preço (PATCH /stock). - Pedidos: nascem na OnmIA em qualquer canal e chegam ao ERP pelo
webhook
order.created. Mudanças de status chegam pororder.status_changed. - Fidelidade: o ERP consulta programa, saldo e extrato, e pode creditar/debitar pontos e validar cupons (Fidelidade).
Base URL
Produção:
https://api.onmia.com.brTodas as rotas vivem sob o namespace versionado:
/integration/v1Ambientes e ativação
Só existe produção
A API v1 existe somente em produção (https://api.onmia.com.br). Não há
ambiente sandbox separado. Os testes acontecem em produção com uma chave de
teste restrita a uma loja de teste.
- A API é protegida por feature flag no servidor. Enquanto o ambiente não
estiver habilitado, toda chamada — inclusive
/health— retorna503 FEATURE_DISABLED. Isso não é problema da sua chave: é o ambiente que ainda não foi ligado pela OnmIA. - A chave de teste tem
store_idslimitado à loja de teste. É o fluxo previsto no runbook de go-live: você valida catálogo, pedido e webhook contra essa loja antes de receber a chave definitiva.
O que a API faz
| Domínio | Rota principal | Scope |
|---|---|---|
| Health / credential check | GET /integration/v1/health | (nenhum) |
| Catálogo | POST /integration/v1/products/bulk | catalog:write |
| Estoque e preço | PATCH /integration/v1/stock | stock:write |
| Pedidos (consulta) | GET /integration/v1/orders | orders:read |
| Webhooks | /integration/v1/webhooks | webhooks:manage |
| Fidelidade (leitura) | GET /integration/v1/loyalty/* | loyalty:read |
| Fidelidade (escrita) | POST /integration/v1/loyalty/* | loyalty:write |
Primeiro teste
O endpoint /health não exige nenhum scope — serve como verificação de
credencial:
curl -sS https://api.onmia.com.br/integration/v1/health \
-H "X-API-Key: $ONMIA_API_KEY"Resposta esperada (200):
{
"status": "ok",
"merchant_id": "b9e9ad81-0000-0000-0000-000000000000",
"store_ids": [],
"scopes": ["catalog:write", "stock:write", "orders:read", "webhooks:manage", "loyalty:read", "loyalty:write"],
"ts": "2026-06-12T12:00:00.000Z"
}store_ids: [] significa todas as lojas do merchant. Quando vier
preenchido, a chave só pode escrever/ler aquelas lojas.
Sequência recomendada de integração
- Criar a chave de integração no painel e chamar
/health(Criar credencial). - Enviar 1 produto com
products/bulke conferirsummary/results. - Ajustar estoque/preço com
PATCH /stock. - Registrar webhook com
events: ["order.created", "order.status_changed"](guardar osecretexibido uma única vez) e chamar/webhooks/{id}/test. - Validar a assinatura HMAC no ERP (raw body + janela de timestamp + compare em tempo constante).
- Gerar um pedido de teste na loja de teste (catálogo, WhatsApp ou lançamento
manual no dashboard) e confirmar o
order.createdcompleto no receptor (cliente, itens comexternal_id, totais). - Mudar o status desse pedido pelo dashboard e confirmar o
order.status_changedno receptor. - Consultar o pedido por
external_order_id/id para validar a reconciliação por leitura. - Validar a fidelidade:
GET /loyalty/balance?phone=de um cliente conhecido e (se aplicável) umPOST /loyalty/pointsidempotente. - Conferir
GET /webhooks/{id}/deliveries(statusdelivered,consecutive_failures: 0) e só então trocar para a chave definitiva.
Onde criar a chave
A chave de API é criada pelo administrador da loja em
app.onmia.com.br → Configurações → Integrações / API. Veja
Criar credencial.