Pular para o conteúdo principal

idworks API

Bem-vindo à referência da API pública idworks. Esta documentação descreve todos os endpoints, parâmetros, respostas e códigos de erro disponíveis para integradores.

Baixar a API (Postman & OpenAPI)​

Para testar e integrar mais rápido, baixe os artefatos da API — todos gerados a partir desta mesma documentação (sempre em sincronia com os endpoints publicados):

  • 📥 Collection do Postman — no Postman: Import → Upload. Vem com as 764 requisições já organizadas por categoria.
  • 📄 Spec OpenAPI — YAML · JSON. Útil para gerar SDKs, importar no Insomnia ou no próprio Postman.

:::tip Configure a sua conta Depois de importar, ajuste a variável AccountName da collection (padrão teste) para o nome da sua conta — ex.: acme faz a URL base virar https://acme.api-idworks.com.br/1.0/. :::

Autenticação​

Todas as requisições, exceto o próprio login, devem incluir o header Authorization: Bearer <token>. O token JWT é obtido no login, POST /user/signin/local, com email (e-mail de login, CPF ou CNPJ) e password no corpo, e volta no campo token da resposta. Se o usuário tiver a verificação em duas etapas habilitada, a primeira resposta não traz token (traz MFAEnabled: true) e o login é refeito com o código em mfacode. Por padrão o token vale 14 horas; para outra validade, envie expireinhour de 1h a 24h (ex.: 12h). Veja Segurança do token.

curl -H "Authorization: Bearer SEU_TOKEN" \
https://{AccountName}.api-idworks.com.br/1.0/account

Várias respostas trazem um link para baixar um arquivo: XML e DANFE de notas, etiquetas, anexos de contas a pagar e a receber, templates de planilha. Esses links não trazem mais o token embutido (mudança de 16/10/2026, veja o changelog). Para baixar, faça um GET no link com o mesmo header Authorization das demais chamadas:

curl -H "Authorization: Bearer SEU_TOKEN" -o nota.xml \
"https://{AccountName}.api-idworks.com.br/1.0/invoice/danfe?Folder=Inbound&Type=XML&Origin=Feed&File={chave-acesso}"
OperaçãoCampos com linkComo baixar
GET /purchase/{idpurchase}UrlFileXml, UrlFileDanfe, Payments[].Files[].FileUrlLink + header Authorization
GET /purchase/feed · PUT /purchase/feed/{idnfevents} · POST /purchase/feed/{idnfevents}/manifestXmlFile, XmlDanfeLink + header Authorization
GET /invoice-service/{idserviceorder}UrlFileXml, UrlFileDanfeLink + header Authorization
GET /invoice-service/feedXmlFile, XmlDanfeLink + header Authorization
GET /cteXmlFile, XmlDanfeLink + header Authorization
GET /accounts/payable/{idaccountpayable} · GET /accounts/receivable/{idaccountreceivable}Files[].FileUrlLink + header Authorization
PUT /orders/{idorder}/invoice/{nfenumber}UrlFileXml, UrlFileDanfeLink + header Authorization
GET /type/job/typeTemplateUrl (quando o template é servido pela API)Link + header Authorization
GET /supplier/{idsupplier}CarrierTableUpload[].UrlFileURL pré-assinada do S3, válida por 2 horas: abra direto, sem o header
GET /orders/{idorder}Packages[].UrlLabel, Packages[].UrlLabelDownload, Files[].UrlFileXml, Files[].UrlFileDanfe, Files[].UrlFileDanfeSimplificadoCom token por padrão (abre direto). Com ?UrlToken=0 os links saem sem o token: link + header Authorization

:::warning Prefira o header ao parâmetro token As rotas de download ainda aceitam o token no parâmetro token da URL, mas a query string fica em log, histórico do navegador e cabeçalho Referer. Se a sua integração hoje abre o link recebido sem enviar o header, passe a enviar o Authorization: funciona antes e depois da mudança. :::

URL base​

Cada cliente acessa a API por um subdomínio próprio derivado do nome da sua conta:

https://{AccountName}.api-idworks.com.br/1.0/

Substitua {AccountName} pelo nome da sua conta idworks (ex: se sua conta é acme, a URL fica https://acme.api-idworks.com.br/1.0/).

Erros de autenticação e autorização​

Estes códigos podem aparecer em qualquer endpoint autenticado e são emitidos pelo gateway/autorizador antes do handler ser executado — por isso não são repetidos na documentação de cada operação:

  • 401 Unauthorized — falha de autenticação no autorizador da API. O header Authorization está ausente, malformado, ou o JWT é inválido, expirado ou não corresponde ao subdomínio (AccountName) da URL. Corrija o token e refaça a requisição.
  • 403 Forbidden — o token é válido mas o usuário não tem privilégio para a operação solicitada. Verifique os perfis de acesso do usuário no produto (Configurações → Perfis de Acesso).

O corpo segue o formato { "errorMessage": "<prefixo> ...mensagem..." } descrito em Formato de erro (ver convenções abaixo).

Rate limits​

O limite padrão é de 5 requisições/segundo por endpoint por conta. Respostas excedendo o limite retornam 429 Too Many Requests com o header Retry-After.

Como navegar​

Use a barra lateral à esquerda para explorar os recursos. Cada endpoint mostra parâmetros, exemplos de request/response e um botão Send API Request para testar diretamente do navegador.

:::tip Testando a API direto do navegador No painel direito de cada endpoint, clique em Edit ao lado da Base URL para trocar AccountName pelo nome da sua conta (ou mantenha teste para usar a conta de demonstração). Cole o JWT no campo Auth e clique Send API Request. :::