valore
API v1
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 attempts no 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

CodeHTTPDescrição
UNAUTHORIZED401API key ausente ou inválida
FORBIDDEN403Escopo insuficiente ou módulo desabilitado
NOT_FOUND404Recurso não encontrado
VALIDATION_ERROR400Payload ou parâmetros inválidos
CONFLICT409Conflito (ex.: código duplicado)
RATE_LIMITED429Limite de requisições excedido
INTERNAL_ERROR500Erro interno

Geral

GET/api/v1/health

Health 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"]
  }
}