Ordens de serviço
OS do módulo de serviços. Status: QUOTE | APPROVED | IN_PROGRESS | WAITING_CUSTOMER | COMPLETED | INVOICED | CANCELLED. Concluir (COMPLETED) registra a execução; o faturamento comercial é via POST /service-orders/:id/to-sale (rascunho no PDV) e a OS só vira INVOICED ao finalizar essa venda (POST /sales/:id/finalize). Detalhe e lista incluem saleId / sale quando houver vínculo.
Base: https://api.nivesistemas.com.br · 20 endpoints
GET /service-orders
Seção intitulada “GET /service-orders”Listar ordens de serviço
Query params
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
q |
string | não | Busca |
status |
string | não | Status da OS |
customerId |
uuid | não | Filtrar por cliente |
page |
integer | não | Página (padrão 1) |
pageSize |
integer | não | Itens por página (máx. 100) |
curl -X GET "https://api.nivesistemas.com.br/service-orders" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/service-orders", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /service-orders/agenda
Seção intitulada “GET /service-orders/agenda”Agenda de OS por responsável (dia ou período)
Query params
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
date |
date | não | Dia (YYYY-MM-DD); ou use from/to |
from |
date | não | Início do período (YYYY-MM-DD) |
to |
date | não | Fim do período (YYYY-MM-DD) |
responsibleId |
uuid | não | Filtrar por responsável |
includeUnscheduled |
boolean | não | Inclui OS abertas sem horário em unscheduled |
curl -X GET "https://api.nivesistemas.com.br/service-orders/agenda" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/agenda", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/service-orders/agenda", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders
Seção intitulada “POST /service-orders”Criar ordem de serviço
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
customerId |
uuid | sim | Cliente |
contactName |
string | não | Nome do contato |
responsibleId |
uuid | não | Responsável |
projectId |
uuid | não | Projeto |
description |
string | não | Descrição |
notes |
string | não | Observações |
expectedAt |
string | não | Previsão (ISO datetime) |
priority |
string | não | Prioridade |
assetId |
uuid | não | Ativo/equipamento |
checklistTemplateId |
uuid | não | Template de checklist |
Resposta: 201 Created
curl -X POST "https://api.nivesistemas.com.br/service-orders" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"customerId":"00000000-0000-0000-0000-000000000000","contactName":"","responsibleId":"00000000-0000-0000-0000-000000000000","projectId":"00000000-0000-0000-0000-000000000000","description":"","notes":"","expectedAt":"","priority":"","assetId":"00000000-0000-0000-0000-000000000000","checklistTemplateId":"00000000-0000-0000-0000-000000000000"}'const res = await fetch("https://api.nivesistemas.com.br/service-orders", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "customerId": "00000000-0000-0000-0000-000000000000", "contactName": "", "responsibleId": "00000000-0000-0000-0000-000000000000", "projectId": "00000000-0000-0000-0000-000000000000", "description": "", "notes": "", "expectedAt": "", "priority": "", "assetId": "00000000-0000-0000-0000-000000000000", "checklistTemplateId": "00000000-0000-0000-0000-000000000000" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "customerId": "00000000-0000-0000-0000-000000000000", "contactName": "", "responsibleId": "00000000-0000-0000-0000-000000000000", "projectId": "00000000-0000-0000-0000-000000000000", "description": "", "notes": "", "expectedAt": "", "priority": "", "assetId": "00000000-0000-0000-0000-000000000000", "checklistTemplateId": "00000000-0000-0000-0000-000000000000" },)print(res.json())GET /service-orders/:id
Seção intitulada “GET /service-orders/:id”Detalhe da OS
Parâmetros de rota: id
Resposta: Inclui itens, recebíveis, hasIssuedNfse, nfseId, saleId e sale ({ id, orderNumber, status, completedAt }) quando vinculada a uma venda do PDV.
curl -X GET "https://api.nivesistemas.com.br/service-orders/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/service-orders/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())PATCH /service-orders/:id
Seção intitulada “PATCH /service-orders/:id”Atualizar OS
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
customerId |
uuid | não | Cliente |
description |
string | não | Descrição |
notes |
string | não | Observações |
discountAmount |
number | não | Desconto |
expectedAt |
string | não | Previsão |
priority |
string | não | Prioridade |
curl -X PATCH "https://api.nivesistemas.com.br/service-orders/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"customerId":"00000000-0000-0000-0000-000000000000","description":"","notes":"","discountAmount":0,"expectedAt":"","priority":""}'const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}", { method: "PATCH", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "customerId": "00000000-0000-0000-0000-000000000000", "description": "", "notes": "", "discountAmount": 0, "expectedAt": "", "priority": "" }),});const data = await res.json();import requests
res = requests.request( "PATCH", "https://api.nivesistemas.com.br/service-orders/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "customerId": "00000000-0000-0000-0000-000000000000", "description": "", "notes": "", "discountAmount": 0, "expectedAt": "", "priority": "" },)print(res.json())POST /service-orders/:id/items
Seção intitulada “POST /service-orders/:id/items”Adicionar item à OS
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
variantId |
uuid | sim | Variante do serviço/produto |
quantity |
number | sim | Quantidade |
unitPrice |
number | não | Preço unitário |
Resposta: 201 Created
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/items" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"variantId":"00000000-0000-0000-0000-000000000000","quantity":0,"unitPrice":0}'const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/items", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "variantId": "00000000-0000-0000-0000-000000000000", "quantity": 0, "unitPrice": 0 }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/items", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "variantId": "00000000-0000-0000-0000-000000000000", "quantity": 0, "unitPrice": 0 },)print(res.json())PATCH /service-orders/:id/items/:itemId
Seção intitulada “PATCH /service-orders/:id/items/:itemId”Atualizar item da OS
Parâmetros de rota: id, itemId
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
quantity |
number | não | Quantidade |
unitPrice |
number | não | Preço unitário |
description |
string | não | Descrição do item |
curl -X PATCH "https://api.nivesistemas.com.br/service-orders/{id}/items/{itemId}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"quantity":0,"unitPrice":0,"description":""}'const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/items/{itemId}", { method: "PATCH", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "quantity": 0, "unitPrice": 0, "description": "" }),});const data = await res.json();import requests
res = requests.request( "PATCH", "https://api.nivesistemas.com.br/service-orders/{id}/items/{itemId}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "quantity": 0, "unitPrice": 0, "description": "" },)print(res.json())DELETE /service-orders/:id/items/:itemId
Seção intitulada “DELETE /service-orders/:id/items/:itemId”Remover item da OS
Parâmetros de rota: id, itemId
curl -X DELETE "https://api.nivesistemas.com.br/service-orders/{id}/items/{itemId}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/items/{itemId}", { method: "DELETE", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "DELETE", "https://api.nivesistemas.com.br/service-orders/{id}/items/{itemId}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/to-sale
Seção intitulada “POST /service-orders/:id/to-sale”Criar ou reabrir rascunho de venda no PDV a partir da OS
Parâmetros de rota: id
Resposta: 201 se criou rascunho; 200 se já existia. Corpo: { saleId, orderNumber, created, serviceOrderId, serviceOrderNumber, total? }. Exige OS COMPLETED (ou INVOICED sem venda). Idempotente com rascunho DRAFT. 409 se já houver venda COMPLETED. Copia itens/preços; affectsStock=false se a OS já baixou estoque. NFS-e autorizada/pendente da OS é vinculada à venda (saleId). Abrir PDV em /pos?id={saleId}. Ao finalizar a venda, a OS vai para INVOICED.
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/to-sale" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/to-sale", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/to-sale", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/status
Seção intitulada “POST /service-orders/:id/status”Alterar status da OS
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
status |
string | sim | Próximo status permitido (transições operacionais). INVOICED não é aceito aqui — use to-sale + finalize da venda. QUOTE | APPROVED | IN_PROGRESS | WAITING_CUSTOMER | COMPLETED | CANCELLED conforme o fluxo. |
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/status" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"status":""}'const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/status", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "status": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/status", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "status": "" },)print(res.json())POST /service-orders/:id/cancel
Seção intitulada “POST /service-orders/:id/cancel”Cancelar OS
Parâmetros de rota: id
Resposta: Não cancela OS INVOICED. Se houver rascunho DRAFT ligado, o vínculo saleId é liberado.
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/cancel" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/cancel", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/cancel", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/request-confirmation
Seção intitulada “POST /service-orders/:id/request-confirmation”Pedir confirmação de presença ao cliente (WhatsApp)
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/request-confirmation" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/request-confirmation", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/request-confirmation", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/confirm-attendance
Seção intitulada “POST /service-orders/:id/confirm-attendance”Marcar presença confirmada
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/confirm-attendance" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/confirm-attendance", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/confirm-attendance", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/send-quote-whatsapp
Seção intitulada “POST /service-orders/:id/send-quote-whatsapp”Enviar orçamento da OS por WhatsApp
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/send-quote-whatsapp" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/send-quote-whatsapp", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/send-quote-whatsapp", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/warranty
Seção intitulada “POST /service-orders/:id/warranty”Abrir OS de garantia vinculada
Parâmetros de rota: id
Resposta: 201 Created
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/warranty" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/warranty", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/warranty", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/attachments
Seção intitulada “POST /service-orders/:id/attachments”Anexar arquivo à OS (multipart, campo file)
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/attachments" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/attachments", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/attachments", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /service-orders/:id/pdf
Seção intitulada “GET /service-orders/:id/pdf”PDF do orçamento/OS (application/pdf, inline)
Parâmetros de rota: id
Resposta: 404 se a OS não existe; 403 se a OS é de outra filial ou de outro mecânico (perfil mecânico).
curl -X GET "https://api.nivesistemas.com.br/service-orders/{id}/pdf" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/pdf", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/service-orders/{id}/pdf", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /service-orders/:id/approve-quote
Seção intitulada “POST /service-orders/:id/approve-quote”Oficina: registrar a aprovação do orçamento pela equipe (cliente aprovou por telefone ou balcão)
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
approvedByName |
string | não | Quem aprovou (até 200; padrão: nome do cliente da OS) |
Resposta: A OS atualizada. Idempotente: se já estava aprovada no valor atual, devolve a OS sem mudança. 400 se a OS está cancelada, sem itens, sem veículo (placa) ou KM de entrada no orçamento, ou não está numa fase que aceite aprovação. Exige o módulo de oficina.
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/approve-quote" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"approvedByName":""}'const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/approve-quote", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "approvedByName": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/approve-quote", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "approvedByName": "" },)print(res.json())POST /service-orders/:id/deliver
Seção intitulada “POST /service-orders/:id/deliver”Oficina: registrar a retirada do veículo (quem e quando); a garantia passa a contar da entrega
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pickedUpByName |
string | sim | Quem está retirando o veículo (até 200) |
Resposta: A OS atualizada. 400 se a OS não está concluída ou faturada ou se já foi entregue. Exige o módulo de oficina.
curl -X POST "https://api.nivesistemas.com.br/service-orders/{id}/deliver" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"pickedUpByName":""}'const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/deliver", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "pickedUpByName": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/service-orders/{id}/deliver", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "pickedUpByName": "" },)print(res.json())GET /service-orders/:id/events
Seção intitulada “GET /service-orders/:id/events”Trilha de auditoria da OS (últimos 500 eventos, do mais recente ao mais antigo)
Parâmetros de rota: id
Resposta: Lista de { id, type, message, userName, createdAt }. 404 se a OS não existe.
curl -X GET "https://api.nivesistemas.com.br/service-orders/{id}/events" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/service-orders/{id}/events", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/service-orders/{id}/events", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())
