Visitas de campo
Agenda, check-in/out, roteirização e cobrança em atendimento externo.
Base: https://api.nivesistemas.com.br · 16 endpoints
GET /field/visits
Seção intitulada “GET /field/visits”Listar visitas
curl -X GET "https://api.nivesistemas.com.br/field/visits" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits", { 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/field/visits", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /field/visits
Seção intitulada “POST /field/visits”Criar visita
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
serviceOrderId |
uuid | sim | OS |
technicianId |
uuid | sim | Técnico |
scheduledStart |
string | não | Início agendado |
scheduledEnd |
string | não | Fim agendado |
notes |
string | não | Observações |
Resposta: 201 Created
curl -X POST "https://api.nivesistemas.com.br/field/visits" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"serviceOrderId":"00000000-0000-0000-0000-000000000000","technicianId":"00000000-0000-0000-0000-000000000000","scheduledStart":"","scheduledEnd":"","notes":""}'const res = await fetch("https://api.nivesistemas.com.br/field/visits", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "serviceOrderId": "00000000-0000-0000-0000-000000000000", "technicianId": "00000000-0000-0000-0000-000000000000", "scheduledStart": "", "scheduledEnd": "", "notes": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/field/visits", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "serviceOrderId": "00000000-0000-0000-0000-000000000000", "technicianId": "00000000-0000-0000-0000-000000000000", "scheduledStart": "", "scheduledEnd": "", "notes": "" },)print(res.json())GET /field/visits/:id
Seção intitulada “GET /field/visits/:id”Detalhe da visita
Parâmetros de rota: id
curl -X GET "https://api.nivesistemas.com.br/field/visits/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/{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/field/visits/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())PATCH /field/visits/:id
Seção intitulada “PATCH /field/visits/:id”Atualizar visita
Parâmetros de rota: id
curl -X PATCH "https://api.nivesistemas.com.br/field/visits/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}", { method: "PATCH", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "PATCH", "https://api.nivesistemas.com.br/field/visits/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /field/visits/:id/check-in
Seção intitulada “POST /field/visits/:id/check-in”Check-in no local
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
lat |
number | sim | Latitude |
lng |
number | sim | Longitude |
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/check-in" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"lat":0,"lng":0}'const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/check-in", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "lat": 0, "lng": 0 }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/field/visits/{id}/check-in", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "lat": 0, "lng": 0 },)print(res.json())POST /field/visits/:id/check-out
Seção intitulada “POST /field/visits/:id/check-out”Check-out
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
lat |
number | sim | Latitude |
lng |
number | sim | Longitude |
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/check-out" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"lat":0,"lng":0}'const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/check-out", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "lat": 0, "lng": 0 }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/field/visits/{id}/check-out", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "lat": 0, "lng": 0 },)print(res.json())POST /field/visits/:id/en-route
Seção intitulada “POST /field/visits/:id/en-route”Marcar em deslocamento
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/en-route" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/en-route", { 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/field/visits/{id}/en-route", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /field/visits/:id/complete
Seção intitulada “POST /field/visits/:id/complete”Concluir visita
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/complete" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/complete", { 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/field/visits/{id}/complete", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /field/visits/:id/cancel
Seção intitulada “POST /field/visits/:id/cancel”Cancelar visita
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/cancel" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/{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/field/visits/{id}/cancel", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /field/visits/:id/attachments
Seção intitulada “POST /field/visits/:id/attachments”Anexar arquivo (multipart)
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
file |
file | sim | Arquivo (campo form-data file) |
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/attachments" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"file":null}'const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/attachments", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "file": null }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/field/visits/{id}/attachments", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "file": None },)print(res.json())POST /field/visits/:id/signature
Seção intitulada “POST /field/visits/:id/signature”Salvar assinatura do cliente
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pngBase64 |
string | não | PNG em base64 |
imageBase64 |
string | não | Imagem em base64 (alternativa) |
signerName |
string | não | Nome de quem assinou |
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/signature" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"pngBase64":"","imageBase64":"","signerName":""}'const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/signature", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "pngBase64": "", "imageBase64": "", "signerName": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/field/visits/{id}/signature", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "pngBase64": "", "imageBase64": "", "signerName": "" },)print(res.json())POST /field/visits/:id/checklist
Seção intitulada “POST /field/visits/:id/checklist”Salvar respostas do checklist da visita
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
responses |
array | sim | [{ itemId, valueText?, valueNumber?, valueBool?, attachmentUrl? }] |
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/checklist" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"responses":[]}'const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/checklist", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "responses": [] }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/field/visits/{id}/checklist", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "responses": [] },)print(res.json())POST /field/visits/:id/charge
Seção intitulada “POST /field/visits/:id/charge”Gerar cobrança vinculada à visita
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/field/visits/{id}/charge" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/{id}/charge", { 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/field/visits/{id}/charge", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /field/visits/route-suggest
Seção intitulada “GET /field/visits/route-suggest”Sugerir ordem de visitas no dia
curl -X GET "https://api.nivesistemas.com.br/field/visits/route-suggest" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/route-suggest", { 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/field/visits/route-suggest", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /field/visits/route-apply
Seção intitulada “POST /field/visits/route-apply”Aplicar ordem sugerida de visitas
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
date |
string | sim | YYYY-MM-DD |
visitIds |
array | sim | IDs na ordem desejada |
curl -X POST "https://api.nivesistemas.com.br/field/visits/route-apply" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"date":"","visitIds":[]}'const res = await fetch("https://api.nivesistemas.com.br/field/visits/route-apply", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "date": "", "visitIds": [] }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/field/visits/route-apply", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "date": "", "visitIds": [] },)print(res.json())GET /field/visits/nearest-technician
Seção intitulada “GET /field/visits/nearest-technician”Técnico mais próximo
Query params
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
lat |
number | sim | Latitude |
lng |
number | sim | Longitude |
maxAgeMinutes |
integer | não | Idade máxima do ping (padrão 120) |
curl -X GET "https://api.nivesistemas.com.br/field/visits/nearest-technician" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/field/visits/nearest-technician", { 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/field/visits/nearest-technician", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())
