1. Tenha uma conta
A API usa os dados de uma empresa cadastrada no DRDiM Nexus. Crie a conta ou peça acesso ao cliente que você vai integrar.
Uma API REST para o seu software conversar com o DRDiM Nexus: emita NF-e e NFS-e, receba o IBS e a CBS de cada nota, baixe o XML e o DANFE e sincronize produtos e clientes, tudo em JSON.
Não há cadastro separado de desenvolvedor: a integração usa uma chave criada dentro da empresa no DRDiM Nexus.
A API usa os dados de uma empresa cadastrada no DRDiM Nexus. Crie a conta ou peça acesso ao cliente que você vai integrar.
No menu API & Integrações, em Chaves de API, crie uma chave para a integração e marque só as permissões de que ela precisa.
Envie as duas chaves nos cabeçalhos X-Public-Key e X-Secret-Key. A resposta vem em JSON.
Cada integração recebe uma chave pública e uma chave secreta. As duas vão nos cabeçalhos; não há login, sessão nem token para renovar.
https://saas.drdimtecnologia.com.br/api/v1X-Public-KeyIdentifica a integração. Começa com pk_.X-Secret-KeyAutentica a requisição. Começa com sk_ e deve ficar só no seu servidor.produtos.read ou clientes.create. A chave só acessa o que foi marcado ao criá-la.curl "https://saas.drdimtecnologia.com.br/api/v1/clientes" \ -H "X-Public-Key: pk_sua_chave_publica" \ -H "X-Secret-Key: sk_sua_chave_secreta" \ -H "Accept: application/json"
Todos os caminhos partem de https://saas.drdimtecnologia.com.br/api/v1. A coluna Permissão mostra o que a chave precisa ter para usar a rota.
Catálogo de produtos da empresa: consulta, cadastro e sincronização em lote.
| Método | Caminho | O que faz | Permissão |
|---|---|---|---|
| GET | /produtos | Lista paginada, com busca por nome, referência ou código de barras | produtos.read |
| GET | /produtos/{id} | Detalhe de um produto | produtos.read |
| POST | /produtos | Cria um produto | produtos.create |
| PUT | /produtos/{id} | Altera um produto (PATCH também é aceito) | produtos.update |
| DELETE | /produtos/{id} | Exclui um produto | produtos.delete |
| POST | /produtos/sync | Cria ou atualiza vários produtos de uma vez, pela referência | produtos.sync |
Cadastro de clientes, com CPF/CNPJ e endereço.
| Método | Caminho | O que faz | Permissão |
|---|---|---|---|
| GET | /clientes | Lista paginada de clientes | clientes.read |
| GET | /clientes/{id} | Detalhe de um cliente | clientes.read |
| POST | /clientes | Cria um cliente | clientes.create |
| PUT | /clientes/{id} | Altera um cliente | clientes.update |
| DELETE | /clientes/{id} | Exclui um cliente | clientes.delete |
Emissão, cancelamento, consulta e download das notas fiscais da empresa.
| Método | Caminho | O que faz | Permissão |
|---|---|---|---|
| POST | /nfe | Registra a venda e emite a NF-e na SEFAZ | nfe.create |
| POST | /nfe/{id}/transmitir | Transmite de novo uma nota rejeitada, depois de corrigir o cadastro | nfe.create |
| POST | /nfe/{id}/cancelar | Cancela uma nota autorizada (justificativa de 15 caracteres ou mais) | nfe.cancel |
| GET | /nfe | Lista paginada, com filtro por período (data_inicio, data_fim) | nfe.read |
| GET | /nfe/{id} | Detalhe de uma nota, com cliente e itens | nfe.read |
| GET | /nfe/{id}/xml | Download do XML autorizado | nfe.read |
| GET | /nfe/{id}/pdf | Download do DANFE em PDF | nfe.read |
Notas fiscais de serviço pelo Sistema Nacional da NFS-e (gov.br/nfse): emissão, cancelamento, consulta, XML e PDF.
| Método | Caminho | O que faz | Permissão | Situação |
|---|---|---|---|---|
| POST | /nfse | Registra a nota de serviço e transmite ao Sistema Nacional | nfse.create | Disponível |
| POST | /nfse/{id}/transmitir | Transmite de novo uma nota rejeitada, depois de corrigir o cadastro | nfse.create | Disponível |
| GET | /nfse | Lista paginada, com filtro por estado e período | nfse.read | Disponível |
| GET | /nfse/{id} | Detalhe de uma nota, com o serviço | nfse.read | Disponível |
| POST | /nfse/{id}/cancelar | Cancela uma nota autorizada (justificativa de 15 caracteres ou mais) | nfse.cancel | Disponível |
| GET | /nfse/{id}/xml | Download do XML autorizado | nfse.read | Disponível |
| GET | /nfse/{id}/pdf | Download do PDF da nota (DANFSe) | nfse.read | Disponível |
O POST /nfe registra a venda no DRDiM Nexus, baixa o estoque e transmite a nota à SEFAZ. A tributação vem do cadastro de cada produto e da natureza de operação; o seu sistema só informa cliente, itens e pagamento.
curl -X POST "https://saas.drdimtecnologia.com.br/api/v1/nfe" \
-H "X-Public-Key: pk_sua_chave_publica" \
-H "X-Secret-Key: sk_sua_chave_secreta" \
-H "Content-Type: application/json" \
-d '{
"cliente_id": 318,
"itens": [
{ "produto_id": 120, "quantidade": 2, "valor_unitario": 49.90 },
{ "produto_id": 119, "quantidade": 1, "valor_unitario": 39.90 }
],
"desconto": 9.70,
"tipo_pagamento": "15",
"observacao": "Pedido 4471 da loja"
}'
{
"success": true,
"message": "NFe emitida com sucesso",
"data": {
"id": 9041,
"numero": 1532,
"serie": 1,
"chave": "3526...0015",
"estado": "aprovado",
"xml": "https://saas.drdimtecnologia.com.br/api/v1/nfe/9041/xml",
"pdf": "https://saas.drdimtecnologia.com.br/api/v1/nfe/9041/pdf",
"ibs_cbs": {
"base_calculo": 130.00,
"aliquota_ibs": 0.10, "valor_ibs": 0.13,
"aliquota_cbs": 0.90, "valor_cbs": 1.17,
"valor_total": 1.30
}
}
}
cliente_id e itensObrigatórios. O cliente precisa ter cidade cadastrada; cada item leva produto_id, quantidade e valor_unitario.tipo_pagamentoCódigo do meio de pagamento da NF-e: 01 dinheiro, 03 crédito, 04 débito, 15 boleto, 17 PIX.ibs_cbs na respostaBase, alíquotas e valores de IBS e CBS da nota. Vem null quando a empresa está no regime simplificado. O XML da nota ainda não destaca IBS/CBS.POST /nfseEnvie cliente_id, servico_id, valor_servico e discriminacao. O tomador vem do cadastro do cliente.422, com o motivo em data.erro e a venda salva em data.id. Corrija o cadastro e chame POST /nfe/{id}/transmitir.
O POST /produtos/sync recebe uma lista e decide sozinho: cria o produto se a referencia ainda não existe, atualiza se já existe. Cada item precisa de referencia, nome e valor_venda.
curl -X POST "https://saas.drdimtecnologia.com.br/api/v1/produtos/sync" \
-H "X-Public-Key: pk_sua_chave_publica" \
-H "X-Secret-Key: sk_sua_chave_secreta" \
-H "Content-Type: application/json" \
-d '{
"produtos": [
{ "referencia": "CAM-001", "nome": "Camiseta básica", "valor_venda": 49.90 },
{ "referencia": "BON-014", "nome": "Boné aba reta", "valor_venda": 39.90 }
]
}'
const resposta = await fetch('https://saas.drdimtecnologia.com.br/api/v1/produtos/sync', {
method: 'POST',
headers: {
'X-Public-Key': process.env.DRDIM_PUBLIC_KEY,
'X-Secret-Key': process.env.DRDIM_SECRET_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
produtos: [
{ referencia: 'CAM-001', nome: 'Camiseta básica', valor_venda: 49.90 },
{ referencia: 'BON-014', nome: 'Boné aba reta', valor_venda: 39.90 },
],
}),
});
const { data } = await resposta.json();
console.log(data.criados, 'criados,', data.atualizados, 'atualizados');
Toda resposta em JSON traz success. Quando dá certo, o conteúdo vem em data; quando falha, message explica o motivo.
{
"success": true,
"message": "Sincronização concluída",
"data": { "criados": 1, "atualizados": 1, "erros": [] }
}
{
"success": false,
"message": "Dados inválidos",
"errors": { "produtos.0.valor_venda": ["O campo valor_venda é obrigatório."] }
}
| 401 | Chaves ausentes, chave pública inválida ou chave secreta inválida |
| 403 | Chave inativa ou expirada, ou sem permissão para o recurso |
| 404 | Registro não encontrado na empresa da chave |
| 409 | A nota não está no estado que a operação exige (ex.: cancelar nota não autorizada) |
| 422 | Dados inválidos (errors lista cada campo) ou nota rejeitada pela SEFAZ (data.erro traz o motivo) |
| 500 | Erro interno ao processar a requisição |
per_pageItens por página nas listagens. O padrão é 50 e o máximo é 100. Use page para avançar.searchEm produtos, busca por nome, referência ou código de barras.data_inicio e data_fimEm NF-e, filtram pela data da venda.As duas chaves vão juntas em toda requisição. Guarde-as no backend, nunca em app, site ou repositório.
Cada chave tem a sua lista de permissões, por recurso e por ação. Uma integração de consulta não precisa poder excluir.
Uma chave por integração: dá para desativar ou regenerar uma delas sem afetar as outras.
A chave pertence a uma empresa e só enxerga os dados dela. O painel mostra a data e o IP do último uso.
Crie a conta, gere a sua chave em API & Integrações e faça a primeira chamada ainda hoje.