API REST - Quickstart
A API REST do iDempiere permite integração com sistemas externos para consulta e manipulação de dados do ERP.
Documentação Oficial
A documentação completa, collections do Postman e especificações estão mantidas pelo projeto iDempiere:
- Docs: https://bxservice.github.io/idempiere-rest-docs
- Repositório: https://github.com/bxservice/idempiere-rest
URL Base
https://{seu-ambiente}.api.devco.cloud
Acesso à API
A API REST pode não estar disponível em todos os planos ou ambientes. Caso não possua as credenciais de acesso ou esteja recebendo erros de permissão, entre em contato com o time comercial para verificar a disponibilidade e valores para seu contrato.
Autenticação
Todas as requisições exigem um token JWT no header Authorization: Bearer {token}.
Docs completa: Authentication
Apenas papéis com Role Type configurado como WebService (ou em branco) são permitidos para autenticação via API.
One-Step Login (recomendado para integrações)
Se você já conhece os parâmetros de sessão (client, role, organization), use o login direto em uma única chamada:
curl -X POST "https://{seu-ambiente}.api.devco.cloud/api/v1/auth/tokens" \
-H "Content-Type: application/json" \
-d '{
"userName": "seu_usuario",
"password": "sua_senha",
"parameters": {
"clientId": 11,
"roleId": 1000000,
"organizationId": 1000001,
"warehouseId": 1000000,
"language": "pt_BR"
}
}'
A resposta já retorna o token final pronto para uso nas requisições.
Normal Login Flow (3 etapas)
Útil quando você não conhece os IDs de client/role/organization, ou precisa apresentar opções ao usuário. Espelha o fluxo de login da interface do iDempiere.
Etapa 1 — Autenticação inicial: retorna um token temporário e a lista de clients disponíveis.
curl -X POST "https://{seu-ambiente}.api.devco.cloud/api/v1/auth/tokens" \
-H "Content-Type: application/json" \
-d '{"userName": "seu_usuario", "password": "sua_senha"}'
Etapa 2 — Consultar opções de sessão: use o token temporário da etapa 1 para descobrir roles, organizations e warehouses disponíveis.
# Roles disponíveis
curl -X GET "https://{seu-ambiente}.api.devco.cloud/api/v1/auth/roles?client=11" \
-H "Authorization: Bearer {token_temporario}"
# Organizations disponíveis
curl -X GET "https://{seu-ambiente}.api.devco.cloud/api/v1/auth/organizations?client=11&role=1000000" \
-H "Authorization: Bearer {token_temporario}"
# Warehouses disponíveis
curl -X GET "https://{seu-ambiente}.api.devco.cloud/api/v1/auth/warehouses?client=11&role=1000000&organization=1000001" \
-H "Authorization: Bearer {token_temporario}"
Etapa 3 — Obter o token definitivo: com os parâmetros escolhidos, faça um PUT para obter o token final.
curl -X PUT "https://{seu-ambiente}.api.devco.cloud/api/v1/auth/tokens" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token_temporario}" \
-d '{
"clientId": 11,
"roleId": 1000000,
"organizationId": 1000001,
"warehouseId": 1000000,
"language": "pt_BR"
}'
O token retornado nesta etapa é o que deve ser usado em todas as requisições subsequentes.
Token Refresh
Os tokens possuem tempo de expiração (padrão: 1h para access token, 24h para refresh token). Para renovar sem refazer login:
curl -X POST "https://{seu-ambiente}.api.devco.cloud/api/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{"refresh_token": "seu_refresh_token", "clientId": 11, "userId": 101}'
Refresh tokens são de uso único. Reutilizar um refresh token já consumido invalida a sessão por segurança.
Server-to-Server
Para integrações server-to-server (service accounts), consulte a documentação oficial.
CRUD Básico - Models
Listar (GET)
Retorna registros da entidade. No exemplo, lista produtos cadastrados (m_product).
curl -X GET "https://{seu-ambiente}.api.devco.cloud/api/v1/models/m_product" \
-H "Authorization: Bearer {token}"
Criar (POST)
Insere um novo registro. Campos obrigatórios variam conforme a entidade e configurações do ERP.
curl -X POST "https://{seu-ambiente}.api.devco.cloud/api/v1/models/m_product" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token}" \
-d '{
"AD_Org_ID": 1000001,
"Name": "Produto Exemplo",
"C_UOM_ID": 100,
"M_Product_Category_ID": 1000000,
"C_TaxCategory_ID": 1000000
}'
Atualizar (PUT)
Atualiza campos de um registro existente. Envie apenas os campos a serem alterados.
curl -X PUT "https://{seu-ambiente}.api.devco.cloud/api/v1/models/m_product/{id}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token}" \
-d '{
"Name": "Produto Atualizado"
}'
Excluir (DELETE)
Remove um registro pelo ID. Restrições de integridade referencial do ERP se aplicam.
curl -X DELETE "https://{seu-ambiente}.api.devco.cloud/api/v1/models/m_product/{id}" \
-H "Authorization: Bearer {token}"
Processos e Relatórios
Docs: Processes
Executa processos e relatórios do ERP. No exemplo, gera o relatório de detalhes de parceiros de negócios (rv_bpartner) em PDF.
curl -X POST "https://{seu-ambiente}.api.devco.cloud/api/v1/processes/rv_bpartner" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token}" \
-d '{
"report-type": "PDF",
"print-format-id": 123456
}'
O print-format-id deve corresponder a um formato de impressão válido configurado no ERP. Consulte a janela Formato de Impressão para obter o ID correto.
Responsabilidades
| Item | dev&Co | Cliente |
|---|---|---|
| Instalação e disponibilização da API REST | ✓ | |
| Infraestrutura, proxy e monitoramento | ✓ | |
| Ajustes de rate limit mediante análise | ✓ | |
| Disponibilidade do serviço | ✓ | |
| Criação de usuários, perfis e permissões | ✓ | |
| Geração e renovação de tokens | ✓ | |
| Desenvolvimento e manutenção da integração | ✓ | |
| Troubleshooting do código/aplicação externa | ✓ |
Limites de Uso
Os rate limits padrão são permissivos para uso normal em produção. Caso nosso monitoramento identifique consumo excessivo, entraremos em contato para alinhamento.
Alguns parâmetros da API não podem ser alterados a nível de empresa. Configurações globais são definidas pela dev&Co visando estabilidade do ambiente compartilhado.
Suporte
Dúvidas sobre a API devem ser direcionadas ao canal de suporte da dev&Co.
Escopo do suporte:
- Orientação básica sobre uso da API
- Dúvidas sobre estruturas e entidades do ERP
Fora do escopo:
- Debug de código em qualquer linguagem
- Suporte a frameworks ou bibliotecas externas
- Desenvolvimento de integrações
Conhecimento das estruturas do ERP (tabelas, janelas, processos) é obrigatório para uso efetivo da API.