API do LYMOS ERP
Consulte os dados do seu ERP no seu site, no CRM, em planilhas, no n8n ou no Make: produtos e estoque, clientes, pedidos de venda e de delivery e notas de serviço. A API é só de leitura: não existe rota para criar ou alterar nada, nem aviso automático (webhook) do ERP.
Primeiros passos
- No ERP, abra Configurações > Integrações. É preciso a permissão "Gerenciar integrações", que por padrão é só do dono.
- Dê um nome ao token, marque o que ele pode ler e escolha a validade. Copie na hora: ele aparece uma vez só.
- Use a URL base
https://app.lymos.com.br/api/v1/integracaocom o cabeçalhoAuthorization: Bearer SEU_TOKENe teste:
curl 'https://app.lymos.com.br/api/v1/integracao/perfil' -H 'Authorization: Bearer SEU_TOKEN'Respostas em JSON. Datas em ISO 8601, valores em reais com ponto decimal, telefones só com dígitos ou com máscara na busca.
Integrar com IA (ChatGPT, Claude, Gemini, Cursor)
A documentação inteira está num arquivo pensado para IA: https://lymos.com.br/api-erp-llms.txt. Cole este pedido na sua IA e troque o trecho entre colchetes:
Quero consultar os dados do meu LYMOS ERP no meu sistema. Leia a documentação completa em https://lymos.com.br/api-erp-llms.txt (é a referência oficial da API de leitura do ERP) e me ajude a: [descreva aqui, ex.: "mostrar o preço e o estoque de um produto quando o cliente perguntar no WhatsApp"]. Use o token pela variável de ambiente LYMOS_ERP_TOKEN e nunca o escreva no código.Autenticação
Toda chamada leva o token no cabeçalho Authorization: Bearer <token>. Cada token é de uma empresa e só enxerga os dados dela. Guarde o token numa variável de ambiente e nunca o coloque em site, aplicativo ou código que roda no navegador. Crie um token por sistema, com validade de 90 dias ou 1 ano: assim você revoga um sem derrubar os outros. A empresa pode ter até 10 tokens ativos, e revogar na tela corta o acesso na hora.
| Escopo | Libera |
|---|---|
produtos:ler | Produtos e estoque disponível. |
clientes:ler | Clientes. |
pedidos:ler | Pedidos de venda e de delivery. Mostra também o nome do cliente do pedido e, no delivery, o telefone. |
nfse:ler | Notas de serviço. Mostra também o nome do tomador. |
Convenções
| Tema | Como funciona |
|---|---|
| Lista | { "data": [...], "meta": { "pagina", "por_pagina", "total", "ultima_pagina" } } |
| Detalhe | { "data": {...} } |
| Paginação | ?pagina=2&por_pagina=50. Padrão 25, máximo 100. Percorra até ultima_pagina. |
| Sincronização | ?atualizado_desde= em produtos e clientes devolve só o que mudou. |
| Datas | atualizado_desde aceita AAAA-MM-DD ou ISO 8601. Os demais filtros de data aceitam só AAAA-MM-DD. |
| Limites | 120 requisições por minuto por token e 600 por minuto por IP. Excedeu: 429 com Retry-After. |
| Módulos | Pedidos de venda dependem do módulo Comércio, delivery do módulo Food e notas de serviço de Comércio, Oficina ou CellTECH. Veja os recursos do seu plano em GET /perfil. |
Conexão
GET/perfilTestar a conexão
Escopo: qualquer. Módulo do plano: nenhum.
Mostra a empresa dona do token, os escopos dele e quais recursos o plano do ERP oferece. Funciona com qualquer escopo. Use para conferir o token antes de integrar.
| Campo | Tipo | Descrição |
|---|---|---|
empresa | texto | Nome da empresa. |
token | objeto | nome e expira_em do token. |
escopos | lista | O que o token pode ler. |
recursos | objeto | produtos, clientes, pedidos_venda, pedidos_delivery e notas_servico, cada um true ou false. |
curl 'https://app.lymos.com.br/api/v1/integracao/perfil' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/perfil', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/perfil",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]},
)
dados = r.json(){
"data": {
"empresa": "Pizzaria do Zé",
"token": {
"nome": "CRM",
"expira_em": "2027-01-20T00:00:00-03:00"
},
"escopos": [
"produtos:ler",
"clientes:ler",
"pedidos:ler"
],
"recursos": {
"produtos": true,
"clientes": true,
"pedidos_venda": false,
"pedidos_delivery": true,
"notas_servico": false
}
}
}Produtos
GET/produtosListar produtos
Escopo: produtos:ler. Módulo do plano: nenhum.
Produtos com preço de venda e estoque disponível. Por padrão só vêm os ativos. Custo, margem, fornecedor e dados fiscais não saem.
| Campo | Tipo | Descrição |
|---|---|---|
busca | texto | Parte do nome, do SKU ou do código de barras. |
ativo | texto | 1 (padrão) só os ativos; 0 só os inativos. |
atualizado_desde | data | Só o que mudou desde então. AAAA-MM-DD ou ISO 8601, como 2026-10-23T10:00:00-03:00. |
pagina | inteiro | Página, começando em 1. |
por_pagina | inteiro | Itens por página, de 1 a 100. Padrão 25. |
| Campo | Tipo | Descrição |
|---|---|---|
id | inteiro | Identificador do produto. |
nome | texto | Nome do produto. |
descricao | texto | Descrição, quando houver. |
sku | texto | Código interno. |
codigo_barras | texto | Código de barras principal. |
unidade | texto | Unidade de venda, como UN ou KG. |
categoria | texto | Nome da categoria. |
preco_venda | número | Preço de venda, em reais. |
preco_atacado | número | Preço de atacado, em reais, quando houver. |
ativo | booleano | Se o produto está à venda. |
controla_estoque | booleano | Se o ERP controla o estoque deste produto. |
estoque_disponivel | número | Quantidade menos a reservada, nunca negativa. null quando não controla estoque. |
atualizado_em | data e hora | Última alteração, em ISO 8601. |
curl 'https://app.lymos.com.br/api/v1/integracao/produtos?busca=calabresa' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/produtos?busca=calabresa', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/produtos",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]}, params={"busca": "calabresa"},
)
dados = r.json(){
"data": [
{
"id": 318,
"nome": "Pizza grande de calabresa",
"descricao": null,
"sku": "PZ-CAL-G",
"codigo_barras": null,
"unidade": "UN",
"categoria": "Pizzas",
"preco_venda": 54.9,
"preco_atacado": null,
"ativo": true,
"controla_estoque": false,
"estoque_disponivel": null,
"atualizado_em": "2026-10-20T15:42:10-03:00"
}
],
"meta": {
"pagina": 1,
"por_pagina": 25,
"total": 1,
"ultima_pagina": 1
}
}GET/produtos/{id}Ver um produto
Escopo: produtos:ler.
curl 'https://app.lymos.com.br/api/v1/integracao/produtos/318' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/produtos/318', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/produtos/318",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]},
)
dados = r.json(){
"data": {
"id": 318,
"nome": "Pizza grande de calabresa",
"descricao": null,
"sku": "PZ-CAL-G",
"codigo_barras": null,
"unidade": "UN",
"categoria": "Pizzas",
"preco_venda": 54.9,
"preco_atacado": null,
"ativo": true,
"controla_estoque": false,
"estoque_disponivel": null,
"atualizado_em": "2026-10-20T15:42:10-03:00"
}
}Clientes
GET/clientesListar clientes
Escopo: clientes:ler. Módulo do plano: nenhum.
Nome, contato e cidade. CPF e CNPJ não saem: para ligar um cliente a outro sistema, use o telefone, o e-mail ou o nome.
| Campo | Tipo | Descrição |
|---|---|---|
busca | texto | Nome, e-mail ou telefone, com ou sem máscara. Aceita também o formato internacional, como 5575998765432. |
ativo | texto | 1 só os ativos; 0 só os inativos. Sem o parâmetro, vêm todos. |
atualizado_desde | data | Só o que mudou desde então. AAAA-MM-DD ou ISO 8601, como 2026-10-23T10:00:00-03:00. |
pagina | inteiro | Página, começando em 1. |
por_pagina | inteiro | Itens por página, de 1 a 100. Padrão 25. |
| Campo | Tipo | Descrição |
|---|---|---|
id | inteiro | Identificador do cliente. |
tipo | texto | Tipo de pessoa. |
nome | texto | Nome. |
razao_social | texto | Razão social, para empresa. |
nome_fantasia | texto | Nome fantasia, para empresa. |
email | texto | E-mail. |
telefone | texto | Telefone fixo. |
celular | texto | Celular. |
bairro | texto | Bairro do endereço. |
cidade | texto | Cidade do endereço. |
uf | texto | Estado do endereço. |
ativo | booleano | Se o cadastro está ativo. |
criado_em | data e hora | Criação do cadastro. |
atualizado_em | data e hora | Última alteração. |
curl 'https://app.lymos.com.br/api/v1/integracao/clientes?busca=5575998765432' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/clientes?busca=5575998765432', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/clientes",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]}, params={"busca": "5575998765432"},
)
dados = r.json(){
"data": [
{
"id": 27,
"tipo": "fisica",
"nome": "Ana Souza",
"razao_social": null,
"nome_fantasia": null,
"email": "ana@exemplo.com.br",
"telefone": null,
"celular": "(75) 99876-5432",
"bairro": "Centro",
"cidade": "Feira de Santana",
"uf": "BA",
"ativo": true,
"criado_em": "2026-03-02T09:12:00-03:00",
"atualizado_em": "2026-10-18T14:03:21-03:00"
}
],
"meta": {
"pagina": 1,
"por_pagina": 25,
"total": 1,
"ultima_pagina": 1
}
}GET/clientes/{id}Ver um cliente
Escopo: clientes:ler.
curl 'https://app.lymos.com.br/api/v1/integracao/clientes/27' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/clientes/27', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/clientes/27",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]},
)
dados = r.json(){
"data": {
"id": 27,
"tipo": "fisica",
"nome": "Ana Souza",
"razao_social": null,
"nome_fantasia": null,
"email": "ana@exemplo.com.br",
"telefone": null,
"celular": "(75) 99876-5432",
"bairro": "Centro",
"cidade": "Feira de Santana",
"uf": "BA",
"ativo": true,
"criado_em": "2026-03-02T09:12:00-03:00",
"atualizado_em": "2026-10-18T14:03:21-03:00"
}
}Pedidos de venda
GET/pedidos-vendaListar pedidos de venda
Escopo: pedidos:ler. Módulo do plano: Comércio.
Orçamentos e pedidos do módulo Comércio. Os itens só vêm no detalhe.
| Campo | Tipo | Descrição |
|---|---|---|
status | texto | orcamento, enviado, aprovado, recusado, faturado ou cancelado. |
cliente_id | inteiro | Só os do cliente com este id. |
de | data | Criados a partir deste dia. AAAA-MM-DD. |
ate | data | Criados até este dia. AAAA-MM-DD. |
pagina | inteiro | Página, começando em 1. |
por_pagina | inteiro | Itens por página, de 1 a 100. Padrão 25. |
| Campo | Tipo | Descrição |
|---|---|---|
id | inteiro | Identificador do pedido. |
numero | texto | Número do pedido. |
status | texto | orcamento, enviado, aprovado, recusado, faturado ou cancelado. |
cliente | objeto | id e nome do cliente. |
subtotal, desconto, total | número | Valores em reais. |
condicao_pagamento | texto | Condição combinada. |
validade | data | Validade do orçamento. |
data_entrega | data | Entrega prevista. |
venda_id | inteiro | Venda gerada quando o pedido foi faturado. |
criado_em | data e hora | Criação do pedido. |
itens | lista | Só no detalhe: produto_id, descricao, quantidade, preco_unitario, desconto e total. |
curl 'https://app.lymos.com.br/api/v1/integracao/pedidos-venda?status=aprovado&cliente_id=27' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/pedidos-venda?status=aprovado&cliente_id=27', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/pedidos-venda",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]}, params={"status": "aprovado", "cliente_id": "27"},
)
dados = r.json(){
"data": [
{
"id": 905,
"numero": "PV-000905",
"status": "aprovado",
"cliente": {
"id": 27,
"nome": "Ana Souza"
},
"subtotal": 480,
"desconto": 30,
"total": 450,
"condicao_pagamento": "30 dias",
"validade": "2026-10-30",
"data_entrega": "2026-11-05",
"venda_id": null,
"criado_em": "2026-10-19T11:20:00-03:00"
}
],
"meta": {
"pagina": 1,
"por_pagina": 25,
"total": 1,
"ultima_pagina": 1
}
}GET/pedidos-venda/{id}Ver um pedido de venda
Escopo: pedidos:ler. Módulo do plano: Comércio.
curl 'https://app.lymos.com.br/api/v1/integracao/pedidos-venda/905' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/pedidos-venda/905', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/pedidos-venda/905",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]},
)
dados = r.json(){
"data": {
"id": 905,
"numero": "PV-000905",
"status": "aprovado",
"cliente": {
"id": 27,
"nome": "Ana Souza"
},
"subtotal": 480,
"desconto": 30,
"total": 450,
"condicao_pagamento": "30 dias",
"validade": "2026-10-30",
"data_entrega": "2026-11-05",
"venda_id": null,
"criado_em": "2026-10-19T11:20:00-03:00",
"itens": [
{
"produto_id": 318,
"descricao": "Pizza grande de calabresa",
"quantidade": 10,
"preco_unitario": 48,
"desconto": 0,
"total": 480
}
]
}
}Pedidos de delivery
GET/pedidos-deliveryListar pedidos de delivery
Escopo: pedidos:ler. Módulo do plano: Food.
Pedidos do cardápio digital do módulo Food, com o endereço de entrega completo, sem as coordenadas do mapa e sem dados de pagamento. Pedidos do iFood não entram.
| Campo | Tipo | Descrição |
|---|---|---|
telefone | texto | Telefone do cliente, com ou sem máscara. No mínimo 4 dígitos; menos que isso responde 422. |
status | texto | Situação do pedido, como aceito, em_preparo, saiu_para_entrega, entregue ou cancelado. |
cliente_id | inteiro | Só os do cliente com este id. |
de | data | Criados a partir deste dia. AAAA-MM-DD. |
ate | data | Criados até este dia. AAAA-MM-DD. |
pagina | inteiro | Página, começando em 1. |
por_pagina | inteiro | Itens por página, de 1 a 100. Padrão 25. |
| Campo | Tipo | Descrição |
|---|---|---|
id | inteiro | Identificador do pedido. |
status | texto | Situação do pedido, como aceito, em_preparo, saiu_para_entrega, entregue ou cancelado. |
cliente_id, cliente_nome, cliente_telefone | inteiro e texto | Quem pediu. |
endereco_entrega | objeto | logradouro, numero, complemento, bairro, cidade, uf, cep, referencia e descricao. Sem as coordenadas do mapa. |
subtotal, desconto, taxa_entrega, total | número | Valores em reais. |
forma_pagamento | texto | Como o cliente paga. |
pix_confirmado | booleano | Só para Pix: se o pagamento foi confirmado. null quando não se aplica (dinheiro e cartão na entrega). |
tempo_estimado_min | inteiro | Tempo estimado, em minutos. |
criado_em, aceito_em, saiu_para_entrega_em, entregue_em, cancelado_em | data e hora | Marcos do pedido. null quando ainda não aconteceu. |
observacoes, motivo_cancelamento, itens | texto e lista | Só no detalhe. Cada item traz nome, quantidade, preco_unitario, total e observacao. |
curl 'https://app.lymos.com.br/api/v1/integracao/pedidos-delivery?telefone=75998765432' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/pedidos-delivery?telefone=75998765432', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/pedidos-delivery",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]}, params={"telefone": "75998765432"},
)
dados = r.json(){
"data": [
{
"id": 1042,
"status": "entregue",
"cliente_id": 27,
"cliente_nome": "Ana Souza",
"cliente_telefone": "75998765432",
"endereco_entrega": {
"logradouro": "Rua das Flores",
"numero": "120",
"complemento": null,
"bairro": "Centro",
"cidade": "Feira de Santana",
"uf": "BA",
"cep": "44001000",
"referencia": "Perto da praça",
"descricao": null
},
"subtotal": 54.9,
"desconto": 0,
"taxa_entrega": 6,
"total": 60.9,
"forma_pagamento": "pix",
"pix_confirmado": true,
"tempo_estimado_min": 40,
"criado_em": "2026-10-21T18:02:11-03:00",
"aceito_em": "2026-10-21T18:03:40-03:00",
"saiu_para_entrega_em": "2026-10-21T18:40:05-03:00",
"entregue_em": "2026-10-21T19:05:12-03:00",
"cancelado_em": null
}
],
"meta": {
"pagina": 1,
"por_pagina": 25,
"total": 1,
"ultima_pagina": 1
}
}GET/pedidos-delivery/{id}Ver um pedido de delivery
Escopo: pedidos:ler. Módulo do plano: Food.
curl 'https://app.lymos.com.br/api/v1/integracao/pedidos-delivery/1042' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/pedidos-delivery/1042', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/pedidos-delivery/1042",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]},
)
dados = r.json(){
"data": {
"id": 1042,
"status": "entregue",
"cliente_id": 27,
"cliente_nome": "Ana Souza",
"cliente_telefone": "75998765432",
"endereco_entrega": {
"logradouro": "Rua das Flores",
"numero": "120",
"complemento": null,
"bairro": "Centro",
"cidade": "Feira de Santana",
"uf": "BA",
"cep": "44001000",
"referencia": "Perto da praça",
"descricao": null
},
"subtotal": 54.9,
"desconto": 0,
"taxa_entrega": 6,
"total": 60.9,
"forma_pagamento": "pix",
"pix_confirmado": true,
"tempo_estimado_min": 40,
"criado_em": "2026-10-21T18:02:11-03:00",
"aceito_em": "2026-10-21T18:03:40-03:00",
"saiu_para_entrega_em": "2026-10-21T18:40:05-03:00",
"entregue_em": "2026-10-21T19:05:12-03:00",
"cancelado_em": null,
"observacoes": null,
"motivo_cancelamento": null,
"itens": [
{
"nome": "Pizza grande de calabresa",
"quantidade": 1,
"preco_unitario": 54.9,
"total": 54.9,
"observacao": "Sem cebola"
}
]
}
}Notas de serviço
GET/notas-servicoListar notas de serviço
Escopo: nfse:ler. Módulo do plano: Comércio, Oficina ou CellTECH.
NFS-e do ERP. Leia o campo ambiente: enquanto a empresa emite na produção restrita do governo, ele vem "teste" e a nota não vale como documento fiscal. Documento do tomador, XML e erros do governo não saem.
| Campo | Tipo | Descrição |
|---|---|---|
status | texto | rascunho, transmitindo, autorizada, rejeitada, cancelada ou pendente_acao. |
cliente_id | inteiro | Só os do cliente com este id. |
competencia_de | data | Competência a partir deste dia. AAAA-MM-DD. |
competencia_ate | data | Competência até este dia. AAAA-MM-DD. |
pagina | inteiro | Página, começando em 1. |
por_pagina | inteiro | Itens por página, de 1 a 100. Padrão 25. |
| Campo | Tipo | Descrição |
|---|---|---|
id | inteiro | Identificador da nota. |
status | texto | rascunho, transmitindo, autorizada, rejeitada, cancelada ou pendente_acao. |
ambiente | texto | producao ou teste. Nota de teste não vale como documento fiscal. |
numero_nfse, chave_acesso | texto | Identificação da nota. |
cliente_id, tomador_nome | inteiro e texto | Quem contratou o serviço. Sem o documento do tomador. |
descricao_servico | texto | Descrição do serviço. |
valor_servico, aliquota_iss, valor_iss | número | Valores em reais e alíquota em %. |
iss_retido | booleano | Se o ISS foi retido. |
data_competencia | data | Competência da nota. |
emitida_em, autorizada_em, cancelada_em | data e hora | Marcos da nota. |
motivo_cancelamento, rejeitada | texto e booleano | Cancelamento e se o governo recusou a nota. |
curl 'https://app.lymos.com.br/api/v1/integracao/notas-servico?status=autorizada' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/notas-servico?status=autorizada', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/notas-servico",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]}, params={"status": "autorizada"},
)
dados = r.json(){
"data": [
{
"id": 318,
"status": "autorizada",
"ambiente": "producao",
"numero_nfse": "2026000318",
"chave_acesso": null,
"cliente_id": 27,
"tomador_nome": "Ana Souza",
"descricao_servico": "Manutenção preventiva de equipamento",
"valor_servico": 350,
"aliquota_iss": 2.5,
"valor_iss": 8.75,
"iss_retido": false,
"data_competencia": "2026-10-01",
"emitida_em": "2026-10-05T10:11:00-03:00",
"autorizada_em": "2026-10-05T10:11:42-03:00",
"cancelada_em": null,
"motivo_cancelamento": null,
"rejeitada": false
}
],
"meta": {
"pagina": 1,
"por_pagina": 25,
"total": 1,
"ultima_pagina": 1
}
}GET/notas-servico/{id}Ver uma nota de serviço
Escopo: nfse:ler. Módulo do plano: Comércio, Oficina ou CellTECH.
curl 'https://app.lymos.com.br/api/v1/integracao/notas-servico/318' \
-H 'Authorization: Bearer SEU_TOKEN'const res = await fetch('https://app.lymos.com.br/api/v1/integracao/notas-servico/318', {
headers: { Authorization: 'Bearer ' + process.env.LYMOS_ERP_TOKEN },
});
const dados = await res.json();import os, requests
r = requests.get(
"https://app.lymos.com.br/api/v1/integracao/notas-servico/318",
headers={"Authorization": "Bearer " + os.environ["LYMOS_ERP_TOKEN"]},
)
dados = r.json(){
"data": {
"id": 318,
"status": "autorizada",
"ambiente": "producao",
"numero_nfse": "2026000318",
"chave_acesso": null,
"cliente_id": 27,
"tomador_nome": "Ana Souza",
"descricao_servico": "Manutenção preventiva de equipamento",
"valor_servico": 350,
"aliquota_iss": 2.5,
"valor_iss": 8.75,
"iss_retido": false,
"data_competencia": "2026-10-01",
"emitida_em": "2026-10-05T10:11:00-03:00",
"autorizada_em": "2026-10-05T10:11:42-03:00",
"cancelada_em": null,
"motivo_cancelamento": null,
"rejeitada": false
}
}Erros
Status HTTP mais uma mensagem em JSON.
| Status | Significado |
|---|---|
401 | Token inválido, expirado ou revogado. |
403 | O token não tem o escopo, o plano do ERP não tem o módulo ou a assinatura está inativa. |
404 | Registro não encontrado. Vale também para o registro de outra empresa. |
422 | Parâmetro inválido: data fora do formato (inclusive 31/02), palavra como "ontem" ou telefone com menos de 4 dígitos. |
429 | Limite de requisições excedido. O cabeçalho Retry-After diz quantos segundos esperar. |
Boas práticas
- Prefira
atualizado_desdea ler tudo de novo, e respeite oRetry-After. - Marque só os escopos de que o sistema precisa.
- O endereço de entrega do delivery sai completo. Trate como dado pessoal, nos termos da LGPD.
- Nota de serviço com
ambiente"teste" não é nota emitida de verdade: não a apresente assim ao cliente. - Dúvidas: escreva para contato@lymos.com.br ou chame no WhatsApp.