Clientes, fornecedores, transportadoras, veículos, motoristas, produtos, pessoas, filiais, operadores e observações.
Autenticação em todos os exemplos: veja Autenticação. Teste no navegador pelo Swagger ou importe a coleção do Postman.
| Endpoint | Métodos | Para que serve |
|---|---|---|
cliente |
GET, POST, PUT, DELETE | Cadastro de cliente |
fornecedor |
GET, POST, PUT, DELETE | Cadastro de fornecedor |
transportadora |
GET, POST, PUT, DELETE | Cadastro de transportadora |
veiculo |
GET, POST, PUT, DELETE | Cadastro de veículo (com compartimentos e licenças ambientais) |
motorista |
GET, POST, PUT, DELETE | Cadastro de motorista |
produto |
GET | Consulta de produto |
txPessoa |
GET | Consulta de pessoa (cadastro geral) |
txEstabelecimento |
GET | Consulta de filial (estabelecimento) |
operador |
GET | Consulta de operador |
txObservacao |
GET, POST, PUT, DELETE | Observações livres ligadas a qualquer registro |
Cadastro de cliente. Cadastro de cliente (dados da pessoa + cadastro de cliente). Localiza o cliente por id_cliente ou, se id_cliente não vier, por cpf_cnpj. Gravação parcial: só os campos presentes no JSON são alterados. Campos de texto precisam vir como texto JSON (entre aspas). DELETE apenas desativa (ativo = N). Acesso com perfil cliente não pode criar (403) e só consulta e altera o próprio cliente.
/v1/terceiro/clienteConsulta um cliente
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_cliente |
integer | sim | Id do cliente (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
curl -s -X GET "$BASE/v1/terceiro/cliente?$AUTH&id_cliente="
Resposta:
{
"status": "ok",
"id_cliente": 123,
"codigo_erp": "C001",
"simp_instalacao": "1234567",
"simp_agente": "1234567890",
"id_tx_pessoa": 321,
"cpf_cnpj": "00000000000100",
"rg_inscricao": "ISENTO",
"nome_razao_social": "EMPRESA EXEMPLO LTDA",
"identificacao": "EXEMPLO",
"nascimento_fundacao": "2010-01-01",
"telefone": "4133334444",
"celular": "41999990000",
"email": "contato@exemplo.com.br",
"cep": "80000000",
"logradouro": "RUA EXEMPLO",
"numero": 100,
"complemento": "",
"bairro": "CENTRO",
"localidade": "CURITIBA",
"estado": "PR",
"crt": "3",
"ddi_telefone": 55,
"ddi_celular": 55,
"inscricao_municipal": "",
"pais": "BRASIL",
"suframa": "",
"tipo": "J",
"indiedest": "1",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_cliente":"Inválido"}}: sem id/documento válido.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 403 — {"errors":{"acesso":"Negado"}}: fora do escopo do acesso..
/v1/terceiro/clienteCria um cliente
Sempre cria um novo cliente; não altera um existente. Se já houver uma pessoa com o cpf_cnpj, ela é reaproveitada. Se algo falhar, nada é gravado.
Perfis: App, Rede, Filial, Pessoa
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf_cnpj |
string | sim | CPF ou CNPJ (com ou sem máscara). No POST, se já existir uma pessoa com esse documento no app, ela é reaproveitada e atualizada com os campos enviados. |
rg_inscricao |
string | não | RG ou inscrição estadual |
nome_razao_social |
string | não | Nome ou razão social |
identificacao |
string | não | Apelido / nome fantasia |
nascimento_fundacao |
string | não | Data de nascimento ou fundação (AAAA-MM-DD). |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número do endereço (inteiro) |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF (2 letras) |
ddi_telefone |
integer | não | DDI do telefone |
ddi_celular |
integer | não | DDI do celular |
inscricao_municipal |
string | não | Inscrição municipal |
pais |
string | não | País |
suframa |
string | não | Inscrição SUFRAMA |
indiedest |
string | não | Indicador de IE do destinatário (NF-e: 1, 2 ou 9) |
codigo_erp |
string | não | Código no ERP |
simp_instalacao |
string | não | Código SIMP/ANP da instalação (padrão '0000000' na criação). |
simp_agente |
string | não | Código SIMP/ANP do agente (padrão '0000000000' na criação). |
curl -s -X POST "$BASE/v1/terceiro/cliente?$AUTH" \
-H 'Content-Type: application/json' \
-d '{"cpf_cnpj": "00.000.000/0001-00", "nome_razao_social": "EMPRESA EXEMPLO LTDA", "identificacao": "EXEMPLO", "email": "contato@exemplo.com.br", "cep": "80000-000", "logradouro": "RUA EXEMPLO", "numero": 100, "bairro": "CENTRO", "localidade": "CURITIBA", "estado": "PR", "codigo_erp": "C001", "simp_instalacao": "1234567", "simp_agente": "1234567890"}'
Resposta:
{
"status": "ok",
"id_cliente": 123
}
Erros específicos: 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar. Se a pessoa já é cliente: "Dados já cadastrados (id)".; 403 — acesso com perfil cliente não pode criar cliente..
/v1/terceiro/clienteAltera um cliente
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_cliente |
integer | sim | Id do cliente (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf_cnpj |
string | não | CPF ou CNPJ (com ou sem máscara). No POST, se já existir uma pessoa com esse documento no app, ela é reaproveitada e atualizada com os campos enviados. |
rg_inscricao |
string | não | RG ou inscrição estadual |
nome_razao_social |
string | não | Nome ou razão social |
identificacao |
string | não | Apelido / nome fantasia |
nascimento_fundacao |
string | não | Data de nascimento ou fundação (AAAA-MM-DD). |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número do endereço (inteiro) |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF (2 letras) |
ddi_telefone |
integer | não | DDI do telefone |
ddi_celular |
integer | não | DDI do celular |
inscricao_municipal |
string | não | Inscrição municipal |
pais |
string | não | País |
suframa |
string | não | Inscrição SUFRAMA |
indiedest |
string | não | Indicador de IE do destinatário (NF-e: 1, 2 ou 9) |
codigo_erp |
string | não | Código no ERP |
simp_instalacao |
string | não | Código SIMP/ANP da instalação (padrão '0000000' na criação). |
simp_agente |
string | não | Código SIMP/ANP do agente (padrão '0000000000' na criação). |
curl -s -X PUT "$BASE/v1/terceiro/cliente?$AUTH&id_cliente=" \
-H 'Content-Type: application/json' \
-d '{"email": "novo@exemplo.com.br", "telefone": "4133335555"}'
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_cliente":"Inválido"}}.; 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)").; 403 — {"errors":{"acesso":"Negado"}}: fora do escopo do acesso..
/v1/terceiro/clienteDesativa um cliente
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_cliente |
integer | sim | Id do cliente (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
curl -s -X DELETE "$BASE/v1/terceiro/cliente?$AUTH&id_cliente="
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_cliente":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"registro":"Falha ao desativar"}}: por exemplo, registro já inativo.; 403 — {"errors":{"acesso":"Negado"}}: fora do escopo do acesso..
Cadastro de fornecedor. Cadastro de fornecedor (dados da pessoa + cadastro de fornecedor). Localiza o fornecedor por id_fornecedor ou, se id_fornecedor não vier, por cpf_cnpj. Gravação parcial: só os campos presentes no JSON são alterados. Campos de texto precisam vir como texto JSON (entre aspas). DELETE apenas desativa (ativo = N). O endpoint não restringe pelo escopo do acesso (cliente ou filial): vale só a permissão de acesso ao endpoint.
/v1/terceiro/fornecedorConsulta um fornecedor
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_fornecedor |
integer | sim | Id do fornecedor (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
curl -s -X GET "$BASE/v1/terceiro/fornecedor?$AUTH&id_fornecedor="
Resposta:
{
"status": "ok",
"id_fornecedor": 123,
"codigo_erp": "F001",
"id_tx_pessoa": 321,
"cpf_cnpj": "00000000000100",
"rg_inscricao": "ISENTO",
"nome_razao_social": "EMPRESA EXEMPLO LTDA",
"identificacao": "EXEMPLO",
"nascimento_fundacao": "2010-01-01",
"telefone": "4133334444",
"celular": "41999990000",
"email": "contato@exemplo.com.br",
"cep": "80000000",
"logradouro": "RUA EXEMPLO",
"numero": 100,
"complemento": "",
"bairro": "CENTRO",
"localidade": "CURITIBA",
"estado": "PR",
"crt": "3",
"ddi_telefone": 55,
"ddi_celular": 55,
"inscricao_municipal": "",
"pais": "BRASIL",
"suframa": "",
"tipo": "J",
"indiedest": "1",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_fornecedor":"Inválido"}}: sem id/documento válido.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app..
/v1/terceiro/fornecedorCria um fornecedor
Sempre cria um novo fornecedor; não altera um existente. Se já houver uma pessoa com o cpf_cnpj, ela é reaproveitada. Se algo falhar, nada é gravado.
Perfis: App, Rede, Filial, Cliente, Pessoa
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf_cnpj |
string | sim | CPF ou CNPJ (com ou sem máscara). No POST, se já existir uma pessoa com esse documento no app, ela é reaproveitada e atualizada com os campos enviados. |
rg_inscricao |
string | não | RG ou inscrição estadual |
nome_razao_social |
string | não | Nome ou razão social |
identificacao |
string | não | Apelido / nome fantasia |
nascimento_fundacao |
string | não | Data de nascimento ou fundação (AAAA-MM-DD). |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número do endereço (inteiro) |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF (2 letras) |
ddi_telefone |
integer | não | DDI do telefone |
ddi_celular |
integer | não | DDI do celular |
inscricao_municipal |
string | não | Inscrição municipal |
pais |
string | não | País |
suframa |
string | não | Inscrição SUFRAMA |
indiedest |
string | não | Indicador de IE do destinatário (NF-e: 1, 2 ou 9) |
codigo_erp |
string | não | Código no ERP |
curl -s -X POST "$BASE/v1/terceiro/fornecedor?$AUTH" \
-H 'Content-Type: application/json' \
-d '{"cpf_cnpj": "00.000.000/0001-00", "nome_razao_social": "EMPRESA EXEMPLO LTDA", "identificacao": "EXEMPLO", "email": "contato@exemplo.com.br", "cep": "80000-000", "logradouro": "RUA EXEMPLO", "numero": 100, "bairro": "CENTRO", "localidade": "CURITIBA", "estado": "PR", "codigo_erp": "C001"}'
Resposta:
{
"status": "ok",
"id_fornecedor": 123
}
Erros específicos: 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar. Se a pessoa já é fornecedor: "Dados já cadastrados (id)"..
/v1/terceiro/fornecedorAltera um fornecedor
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_fornecedor |
integer | sim | Id do fornecedor (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf_cnpj |
string | não | CPF ou CNPJ (com ou sem máscara). No POST, se já existir uma pessoa com esse documento no app, ela é reaproveitada e atualizada com os campos enviados. |
rg_inscricao |
string | não | RG ou inscrição estadual |
nome_razao_social |
string | não | Nome ou razão social |
identificacao |
string | não | Apelido / nome fantasia |
nascimento_fundacao |
string | não | Data de nascimento ou fundação (AAAA-MM-DD). |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número do endereço (inteiro) |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF (2 letras) |
ddi_telefone |
integer | não | DDI do telefone |
ddi_celular |
integer | não | DDI do celular |
inscricao_municipal |
string | não | Inscrição municipal |
pais |
string | não | País |
suframa |
string | não | Inscrição SUFRAMA |
indiedest |
string | não | Indicador de IE do destinatário (NF-e: 1, 2 ou 9) |
codigo_erp |
string | não | Código no ERP |
curl -s -X PUT "$BASE/v1/terceiro/fornecedor?$AUTH&id_fornecedor=" \
-H 'Content-Type: application/json' \
-d '{"email": "novo@exemplo.com.br", "telefone": "4133335555"}'
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_fornecedor":"Inválido"}}.; 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)")..
/v1/terceiro/fornecedorDesativa um fornecedor
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_fornecedor |
integer | sim | Id do fornecedor (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
curl -s -X DELETE "$BASE/v1/terceiro/fornecedor?$AUTH&id_fornecedor="
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_fornecedor":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"registro":"Falha ao desativar"}}: por exemplo, registro já inativo..
Cadastro de transportadora. Cadastro de transportadora (dados da pessoa + cadastro de transportadora). Localiza a transportadora por id_transportadora ou, se id_transportadora não vier, por cpf_cnpj. Gravação parcial: só os campos presentes no JSON são alterados. Campos de texto precisam vir como texto JSON (entre aspas). DELETE apenas desativa (ativo = N). O endpoint não restringe pelo escopo do acesso (cliente ou filial): vale só a permissão de acesso ao endpoint.
/v1/terceiro/transportadoraConsulta uma transportadora
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_transportadora |
integer | sim | Id da transportadora. (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
curl -s -X GET "$BASE/v1/terceiro/transportadora?$AUTH&id_transportadora="
Resposta:
{
"status": "ok",
"id_transportadora": 123,
"codigo_erp": "T001",
"antt": "12345678",
"id_tx_pessoa": 321,
"cpf_cnpj": "00000000000100",
"rg_inscricao": "ISENTO",
"nome_razao_social": "EMPRESA EXEMPLO LTDA",
"identificacao": "EXEMPLO",
"nascimento_fundacao": "2010-01-01",
"telefone": "4133334444",
"celular": "41999990000",
"email": "contato@exemplo.com.br",
"cep": "80000000",
"logradouro": "RUA EXEMPLO",
"numero": 100,
"complemento": "",
"bairro": "CENTRO",
"localidade": "CURITIBA",
"estado": "PR",
"crt": "3",
"ddi_telefone": 55,
"ddi_celular": 55,
"inscricao_municipal": "",
"pais": "BRASIL",
"suframa": "",
"tipo": "J",
"indiedest": "1",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_transportadora":"Inválido"}}: sem id/documento válido.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app..
/v1/terceiro/transportadoraCria uma transportadora
Sempre cria uma nova transportadora; não altera uma existente. Se já houver uma pessoa com o cpf_cnpj, ela é reaproveitada. Se algo falhar, nada é gravado.
Perfis: App, Rede, Filial, Cliente, Pessoa
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf_cnpj |
string | sim | CPF ou CNPJ (com ou sem máscara). No POST, se já existir uma pessoa com esse documento no app, ela é reaproveitada e atualizada com os campos enviados. |
rg_inscricao |
string | não | RG ou inscrição estadual |
nome_razao_social |
string | não | Nome ou razão social |
identificacao |
string | não | Apelido / nome fantasia |
nascimento_fundacao |
string | não | Data de nascimento ou fundação (AAAA-MM-DD). |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número do endereço (inteiro) |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF (2 letras) |
ddi_telefone |
integer | não | DDI do telefone |
ddi_celular |
integer | não | DDI do celular |
inscricao_municipal |
string | não | Inscrição municipal |
pais |
string | não | País |
suframa |
string | não | Inscrição SUFRAMA |
indiedest |
string | não | Indicador de IE do destinatário (NF-e: 1, 2 ou 9) |
codigo_erp |
string | não | Código no ERP |
antt |
string | não | Registro ANTT (RNTRC) |
curl -s -X POST "$BASE/v1/terceiro/transportadora?$AUTH" \
-H 'Content-Type: application/json' \
-d '{"cpf_cnpj": "00.000.000/0001-00", "nome_razao_social": "EMPRESA EXEMPLO LTDA", "identificacao": "EXEMPLO", "email": "contato@exemplo.com.br", "cep": "80000-000", "logradouro": "RUA EXEMPLO", "numero": 100, "bairro": "CENTRO", "localidade": "CURITIBA", "estado": "PR", "codigo_erp": "C001", "antt": "12345678"}'
Resposta:
{
"status": "ok",
"id_transportadora": 123
}
Erros específicos: 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar. Se a pessoa já é transportadora: "Dados já cadastrados (id)"..
/v1/terceiro/transportadoraAltera uma transportadora
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_transportadora |
integer | sim | Id da transportadora. (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf_cnpj |
string | não | CPF ou CNPJ (com ou sem máscara). No POST, se já existir uma pessoa com esse documento no app, ela é reaproveitada e atualizada com os campos enviados. |
rg_inscricao |
string | não | RG ou inscrição estadual |
nome_razao_social |
string | não | Nome ou razão social |
identificacao |
string | não | Apelido / nome fantasia |
nascimento_fundacao |
string | não | Data de nascimento ou fundação (AAAA-MM-DD). |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número do endereço (inteiro) |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF (2 letras) |
ddi_telefone |
integer | não | DDI do telefone |
ddi_celular |
integer | não | DDI do celular |
inscricao_municipal |
string | não | Inscrição municipal |
pais |
string | não | País |
suframa |
string | não | Inscrição SUFRAMA |
indiedest |
string | não | Indicador de IE do destinatário (NF-e: 1, 2 ou 9) |
codigo_erp |
string | não | Código no ERP |
antt |
string | não | Registro ANTT (RNTRC) |
curl -s -X PUT "$BASE/v1/terceiro/transportadora?$AUTH&id_transportadora=" \
-H 'Content-Type: application/json' \
-d '{"email": "novo@exemplo.com.br", "telefone": "4133335555"}'
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_transportadora":"Inválido"}}.; 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)")..
/v1/terceiro/transportadoraDesativa uma transportadora
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_transportadora |
integer | sim | Id da transportadora. (Ou cpf_cnpj (CPF/CNPJ com ou sem máscara) na query.) |
curl -s -X DELETE "$BASE/v1/terceiro/transportadora?$AUTH&id_transportadora="
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_transportadora":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"registro":"Falha ao desativar"}}: por exemplo, registro já inativo..
Cadastro de veículo (com compartimentos e licenças ambientais). Cadastro de veículos e carretas. Localiza o veículo por id_veiculo ou, se id_veiculo não vier, por placa. POST sempre cria (placa ou RENAVAM já cadastrados dão 'Dados já cadastrados'). PUT é parcial (só os campos enviados). DELETE desativa (ativo = N). O endpoint não restringe pelo escopo do acesso (cliente ou filial): vale só a permissão de acesso ao endpoint.
/v1/terceiro/veiculoConsulta um veículo
'compartimentos' só aparece se o veículo tiver compartimentos; cada compartimento lista só os níveis com cap_l > 0.
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_veiculo |
integer | sim | Id do veículo (Ou placa.) |
curl -s -X GET "$BASE/v1/terceiro/veiculo?$AUTH&id_veiculo="
Resposta:
{
"status": "ok",
"id_veiculo": 800,
"tipo": "CARRETA",
"placa": "ABC1D23",
"renavam": "00000000000",
"ano_fabricacao": "2020",
"ano_modelo": "2021",
"pais": "BRASIL",
"estado": "PR",
"localidade": "CURITIBA",
"capacidade_litros": 45000,
"compartimentos": [
{
"compartimento": 1,
"lacres": 2,
"niveis": [
{
"nivel": 1,
"cap_l": 15000,
"ev_mm": 120,
"ec_mm": 300,
"et_mm": 1500
}
]
}
],
"licencas_ambientais": [
{
"estado": "PR",
"validade": "2027-06-30"
}
],
"validade_certificado": "2027-01-01",
"validade_vistoria": "2027-05-10",
"validade_civ": "2027-01-01",
"validade_cipp": "2027-01-01",
"validade_cert_ibama": "2027-01-01",
"validade_aut_ibama": "2027-01-01",
"validade_tacografo": "2027-01-01",
"cor": "BRANCA",
"vistoria_carregamento": "N",
"vistoria_descarregamento": "N",
"codigo_erp": "V001",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_veiculo":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app..
/v1/terceiro/veiculoCria um veículo
Perfis: App, Rede, Filial, Cliente, Pessoa
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
placa |
string | sim | Placa (ex.: ABC1D23) |
tipo |
string | não | CAVALO, CARRETA, TRUCK, ESPECIAL ou OUTRO. |
renavam |
string | não | RENAVAM |
ano_fabricacao |
string | não | Ano de fabricação (texto). |
ano_modelo |
string | não | Ano do modelo (texto). |
pais |
string | não | País |
estado |
string | não | UF |
localidade |
string | não | Município |
capacidade_litros |
integer | não | Capacidade total em litros |
quant_compartimentos |
integer | não | Quantidade de compartimentos (recalculada a partir de 'compartimentos' quando esse campo vier). |
validade_certificado |
date | não | AAAA-MM-DD |
validade_vistoria |
date | não | AAAA-MM-DD |
validade_civ |
date | não | AAAA-MM-DD |
validade_cipp |
date | não | AAAA-MM-DD |
validade_cert_ibama |
date | não | AAAA-MM-DD |
validade_aut_ibama |
date | não | AAAA-MM-DD |
validade_tacografo |
date | não | AAAA-MM-DD |
cor |
string | não | Cor |
vistoria_carregamento |
string | não | S ou N: exige vistoria no carregamento. |
vistoria_descarregamento |
string | não | S ou N: exige vistoria no descarregamento. |
codigo_erp |
string | não | Código no ERP |
compartimentos |
array | não | [{compartimento (1–15; padrão: posição na lista + 1), lacres (inteiro), niveis:[{nivel (1–10; padrão: posição na lista + 1), cap_l, ev_mm, ec_mm, et_mm (só nível 1)}]}]. Nível 1 com cap_l = 0 apaga o compartimento e renumera os demais (capacidade e quantidade de compartimentos são recalculadas). |
licencas_ambientais |
array | não | [{estado (UF), validade (AAAA-MM-DD)}]: marca a licença ambiental como ativa na UF. Não é possível desmarcar por esta API. |
curl -s -X POST "$BASE/v1/terceiro/veiculo?$AUTH" \
-H 'Content-Type: application/json' \
-d '{"placa": "ABC1D23", "tipo": "CARRETA", "renavam": "00000000000", "ano_fabricacao": "2020", "ano_modelo": "2021", "estado": "PR", "localidade": "CURITIBA", "compartimentos": [{"compartimento": 1, "lacres": 2, "niveis": [{"nivel": 1, "cap_l": 15000, "ev_mm": 120, "ec_mm": 300, "et_mm": 1500}]}, {"compartimento": 2, "lacres": 2, "niveis": [{"nivel": 1, "cap_l": 30000}]}], "licencas_ambientais": [{"estado": "PR", "validade": "2027-06-30"}]}'
Resposta:
{
"status": "ok",
"id_veiculo": 800
}
Erros específicos: 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (placa ou RENAVAM já cadastrados, placa inválida…).; 500 — compartimento fora da faixa 1–15..
/v1/terceiro/veiculoAltera um veículo (parcial)
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_veiculo |
integer | sim | Id do veículo (Ou placa.) |
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
placa |
string | não | Placa (ex.: ABC1D23) |
tipo |
string | não | CAVALO, CARRETA, TRUCK, ESPECIAL ou OUTRO. |
renavam |
string | não | RENAVAM |
ano_fabricacao |
string | não | Ano de fabricação (texto). |
ano_modelo |
string | não | Ano do modelo (texto). |
pais |
string | não | País |
estado |
string | não | UF |
localidade |
string | não | Município |
capacidade_litros |
integer | não | Capacidade total em litros |
quant_compartimentos |
integer | não | Quantidade de compartimentos (recalculada a partir de 'compartimentos' quando esse campo vier). |
validade_certificado |
date | não | AAAA-MM-DD |
validade_vistoria |
date | não | AAAA-MM-DD |
validade_civ |
date | não | AAAA-MM-DD |
validade_cipp |
date | não | AAAA-MM-DD |
validade_cert_ibama |
date | não | AAAA-MM-DD |
validade_aut_ibama |
date | não | AAAA-MM-DD |
validade_tacografo |
date | não | AAAA-MM-DD |
cor |
string | não | Cor |
vistoria_carregamento |
string | não | S ou N: exige vistoria no carregamento. |
vistoria_descarregamento |
string | não | S ou N: exige vistoria no descarregamento. |
codigo_erp |
string | não | Código no ERP |
compartimentos |
array | não | [{compartimento (1–15; padrão: posição na lista + 1), lacres (inteiro), niveis:[{nivel (1–10; padrão: posição na lista + 1), cap_l, ev_mm, ec_mm, et_mm (só nível 1)}]}]. Nível 1 com cap_l = 0 apaga o compartimento e renumera os demais (capacidade e quantidade de compartimentos são recalculadas). |
licencas_ambientais |
array | não | [{estado (UF), validade (AAAA-MM-DD)}]: marca a licença ambiental como ativa na UF. Não é possível desmarcar por esta API. |
curl -s -X PUT "$BASE/v1/terceiro/veiculo?$AUTH&id_veiculo=" \
-H 'Content-Type: application/json' \
-d '{"validade_vistoria": "2027-05-10", "compartimentos": [{"compartimento": 2, "niveis": [{"nivel": 1, "cap_l": 0}]}]}'
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_veiculo":"Inválido"}}.; 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)")..
/v1/terceiro/veiculoDesativa um veículo
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_veiculo |
integer | sim | Id do veículo (Ou placa.) |
curl -s -X DELETE "$BASE/v1/terceiro/veiculo?$AUTH&id_veiculo="
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_veiculo":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"registro":"Falha ao desativar"}}: por exemplo, registro já inativo..
Cadastro de motorista. Cadastro de motoristas (dados da pessoa, CNH e validades de cursos). Localiza o motorista por id_motorista ou, se id_motorista não vier, por cpf. POST sempre cria um motorista: a pessoa com o mesmo CPF é reaproveitada; se ela já é motorista, responde 'Dados já cadastrados'. PUT é parcial. DELETE desativa (ativo = N). validade_integracao também é renovada quando um checklist do motorista é aprovado. O endpoint não restringe pelo escopo do acesso (cliente ou filial): vale só a permissão de acesso ao endpoint.
/v1/terceiro/motoristaConsulta um motorista
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_motorista |
integer | sim | Id do motorista (Ou cpf.) |
curl -s -X GET "$BASE/v1/terceiro/motorista?$AUTH&id_motorista="
Resposta:
{
"status": "ok",
"id_motorista": 600,
"numero_cnh": "00000000000",
"registro_cnh": "",
"estado_cnh": "PR",
"localidade_cnh": "CURITIBA",
"emissao_cnh": "2023-03-01",
"primeira_cnh": "2010-01-01",
"categoria_cnh": "E",
"validade_cnh": "2028-03-01",
"observacoes_cnh": "",
"validade_nr_35": "2027-01-01",
"validade_nr_20": "2027-01-01",
"validade_mopp": "2027-08-01",
"validade_integracao": "2027-05-10",
"validade_toxicologico": "2027-01-01",
"pais_cnh": "BRASIL",
"vistoria_carregamento": "N",
"vistoria_descarregamento": "N",
"codigo_erp": "M001",
"id_tx_pessoa": 321,
"cpf": "00000000191",
"rg": "",
"nome": "MOTORISTA EXEMPLO",
"identificacao": "",
"nascimento": "1980-01-01",
"telefone": "",
"celular": "41999990000",
"email": "",
"cep": "",
"logradouro": "",
"numero": 0,
"complemento": "",
"bairro": "",
"localidade": "",
"estado": "PR",
"ddi_telefone": 55,
"ddi_celular": 55,
"pais": "BRASIL",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_motorista":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app..
/v1/terceiro/motoristaCria um motorista
Perfis: App, Rede, Filial, Cliente, Pessoa
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf |
string | sim | CPF (com ou sem máscara). No POST, a pessoa que já tem esse CPF é reaproveitada e atualizada. |
rg |
string | não | RG |
nome |
string | não | Nome |
identificacao |
string | não | Apelido |
nascimento |
date | não | AAAA-MM-DD |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF |
ddi_telefone |
integer | não | DDI |
ddi_celular |
integer | não | DDI |
pais |
string | não | País |
numero_cnh |
string | não | Número da CNH |
registro_cnh |
string | não | Registro da CNH |
estado_cnh |
string | não | UF da CNH |
localidade_cnh |
string | não | Município da CNH |
emissao_cnh |
date | não | AAAA-MM-DD |
primeira_cnh |
date | não | AAAA-MM-DD |
categoria_cnh |
string | não | Categoria (ex.: E) |
validade_cnh |
date | não | AAAA-MM-DD |
observacoes_cnh |
string | não | Observações |
validade_nr_35 |
date | não | AAAA-MM-DD |
validade_nr_20 |
date | não | AAAA-MM-DD |
validade_mopp |
date | não | AAAA-MM-DD |
validade_integracao |
date | não | AAAA-MM-DD |
validade_toxicologico |
date | não | AAAA-MM-DD |
pais_cnh |
string | não | País da CNH |
vistoria_carregamento |
string | não | S/N |
vistoria_descarregamento |
string | não | S/N |
codigo_erp |
string | não | Código no ERP |
curl -s -X POST "$BASE/v1/terceiro/motorista?$AUTH" \
-H 'Content-Type: application/json' \
-d '{"cpf": "000.000.001-91", "nome": "MOTORISTA EXEMPLO", "celular": "41999990000", "numero_cnh": "00000000000", "categoria_cnh": "E", "validade_cnh": "2028-03-01", "validade_mopp": "2027-08-01"}'
Resposta:
{
"status": "ok",
"id_motorista": 600
}
Erros específicos: 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)")..
/v1/terceiro/motoristaAltera um motorista (parcial)
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_motorista |
integer | sim | Id do motorista (Ou cpf.) |
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf |
string | não | CPF (com ou sem máscara). No POST, a pessoa que já tem esse CPF é reaproveitada e atualizada. |
rg |
string | não | RG |
nome |
string | não | Nome |
identificacao |
string | não | Apelido |
nascimento |
date | não | AAAA-MM-DD |
telefone |
string | não | Telefone |
celular |
string | não | Celular |
email |
string | não | |
cep |
string | não | CEP |
logradouro |
string | não | Logradouro |
numero |
integer | não | Número |
complemento |
string | não | Complemento |
bairro |
string | não | Bairro |
localidade |
string | não | Município |
estado |
string | não | UF |
ddi_telefone |
integer | não | DDI |
ddi_celular |
integer | não | DDI |
pais |
string | não | País |
numero_cnh |
string | não | Número da CNH |
registro_cnh |
string | não | Registro da CNH |
estado_cnh |
string | não | UF da CNH |
localidade_cnh |
string | não | Município da CNH |
emissao_cnh |
date | não | AAAA-MM-DD |
primeira_cnh |
date | não | AAAA-MM-DD |
categoria_cnh |
string | não | Categoria (ex.: E) |
validade_cnh |
date | não | AAAA-MM-DD |
observacoes_cnh |
string | não | Observações |
validade_nr_35 |
date | não | AAAA-MM-DD |
validade_nr_20 |
date | não | AAAA-MM-DD |
validade_mopp |
date | não | AAAA-MM-DD |
validade_integracao |
date | não | AAAA-MM-DD |
validade_toxicologico |
date | não | AAAA-MM-DD |
pais_cnh |
string | não | País da CNH |
vistoria_carregamento |
string | não | S/N |
vistoria_descarregamento |
string | não | S/N |
codigo_erp |
string | não | Código no ERP |
curl -s -X PUT "$BASE/v1/terceiro/motorista?$AUTH&id_motorista=" \
-H 'Content-Type: application/json' \
-d '{"validade_mopp": "2028-08-01"}'
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_motorista":"Inválido"}}.; 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)")..
/v1/terceiro/motoristaDesativa um motorista
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_motorista |
integer | sim | Id do motorista (Ou cpf.) |
curl -s -X DELETE "$BASE/v1/terceiro/motorista?$AUTH&id_motorista="
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_motorista":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"registro":"Falha ao desativar"}}: por exemplo, registro já inativo..
Consulta de produto. Devolve o cadastro completo de um produto pelo id (não aceita código nem nome). Produto exclusivo de um cliente (id_cliente > 0) só é visto por terceiros com acesso a esse cliente.
/v1/terceiro/produtoConsulta um produto
Atenção: alguns campos têm grafia diferente da esperada e devem ser lidos exatamente assim: 'undiade', 'id_produto_composicacaoN' e 'perc_composicacaoN'.
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_produto |
integer | sim | Id do produto |
curl -s -X GET "$BASE/v1/terceiro/produto?$AUTH&id_produto="
Resposta:
{
"status": "ok",
"id_produto": 5,
"grupo": "ETANOL",
"nome": "ETANOL HIDRATADO",
"apelido": "EHC",
"simp": "810102001",
"densidade_a_20": 0.8093,
"densidade_a_20_min": 0.8076,
"densidade_a_20_max": 0.811,
"ordem_carregamento": "S",
"ordem_descarregamento": "S",
"inpm_min": 92.5,
"inpm_max": 95.4,
"tipo": "C",
"controla_quantidade": "S",
"controla_temp_dens": "S",
"pode_transferencia": "S",
"codigo_erp": "P005",
"gerar_simp": "S",
"aditivado": "N",
"apelido_padrao": "EHC",
"id_cliente": 0,
"pode_venda": "S",
"marcador": "N",
"cod_aditivo": "",
"perc_aditivo": 0,
"cod_marcador": "",
"perc_marcador": 0,
"classificacao": "",
"undiade": "L",
"para_litro": 1,
"para_kg": 0.8093,
"grade": "N",
"pedido": "S",
"contrato": "S",
"lastro": "N",
"extipi": "",
"cest": "",
"genero": "",
"id_produto_composicacao1": 0,
"perc_composicacao1": 0,
"id_produto_composicacao2": 0,
"perc_composicacao2": 0,
"id_produto_composicacao3": 0,
"perc_composicacao3": 0,
"id_produto_composicacao4": 0,
"perc_composicacao4": 0,
"id_produto_composicacao5": 0,
"perc_composicacao5": 0,
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_produto":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 403 — {"errors":{"acesso":"Negado"}}: fora do escopo do acesso..
Consulta de pessoa (cadastro geral). Devolve os dados cadastrais de uma pessoa (física ou jurídica) do app, por id_tx_pessoa ou CPF/CNPJ. Pessoa ligada a um cliente só é vista por quem tem acesso a esse cliente.
/v1/terceiro/txPessoaConsulta uma pessoa
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_pessoa |
integer | sim | Id da pessoa (Ou cpf_cnpj.) |
curl -s -X GET "$BASE/v1/terceiro/txPessoa?$AUTH&id_tx_pessoa="
Resposta:
{
"status": "ok",
"id_tx_pessoa": 321,
"cpf_cnpj": "00000000000100",
"rg_inscricao": "ISENTO",
"nome_razao_social": "EMPRESA EXEMPLO LTDA",
"identificacao": "EXEMPLO",
"nascimento_fundacao": "2010-01-01",
"telefone": "4133334444",
"celular": "41999990000",
"email": "contato@exemplo.com.br",
"cep": "80000000",
"logradouro": "RUA EXEMPLO",
"numero": 100,
"complemento": "",
"bairro": "CENTRO",
"localidade": "CURITIBA",
"estado": "PR",
"crt": "3",
"ddi_telefone": 55,
"ddi_celular": 55,
"inscricao_municipal": "",
"pais": "BRASIL",
"suframa": "",
"tipo": "J",
"indiedest": "1",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_tx_pessoa":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 403 — {"errors":{"acesso":"Negado"}}: fora do escopo do acesso..
Consulta de filial (estabelecimento). Devolve a filial e os dados cadastrais da pessoa jurídica dela, por id_tx_estabelecimento ou CNPJ. Qualquer filial do app pode ser consultada, exceto por acesso com perfil filial, que só vê a própria.
/v1/terceiro/txEstabelecimentoConsulta uma filial
Para acesso com perfil filial, o id_tx_estabelecimento da query é substituído pelo da própria filial (só vê a própria).
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_estabelecimento |
integer | sim | Id da filial (Ou cpf_cnpj.) |
curl -s -X GET "$BASE/v1/terceiro/txEstabelecimento?$AUTH&id_tx_estabelecimento="
Resposta:
{
"status": "ok",
"id_tx_estabelecimento": 3,
"nome": "FILIAL EXEMPLO",
"id_tx_pessoa": 321,
"cpf_cnpj": "00000000000100",
"rg_inscricao": "ISENTO",
"nome_razao_social": "EMPRESA EXEMPLO LTDA",
"identificacao": "EXEMPLO",
"nascimento_fundacao": "2010-01-01",
"telefone": "4133334444",
"celular": "41999990000",
"email": "contato@exemplo.com.br",
"cep": "80000000",
"logradouro": "RUA EXEMPLO",
"numero": 100,
"complemento": "",
"bairro": "CENTRO",
"localidade": "CURITIBA",
"estado": "PR",
"crt": "3",
"ddi_telefone": 55,
"ddi_celular": 55,
"inscricao_municipal": "",
"pais": "BRASIL",
"suframa": "",
"tipo": "J",
"indiedest": "1",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_tx_estabelecimento":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app..
Consulta de operador. Devolve o operador (funcionário que opera o carregamento e o descarregamento) e os dados da pessoa, por id_operador ou CPF. Só leitura. Não restringe pelo escopo do acesso.
/v1/terceiro/operadorConsulta um operador
Perfis: App, Rede, Filial, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_operador |
integer | sim | Id do operador (Ou cpf.) |
curl -s -X GET "$BASE/v1/terceiro/operador?$AUTH&id_operador="
Resposta:
{
"status": "ok",
"id_operador": 40,
"validade_nr_35": "2027-01-01",
"validade_nr_20": "2027-01-01",
"validade_mopp": "2027-01-01",
"validade_integracao": "2027-01-01",
"pode_completar": "N",
"limite_completar": 0,
"codigo_erp": "O040",
"id_tx_pessoa": 330,
"cpf": "00000000191",
"rg": "",
"nome": "OPERADOR EXEMPLO",
"identificacao": "",
"nascimento": "1985-01-01",
"telefone": "",
"celular": "",
"email": "",
"cep": "",
"logradouro": "",
"numero": 0,
"complemento": "",
"bairro": "",
"localidade": "",
"estado": "PR",
"ddi_telefone": 55,
"ddi_celular": 55,
"pais": "BRASIL",
"ativo": true
}
Erros específicos: 400 — {"errors":{"id_operador":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app..
Observações livres ligadas a qualquer registro. Grava e consulta observações (texto) ligadas a qualquer registro do sistema, identificado por tabela + id. GET por id_tx_observacao devolve uma; por tabela + id devolve a lista. DELETE desativa (ativo = N). A API não verifica se a tabela e o id existem e não restringe pelo escopo do acesso (só pelo app).
/v1/terceiro/txObservacaoConsulta uma observação ou as de um registro
Por id_tx_observacao a resposta é um objeto plano (sem data[]): {status, id_tx_observacao, tabela, id, observacao, data_hora, ativo}.
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_observacao |
integer | não | Id da observação (tem prioridade). |
tabela |
string | não | Tabela (usar junto com id quando não houver id_tx_observacao). |
id |
integer | não | Id do registro na tabela. |
curl -s -X GET "$BASE/v1/terceiro/txObservacao?$AUTH"
Resposta:
{
"status": "ok",
"data": [
{
"id_tx_observacao": 15,
"observacao": "Cliente pediu conferência",
"data_hora": "2026-11-10 09:30:00",
"ativo": true
}
]
}
Erros específicos: 400 — {"errors":{"params":"Você deve passar o id_tx_observacao ou o conjunto (tabela, id)"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app..
/v1/terceiro/txObservacaoCria uma observação
Perfis: App, Rede, Filial, Cliente, Pessoa
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tabela |
string | sim | Nome da tabela do sistema a que a observação se refere (ex.: ordem). |
id |
integer | sim | Id do registro nessa tabela. |
observacao |
string | sim | Texto |
ativo |
boolean | não | true/false |
curl -s -X POST "$BASE/v1/terceiro/txObservacao?$AUTH" \
-H 'Content-Type: application/json' \
-d '{"tabela": "ordem", "id": 9001, "observacao": "Cliente pediu conferência"}'
Resposta:
{
"status": "ok",
"id_tx_observacao": 15
}
Erros específicos: 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)")..
/v1/terceiro/txObservacaoAltera uma observação (parcial)
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_observacao |
integer | sim | Id da observação |
Corpo (JSON objeto)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tabela |
string | não | Nome da tabela do sistema a que a observação se refere (ex.: ordem). |
id |
integer | não | Id do registro nessa tabela. |
observacao |
string | não | Texto |
ativo |
boolean | não | true/false |
curl -s -X PUT "$BASE/v1/terceiro/txObservacao?$AUTH&id_tx_observacao=" \
-H 'Content-Type: application/json' \
-d '{"observacao": "Texto corrigido"}'
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_tx_observacao":"Inválido"}}.; 400 — {"errors":{"body":"O conteúdo não é um JSON válido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"exception":""}}: erro de validação ao gravar (ex.: "Dados já cadastrados (id)")..
/v1/terceiro/txObservacaoDesativa uma observação
Perfis: App, Rede, Filial, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_observacao |
integer | sim | Id da observação |
curl -s -X DELETE "$BASE/v1/terceiro/txObservacao?$AUTH&id_tx_observacao="
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {"errors":{"id_tx_observacao":"Inválido"}}.; 400 — {"errors":{"registro":"Falha ao localizar"}}: o id não existe no app.; 400 — {"errors":{"registro":"Falha ao desativar"}}: por exemplo, registro já inativo..