Documentação pública
Valore — Loja de API
Referência para integração ERP ↔ Valore. Todas as rotas usam o prefixo /api/v1 e exigem API key do tenant (feature api_integrations).
Autenticação
Envie a chave em um dos formatos abaixo. A chave é exibida apenas uma vez na criação.
Header Bearer (recomendado)
Authorization: Bearer valore_sua_chave_aqui
Header alternativo
X-Api-Key: valore_sua_chave_aqui
Respostas de sucesso: { "data": { ... } }
Erros: { "error": "...", "code": "FORBIDDEN" }
Outbound Valore → ERP (Idempotency-Key)
Chamadas do Valore ao ERP (pedidos e contratos) enviam o header Idempotency-Key. A chave é estável por tenant + ação + entidade (SHA-256). Reenvios do monitor reutilizam a mesma chave para o ERP deduplicar (ex.: pedido já criado no SAP).
Header enviado pelo Valore
Idempotency-Key: <sha256(company_id:action:entity_id)>
Corpo JSON típico (purchase_order.create)
{
"action": "purchase_order.create",
"entity": "purchase_orders",
"entity_id": "uuid",
"entity_code": "PO-2026-0001",
"data": {
"code": "PO-2026-0001",
"external_code": null,
"status": "processing",
"organization": {
"company_code": null,
"purchasing_organization": null,
"purchasing_group": null,
"purchase_order_type": null,
"currency": "BRL"
},
"supplier": {
"code": "FORN-001",
"name": "Fornecedor A",
"cnpj": "12.345.678/0001-90"
},
"payment": {
"terms_code": null,
"terms_description": "30 DDL"
},
"references": {
"quotation_code": "COT-2026-0036",
"requisition_code": "REQ-2026-0010"
},
"delivery": {
"days": 15,
"estimated_date": "2026-09-10",
"address": "Av. Exemplo, 100"
},
"totals": { "amount": 1250.0, "currency": "BRL" },
"items": [{
"line_number": 1,
"material_code": "MAT-001",
"quantity": 100,
"unit_of_measure": "UN",
"unit_price": 12.5,
"total_price": 1250.0,
"account_assignments": []
}]
}
}- Cada tentativa incrementa o contador
attemptsno log. - Despachos concorrentes para a mesma entidade são bloqueados (HTTP 409 no Valore).
- O ERP deve tratar a mesma chave como a mesma operação de negócio.
Códigos de erro
| Code | HTTP | Descrição |
|---|---|---|
| UNAUTHORIZED | 401 | API key ausente ou inválida |
| FORBIDDEN | 403 | Escopo insuficiente ou módulo desabilitado |
| NOT_FOUND | 404 | Recurso não encontrado |
| VALIDATION_ERROR | 400 | Payload ou parâmetros inválidos |
| CONFLICT | 409 | Conflito (ex.: código duplicado) |
| RATE_LIMITED | 429 | Limite de requisições excedido |
| INTERNAL_ERROR | 500 | Erro interno |
Geral
GET
/api/v1/healthHealth check
Valida a API key, a feature api_integrations do tenant e retorna metadados da chave.
Exemplo de response
200 OK
{
"data": {
"status": "ok",
"company_id": "00000000-0000-0000-0000-000000000001",
"scopes": ["items:read", "orders:read"]
}
}