{
  "info": {
    "name": "PetroW — APIs de terceiro",
    "_postman_id": "petrow-petrow-apis-de-terceiro",
    "description": "Coleção gerada da documentação oficial (https://wiki.txfuel.com.br/pt-br/petrow/api). Preencha as variáveis da coleção: base_url, tipo_identificador (APP, REDE, CNPJ ou CPF), valor_identificador, identificador e app_id. A senha do dia é calculada automaticamente.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "// Autenticação das APIs de terceiro do PetroW: acrescenta APP|REDE|CNPJ|CPF, SENHA (do dia) e A em todo pedido.",
          "// SENHA = md5(identificador + AAAA-MM-DD + valor enviado em APP/REDE/CNPJ/CPF), data de Brasília.",
          "const tipo = pm.variables.get('tipo_identificador') || 'APP';",
          "const valor = pm.variables.get('valor_identificador') || '';",
          "const identificador = pm.variables.get('identificador') || '';",
          "const hoje = new Date(Date.now() - 3 * 3600 * 1000).toISOString().slice(0, 10);",
          "const chave = (tipo === 'CNPJ' || tipo === 'CPF') ? valor.replace(/\\D/g, '') : valor;",
          "const senha = CryptoJS.MD5(identificador + hoje + chave).toString();",
          "['APP', 'REDE', 'CNPJ', 'CPF', 'SENHA', 'A'].forEach(k => pm.request.url.query.remove(k));",
          "pm.request.url.query.add({ key: tipo, value: chave });",
          "pm.request.url.query.add({ key: 'SENHA', value: senha });",
          "pm.request.url.query.add({ key: 'A', value: pm.variables.get('app_id') });"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "base_url",
      "value": "https://pwbase1.txfuel.com.br/api"
    },
    {
      "key": "tipo_identificador",
      "value": "APP"
    },
    {
      "key": "valor_identificador",
      "value": "NOME DO APP"
    },
    {
      "key": "identificador",
      "value": ""
    },
    {
      "key": "app_id",
      "value": "0"
    }
  ],
  "item": [
    {
      "name": "Ordens",
      "description": "Ordens de carregamento e descarregamento: criar, consultar, mudar a situação (fila, operação, finalizar), cancelar, lacres, amostras e conferência.",
      "item": [
        {
          "name": "GET ordem — Ordem pelo id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordem?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordem"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Verifica o tipo da ordem e devolve exatamente a mesma resposta de GET ordemCarregamento (tipo C) ou GET ordemDescarregamento (tipo D). Só aceita GET.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET ordemCarregamento — Consulta a ordem de carregamento",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemCarregamento?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemCarregamento"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Datas no formato ISO 'AAAA-MM-DDTHH:MM:SS.ffffff' (segundos e frações omitidos quando zero). 1980-01-01T00:00 = sem data; 2099-12-31T23:59(:59) = sem limite.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST ordemCarregamento — Cria ordem de carregamento",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemCarregamento",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemCarregamento"
              ],
              "query": []
            },
            "description": "POST cria a ordem de carregamento com os itens (compartimentos) e, se enviados, lacres, amostras e laudos, tudo de uma vez: se algo falhar, nada é gravado. PUT muda a situação (?acao=FILA|OPERACAO|FINALIZAR|CANCELAR) ou, se o corpo trouxer laudo_produto, só vincula ou remove laudos. DELETE cancela, apenas ordem em P (pendente). Acesso com perfil filial cria a ordem na própria filial; acesso com perfil cliente só cria e consulta ordens do próprio cliente.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cpf_cnpj_cliente\": \"00.000.000/0001-00\",\n  \"cpf_motorista\": \"000.000.000-00\",\n  \"placa1\": \"ABC1D23\",\n  \"placa2\": \"ABC1D24\",\n  \"cpf_cnpj_transportadora\": \"00.000.000/0002-00\",\n  \"transferencia\": false,\n  \"validade_inicial\": \"2026-11-12 00:00:00\",\n  \"validade_final\": \"2026-11-13 23:59:59\",\n  \"codigo_interno\": \"OC-0001\",\n  \"observacao\": \"\",\n  \"ordem_item\": [\n    {\n      \"placa\": \"ABC1D24\",\n      \"id_produto\": 10,\n      \"compartimento\": 1,\n      \"nivel\": 0,\n      \"quantidade\": 10000,\n      \"amostras\": 0\n    },\n    {\n      \"placa\": \"ABC1D24\",\n      \"id_produto\": 10,\n      \"compartimento\": 2,\n      \"nivel\": 0,\n      \"quantidade\": 15000,\n      \"amostras\": 0\n    }\n  ],\n  \"ordem_lacre\": [\n    {\n      \"tipo\": \"SUPERIOR\",\n      \"numero\": \"1001\"\n    }\n  ],\n  \"ordem_amostra\": [\n    {\n      \"tipo\": \"TESTEMUNHA\",\n      \"numero\": \"5001\"\n    }\n  ],\n  \"laudo_produto\": [\n    {\n      \"id_produto\": 10,\n      \"id_laudo_produto\": 77\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT ordemCarregamento — Muda a situação (acao) ou vincula/remove laudos por produto",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemCarregamento?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemCarregamento"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                },
                {
                  "key": "acao",
                  "value": "",
                  "description": "FILA, OPERACAO, FINALIZAR ou CANCELAR. Obrigatória, exceto quando o corpo traz laudo_produto.",
                  "disabled": true
                }
              ]
            },
            "description": "FILA, OPERACAO e FINALIZAR não verificam se a ordem é de carregamento (só CANCELAR verifica o tipo). FILA e OPERACAO fora da situação esperada respondem 200 com situacao='ORDEM NÃO ENCONTRADA', e não um erro.\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"laudo_produto\": [\n    {\n      \"id_produto\": 10,\n      \"id_laudo_produto\": 77\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE ordemCarregamento — Cancela a ordem (só em P, pendente)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemCarregamento?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemCarregamento"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "POST cria a ordem de carregamento com os itens (compartimentos) e, se enviados, lacres, amostras e laudos, tudo de uma vez: se algo falhar, nada é gravado. PUT muda a situação (?acao=FILA|OPERACAO|FINALIZAR|CANCELAR) ou, se o corpo trouxer laudo_produto, só vincula ou remove laudos. DELETE cancela, apenas ordem em P (pendente). Acesso com perfil filial cria a ordem na própria filial; acesso com perfil cliente só cria e consulta ordens do próprio cliente.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET ordemDescarregamento — Consulta a ordem de descarregamento",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemDescarregamento?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemDescarregamento"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "POST cria a ordem de descarregamento (um produto, volumes da nota de remessa e laudo opcional). Ao contrário do carregamento, não tem itens nem compartimentos: o POST ignora ordem_item, ordem_lacre, ordem_amostra e transferencia (lacres e amostras vão por ordemLacre e ordemAmostra). PUT muda a situação por ?acao= ou, com ?id_laudo_produto=, só vincula ou remove o laudo. DELETE cancela apenas ordem em P (pendente).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST ordemDescarregamento — Cria ordem de descarregamento",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemDescarregamento",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemDescarregamento"
              ],
              "query": []
            },
            "description": "POST cria a ordem de descarregamento (um produto, volumes da nota de remessa e laudo opcional). Ao contrário do carregamento, não tem itens nem compartimentos: o POST ignora ordem_item, ordem_lacre, ordem_amostra e transferencia (lacres e amostras vão por ordemLacre e ordemAmostra). PUT muda a situação por ?acao= ou, com ?id_laudo_produto=, só vincula ou remove o laudo. DELETE cancela apenas ordem em P (pendente).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cpf_cnpj_cliente\": \"00.000.000/0001-00\",\n  \"cpf_motorista\": \"000.000.000-00\",\n  \"placa1\": \"ABC1D23\",\n  \"id_produto\": 10,\n  \"volume_ambiente_remessa\": 30000,\n  \"volume_a_20_remessa\": 29850,\n  \"densidade_a_20_remessa\": 0.835,\n  \"codigo_interno\": \"OC-0002\",\n  \"nfe_origem\": \"00000000000000000000000000000000000000000000\",\n  \"id_laudo_produto\": 77\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT ordemDescarregamento — Muda a situação (acao) ou vincula/remove o laudo",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemDescarregamento?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemDescarregamento"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                },
                {
                  "key": "acao",
                  "value": "",
                  "description": "FILA, OPERACAO, FINALIZAR ou CANCELAR. Obrigatória, exceto quando se informa id_laudo_produto.",
                  "disabled": true
                },
                {
                  "key": "id_laudo_produto",
                  "value": "",
                  "description": "Se informado (>= 0), o PUT faz só isso e ignora acao: > 0 vincula o laudo à ordem; 0 remove o laudo.",
                  "disabled": true
                }
              ]
            },
            "description": "O PUT do descarregamento não lê o corpo: o laudo vai na query (no carregamento, vai no corpo). FILA, OPERACAO e FINALIZAR não verificam o tipo da ordem.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "DELETE ordemDescarregamento — Cancela a ordem (só em P, pendente)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemDescarregamento?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemDescarregamento"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "POST cria a ordem de descarregamento (um produto, volumes da nota de remessa e laudo opcional). Ao contrário do carregamento, não tem itens nem compartimentos: o POST ignora ordem_item, ordem_lacre, ordem_amostra e transferencia (lacres e amostras vão por ordemLacre e ordemAmostra). PUT muda a situação por ?acao= ou, com ?id_laudo_produto=, só vincula ou remove o laudo. DELETE cancela apenas ordem em P (pendente).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET ordemLacre — Lista os lacres da ordem",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemLacre?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemLacre"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Consulta e mantém os lacres de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove um lacre ou todos. O mesmo lacre não pode se repetir na mesma ordem (pode existir em outras).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST ordemLacre — Acrescenta lacres (sem apagar os existentes)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemLacre?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemLacre"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Consulta e mantém os lacres de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove um lacre ou todos. O mesmo lacre não pode se repetir na mesma ordem (pode existir em outras).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"tipo\": \"SUPERIOR\",\n    \"numero\": 1001\n  },\n  {\n    \"tipo\": \"INFERIOR\",\n    \"numero\": 1002\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT ordemLacre — Substitui todos os lacres da ordem pela lista enviada",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemLacre?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemLacre"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Consulta e mantém os lacres de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove um lacre ou todos. O mesmo lacre não pode se repetir na mesma ordem (pode existir em outras).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"tipo\": \"SUPERIOR\",\n    \"numero\": 1001\n  },\n  {\n    \"tipo\": \"INFERIOR\",\n    \"numero\": 1002\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE ordemLacre — Remove um lacre (tipo+numero) ou todos (sem os dois)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemLacre?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemLacre"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                },
                {
                  "key": "tipo",
                  "value": "",
                  "description": "Tipo do item a remover. Vai junto com numero; sem os dois, remove todos.",
                  "disabled": true
                },
                {
                  "key": "numero",
                  "value": "",
                  "description": "Número do item a remover.",
                  "disabled": true
                }
              ]
            },
            "description": "Consulta e mantém os lacres de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove um lacre ou todos. O mesmo lacre não pode se repetir na mesma ordem (pode existir em outras).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET ordemAmostra — Lista as amostras da ordem",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemAmostra?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemAmostra"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Consulta e mantém as amostras de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove uma amostra ou todas. O par (tipo, numero) da amostra é único em todas as ordens: o POST avisa se a amostra já está nesta ou em outra ordem.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST ordemAmostra — Acrescenta amostras (sem apagar as existentes)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemAmostra?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemAmostra"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Consulta e mantém as amostras de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove uma amostra ou todas. O par (tipo, numero) da amostra é único em todas as ordens: o POST avisa se a amostra já está nesta ou em outra ordem.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"tipo\": \"SUPERIOR\",\n    \"numero\": 1001\n  },\n  {\n    \"tipo\": \"INFERIOR\",\n    \"numero\": 1002\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT ordemAmostra — Substitui todas as amostras da ordem pela lista enviada",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemAmostra?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemAmostra"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Consulta e mantém as amostras de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove uma amostra ou todas. O par (tipo, numero) da amostra é único em todas as ordens: o POST avisa se a amostra já está nesta ou em outra ordem.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"tipo\": \"SUPERIOR\",\n    \"numero\": 1001\n  },\n  {\n    \"tipo\": \"INFERIOR\",\n    \"numero\": 1002\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE ordemAmostra — Remove uma amostra (tipo + numero) ou todas (sem os dois)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/ordemAmostra?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "ordemAmostra"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                },
                {
                  "key": "tipo",
                  "value": "",
                  "description": "Tipo do item a remover. Vai junto com numero; sem os dois, remove todos.",
                  "disabled": true
                },
                {
                  "key": "numero",
                  "value": "",
                  "description": "Número do item a remover.",
                  "disabled": true
                }
              ]
            },
            "description": "Consulta e mantém as amostras de uma ordem (carregamento ou descarregamento). POST, PUT e DELETE só funcionam com a ordem em P (pendente) e dentro do escopo do acesso. POST acrescenta, PUT substitui a lista inteira e DELETE remove uma amostra ou todas. O par (tipo, numero) da amostra é único em todas as ordens: o POST avisa se a amostra já está nesta ou em outra ordem.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET conferencia — Ordens conferidas ainda em O (operação) ou V (vistoria)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/conferencia?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "conferencia"
              ],
              "query": [
                {
                  "key": "tipo",
                  "value": "",
                  "description": "C (carregamento, padrão), D (descarregamento) ou A (abastecimento).",
                  "disabled": true
                }
              ]
            },
            "description": "Quando o app exige conferência (parâmetros OPERACAO_CARREGAMENTO_CONFERENCIA, OPERACAO_DESCARREGAMENTO_CONFERENCIA ou OPERACAO_ABASTECIMENTO_CONFERENCIA = S), a ordem só finaliza depois de conferida. POST (ou PUT, que é idêntico) grava data_hora_conferencia = agora numa ordem em O (operação) ou V (vistoria) dentro da validade. GET lista as ordens já conferidas que ainda estão em O ou V.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST conferencia — Registra a conferência da ordem",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/conferencia?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "conferencia"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Quando o app exige conferência (parâmetros OPERACAO_CARREGAMENTO_CONFERENCIA, OPERACAO_DESCARREGAMENTO_CONFERENCIA ou OPERACAO_ABASTECIMENTO_CONFERENCIA = S), a ordem só finaliza depois de conferida. POST (ou PUT, que é idêntico) grava data_hora_conferencia = agora numa ordem em O (operação) ou V (vistoria) dentro da validade. GET lista as ordens já conferidas que ainda estão em O ou V.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "PUT conferencia — Igual ao POST",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/conferencia?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "conferencia"
              ],
              "query": [
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Id da ordem. Não aceita o número nem o codigo_interno.",
                  "disabled": false
                }
              ]
            },
            "description": "Quando o app exige conferência (parâmetros OPERACAO_CARREGAMENTO_CONFERENCIA, OPERACAO_DESCARREGAMENTO_CONFERENCIA ou OPERACAO_ABASTECIMENTO_CONFERENCIA = S), a ordem só finaliza depois de conferida. POST (ou PUT, que é idêntico) grava data_hora_conferencia = agora numa ordem em O (operação) ou V (vistoria) dentro da validade. GET lista as ordens já conferidas que ainda estão em O ou V.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        }
      ]
    },
    {
      "name": "Notas fiscais, CT-e e laudos",
      "description": "Consulta de notas fiscais e CT-e, pedido de importação pela chave, laudos de produto (com checklist) e movimento de saldo diário.",
      "item": [
        {
          "name": "GET notaFiscal — Consulta nota fiscal por id ou chave",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/notaFiscal?id_nota_fiscal=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "notaFiscal"
              ],
              "query": [
                {
                  "key": "id_nota_fiscal",
                  "value": "",
                  "description": "Id da nota fiscal.",
                  "disabled": false
                }
              ]
            },
            "description": "Devolve a identificação e a situação de uma NF-e que já existe no PetroW, localizada por id_nota_fiscal ou pela chave de 44 dígitos. Só leitura. Acesso com perfil cliente ou de filial só vê notas do próprio cliente ou filial.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET importarNotaFiscal — Consulta o andamento",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/importarNotaFiscal?id_importar_nota_fiscal=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "importarNotaFiscal"
              ],
              "query": [
                {
                  "key": "id_importar_nota_fiscal",
                  "value": "",
                  "description": "Id do pedido de importação",
                  "disabled": false
                }
              ]
            },
            "description": "O GET não restringe pelo escopo do acesso (cliente ou filial): consulta qualquer pedido do app.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "POST importarNotaFiscal — Coloca a chave na fila de importação",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/importarNotaFiscal?chave=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "importarNotaFiscal"
              ],
              "query": [
                {
                  "key": "chave",
                  "value": "",
                  "description": "Chave de acesso da NF-e (44 dígitos; aceita máscara).",
                  "disabled": false
                }
              ]
            },
            "description": "A chave vai na query string, não no corpo. O corpo é ignorado.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET conhecimentoTransporte — Consulta CT-e por id ou chave",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/conhecimentoTransporte?id_conhecimento_transporte=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "conhecimentoTransporte"
              ],
              "query": [
                {
                  "key": "id_conhecimento_transporte",
                  "value": "",
                  "description": "Id do CT-e",
                  "disabled": false
                }
              ]
            },
            "description": "Na busca por chave, só o formato (44 dígitos) é verificado.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET importarConhecimentoTransporte — Consulta o andamento",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/importarConhecimentoTransporte?id_importar_conhecimento_transporte=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "importarConhecimentoTransporte"
              ],
              "query": [
                {
                  "key": "id_importar_conhecimento_transporte",
                  "value": "",
                  "description": "Id do pedido de importação",
                  "disabled": false
                }
              ]
            },
            "description": "O GET não restringe pelo escopo do acesso (cliente ou filial): consulta qualquer pedido do app.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "POST importarConhecimentoTransporte — Coloca a chave na fila de importação",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/importarConhecimentoTransporte?chave=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "importarConhecimentoTransporte"
              ],
              "query": [
                {
                  "key": "chave",
                  "value": "",
                  "description": "Chave de acesso do CT-e (44 dígitos; aceita máscara).",
                  "disabled": false
                }
              ]
            },
            "description": "A chave vai na query string, não no corpo. O corpo é ignorado.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET laudoProduto — Consulta um laudo com checklist, vínculos e PDF",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/laudoProduto?id_laudo_produto=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "laudoProduto"
              ],
              "query": [
                {
                  "key": "id_laudo_produto",
                  "value": "",
                  "description": "Id do laudo",
                  "disabled": false
                }
              ]
            },
            "description": "Cria, consulta, altera e desativa laudos de produto. O laudo nasce pendente (aprovado = X). Aprovar ou reprovar não é feito por esta API; depois de aprovado ou reprovado, o laudo não pode mais ser alterado. O checklist é escolhido pela configuração de checklist de laudo mais específica para filial × fornecedor × produto × grade × tipo. O GET lista todas as perguntas desse checklist (respondidas ou não); POST e PUT gravam as respostas por id_checklist_item (criam a resposta ou alteram a existente). Acesso com perfil filial ou rede só acessa laudos da filial; acesso com perfil cliente só consulta laudos ligados a ordens do cliente.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST laudoProduto — Cria um laudo (e respostas do checklist)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/laudoProduto",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "laudoProduto"
              ],
              "query": []
            },
            "description": "Laudo e respostas são gravados juntos: qualquer erro desfaz tudo. Sem 'checklist' no corpo, nenhuma resposta é gravada.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cpf_cnpj_tx_estabelecimento\": \"00.000.000/0001-00\",\n  \"cpf_cnpj_fornecedor\": \"11.111.111/0001-11\",\n  \"id_produto\": 5,\n  \"quantidade\": 30000,\n  \"unidade\": \"L\",\n  \"numero\": \"LAU-001\",\n  \"data_amostra\": \"2026-11-10\",\n  \"data_laudo\": \"2026-11-10\",\n  \"lacres\": \"123;124\",\n  \"checklist\": [\n    {\n      \"id_checklist_item\": 48,\n      \"resposta\": \"LÍMPIDO\",\n      \"observacao\": \"\"\n    },\n    {\n      \"id_checklist_item\": 49,\n      \"resposta\": \"INCOLOR\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT laudoProduto — Altera um laudo pendente (e respostas)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/laudoProduto?id_laudo_produto=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "laudoProduto"
              ],
              "query": [
                {
                  "key": "id_laudo_produto",
                  "value": "",
                  "description": "Id do laudo",
                  "disabled": false
                }
              ]
            },
            "description": "Atenção: o PUT não é parcial. Todos os campos do laudo são regravados com o valor do corpo ou com o padrão (0, '', 'L'): mande o laudo completo. data_amostra e data_laudo só mudam quando enviadas. As respostas do checklist só mudam para os itens enviados.\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id_tx_estabelecimento\": 3,\n  \"id_fornecedor\": 12,\n  \"id_produto\": 5,\n  \"quantidade\": 30000,\n  \"unidade\": \"L\",\n  \"numero\": \"LAU-001\",\n  \"data_amostra\": \"2026-11-10\",\n  \"data_laudo\": \"2026-11-10\",\n  \"checklist\": {\n    \"respostas\": [\n      {\n        \"id_checklist_item\": 49,\n        \"resposta\": \"INCOLOR\",\n        \"observacao\": \"conferido\"\n      }\n    ]\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE laudoProduto — Desativa um laudo",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/laudoProduto?id_laudo_produto=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "laudoProduto"
              ],
              "query": [
                {
                  "key": "id_laudo_produto",
                  "value": "",
                  "description": "Id do laudo",
                  "disabled": false
                }
              ]
            },
            "description": "Desativa (ativo = N); não apaga.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET movimentoSaldoDia — Lista o movimento e o saldo por dia",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/movimentoSaldoDia?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "movimentoSaldoDia"
              ],
              "query": [
                {
                  "key": "data_inicial",
                  "value": "",
                  "description": "Primeiro dia (AAAA-MM-DD). Padrão: 1980-01-01.",
                  "disabled": true
                },
                {
                  "key": "data_final",
                  "value": "",
                  "description": "Último dia (AAAA-MM-DD). Padrão: 2099-12-31.",
                  "disabled": true
                },
                {
                  "key": "id_tx_estabelecimento",
                  "value": "",
                  "description": "Filtra a filial (0 = todas)",
                  "disabled": true
                },
                {
                  "key": "id_cliente",
                  "value": "",
                  "description": "Filtra o cliente (0 = todos)",
                  "disabled": true
                },
                {
                  "key": "id_produto",
                  "value": "",
                  "description": "Filtra o produto (0 = todos)",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "",
                  "description": "Página (padrão 1).",
                  "disabled": true
                },
                {
                  "key": "size",
                  "value": "",
                  "description": "Itens por página, de 1 a 50 (padrão 50).",
                  "disabled": true
                }
              ]
            },
            "description": "Ordenado por cliente, produto e dia. Sem linhas: data = [] e param só com _size e _page.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        }
      ]
    },
    {
      "name": "Cadastros",
      "description": "Clientes, fornecedores, transportadoras, veículos, motoristas, produtos, pessoas, filiais, operadores e observações.",
      "item": [
        {
          "name": "GET cliente — Consulta um cliente",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/cliente?id_cliente=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "cliente"
              ],
              "query": [
                {
                  "key": "id_cliente",
                  "value": "",
                  "description": "Id do cliente",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST cliente — Cria um cliente",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/cliente",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "cliente"
              ],
              "query": []
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cpf_cnpj\": \"00.000.000/0001-00\",\n  \"nome_razao_social\": \"EMPRESA EXEMPLO LTDA\",\n  \"identificacao\": \"EXEMPLO\",\n  \"email\": \"contato@exemplo.com.br\",\n  \"cep\": \"80000-000\",\n  \"logradouro\": \"RUA EXEMPLO\",\n  \"numero\": 100,\n  \"bairro\": \"CENTRO\",\n  \"localidade\": \"CURITIBA\",\n  \"estado\": \"PR\",\n  \"codigo_erp\": \"C001\",\n  \"simp_instalacao\": \"1234567\",\n  \"simp_agente\": \"1234567890\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT cliente — Altera um cliente",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/cliente?id_cliente=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "cliente"
              ],
              "query": [
                {
                  "key": "id_cliente",
                  "value": "",
                  "description": "Id do cliente",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"novo@exemplo.com.br\",\n  \"telefone\": \"4133335555\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE cliente — Desativa um cliente",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/cliente?id_cliente=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "cliente"
              ],
              "query": [
                {
                  "key": "id_cliente",
                  "value": "",
                  "description": "Id do cliente",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET fornecedor — Consulta um fornecedor",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/fornecedor?id_fornecedor=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "fornecedor"
              ],
              "query": [
                {
                  "key": "id_fornecedor",
                  "value": "",
                  "description": "Id do fornecedor",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST fornecedor — Cria um fornecedor",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/fornecedor",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "fornecedor"
              ],
              "query": []
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cpf_cnpj\": \"00.000.000/0001-00\",\n  \"nome_razao_social\": \"EMPRESA EXEMPLO LTDA\",\n  \"identificacao\": \"EXEMPLO\",\n  \"email\": \"contato@exemplo.com.br\",\n  \"cep\": \"80000-000\",\n  \"logradouro\": \"RUA EXEMPLO\",\n  \"numero\": 100,\n  \"bairro\": \"CENTRO\",\n  \"localidade\": \"CURITIBA\",\n  \"estado\": \"PR\",\n  \"codigo_erp\": \"C001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT fornecedor — Altera um fornecedor",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/fornecedor?id_fornecedor=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "fornecedor"
              ],
              "query": [
                {
                  "key": "id_fornecedor",
                  "value": "",
                  "description": "Id do fornecedor",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"novo@exemplo.com.br\",\n  \"telefone\": \"4133335555\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE fornecedor — Desativa um fornecedor",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/fornecedor?id_fornecedor=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "fornecedor"
              ],
              "query": [
                {
                  "key": "id_fornecedor",
                  "value": "",
                  "description": "Id do fornecedor",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET transportadora — Consulta uma transportadora",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/transportadora?id_transportadora=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "transportadora"
              ],
              "query": [
                {
                  "key": "id_transportadora",
                  "value": "",
                  "description": "Id da transportadora.",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST transportadora — Cria uma transportadora",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/transportadora",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "transportadora"
              ],
              "query": []
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cpf_cnpj\": \"00.000.000/0001-00\",\n  \"nome_razao_social\": \"EMPRESA EXEMPLO LTDA\",\n  \"identificacao\": \"EXEMPLO\",\n  \"email\": \"contato@exemplo.com.br\",\n  \"cep\": \"80000-000\",\n  \"logradouro\": \"RUA EXEMPLO\",\n  \"numero\": 100,\n  \"bairro\": \"CENTRO\",\n  \"localidade\": \"CURITIBA\",\n  \"estado\": \"PR\",\n  \"codigo_erp\": \"C001\",\n  \"antt\": \"12345678\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT transportadora — Altera uma transportadora",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/transportadora?id_transportadora=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "transportadora"
              ],
              "query": [
                {
                  "key": "id_transportadora",
                  "value": "",
                  "description": "Id da transportadora.",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"novo@exemplo.com.br\",\n  \"telefone\": \"4133335555\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE transportadora — Desativa uma transportadora",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/transportadora?id_transportadora=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "transportadora"
              ],
              "query": [
                {
                  "key": "id_transportadora",
                  "value": "",
                  "description": "Id da transportadora.",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET veiculo — Consulta um veículo",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/veiculo?id_veiculo=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "veiculo"
              ],
              "query": [
                {
                  "key": "id_veiculo",
                  "value": "",
                  "description": "Id do veículo",
                  "disabled": false
                }
              ]
            },
            "description": "'compartimentos' só aparece se o veículo tiver compartimentos; cada compartimento lista só os níveis com cap_l > 0.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST veiculo — Cria um veículo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/veiculo",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "veiculo"
              ],
              "query": []
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"placa\": \"ABC1D23\",\n  \"tipo\": \"CARRETA\",\n  \"renavam\": \"00000000000\",\n  \"ano_fabricacao\": \"2020\",\n  \"ano_modelo\": \"2021\",\n  \"estado\": \"PR\",\n  \"localidade\": \"CURITIBA\",\n  \"compartimentos\": [\n    {\n      \"compartimento\": 1,\n      \"lacres\": 2,\n      \"niveis\": [\n        {\n          \"nivel\": 1,\n          \"cap_l\": 15000,\n          \"ev_mm\": 120,\n          \"ec_mm\": 300,\n          \"et_mm\": 1500\n        }\n      ]\n    },\n    {\n      \"compartimento\": 2,\n      \"lacres\": 2,\n      \"niveis\": [\n        {\n          \"nivel\": 1,\n          \"cap_l\": 30000\n        }\n      ]\n    }\n  ],\n  \"licencas_ambientais\": [\n    {\n      \"estado\": \"PR\",\n      \"validade\": \"2027-06-30\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT veiculo — Altera um veículo (parcial)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/veiculo?id_veiculo=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "veiculo"
              ],
              "query": [
                {
                  "key": "id_veiculo",
                  "value": "",
                  "description": "Id do veículo",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"validade_vistoria\": \"2027-05-10\",\n  \"compartimentos\": [\n    {\n      \"compartimento\": 2,\n      \"niveis\": [\n        {\n          \"nivel\": 1,\n          \"cap_l\": 0\n        }\n      ]\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE veiculo — Desativa um veículo",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/veiculo?id_veiculo=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "veiculo"
              ],
              "query": [
                {
                  "key": "id_veiculo",
                  "value": "",
                  "description": "Id do veículo",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET motorista — Consulta um motorista",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/motorista?id_motorista=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "motorista"
              ],
              "query": [
                {
                  "key": "id_motorista",
                  "value": "",
                  "description": "Id do motorista",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST motorista — Cria um motorista",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/motorista",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "motorista"
              ],
              "query": []
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cpf\": \"000.000.001-91\",\n  \"nome\": \"MOTORISTA EXEMPLO\",\n  \"celular\": \"41999990000\",\n  \"numero_cnh\": \"00000000000\",\n  \"categoria_cnh\": \"E\",\n  \"validade_cnh\": \"2028-03-01\",\n  \"validade_mopp\": \"2027-08-01\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT motorista — Altera um motorista (parcial)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/motorista?id_motorista=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "motorista"
              ],
              "query": [
                {
                  "key": "id_motorista",
                  "value": "",
                  "description": "Id do motorista",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"validade_mopp\": \"2028-08-01\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE motorista — Desativa um motorista",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/motorista?id_motorista=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "motorista"
              ],
              "query": [
                {
                  "key": "id_motorista",
                  "value": "",
                  "description": "Id do motorista",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET produto — Consulta um produto",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/produto?id_produto=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "produto"
              ],
              "query": [
                {
                  "key": "id_produto",
                  "value": "",
                  "description": "Id do produto",
                  "disabled": false
                }
              ]
            },
            "description": "Atenção: alguns campos têm grafia diferente da esperada e devem ser lidos exatamente assim: 'undiade', 'id_produto_composicacaoN' e 'perc_composicacaoN'.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET txPessoa — Consulta uma pessoa",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/txPessoa?id_tx_pessoa=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "txPessoa"
              ],
              "query": [
                {
                  "key": "id_tx_pessoa",
                  "value": "",
                  "description": "Id da pessoa",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET txEstabelecimento — Consulta uma filial",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/txEstabelecimento?id_tx_estabelecimento=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "txEstabelecimento"
              ],
              "query": [
                {
                  "key": "id_tx_estabelecimento",
                  "value": "",
                  "description": "Id da filial",
                  "disabled": false
                }
              ]
            },
            "description": "Para acesso com perfil filial, o id_tx_estabelecimento da query é substituído pelo da própria filial (só vê a própria).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET operador — Consulta um operador",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/operador?id_operador=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "operador"
              ],
              "query": [
                {
                  "key": "id_operador",
                  "value": "",
                  "description": "Id do operador",
                  "disabled": false
                }
              ]
            },
            "description": "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.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET txObservacao — Consulta uma observação ou as de um registro",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/txObservacao?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "txObservacao"
              ],
              "query": [
                {
                  "key": "id_tx_observacao",
                  "value": "",
                  "description": "Id da observação (tem prioridade).",
                  "disabled": true
                },
                {
                  "key": "tabela",
                  "value": "",
                  "description": "Tabela (usar junto com id quando não houver id_tx_observacao).",
                  "disabled": true
                },
                {
                  "key": "id",
                  "value": "",
                  "description": "Id do registro na tabela.",
                  "disabled": true
                }
              ]
            },
            "description": "Por id_tx_observacao a resposta é um objeto plano (sem data[]): {status, id_tx_observacao, tabela, id, observacao, data_hora, ativo}.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "POST txObservacao — Cria uma observação",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/txObservacao",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "txObservacao"
              ],
              "query": []
            },
            "description": "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).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tabela\": \"ordem\",\n  \"id\": 9001,\n  \"observacao\": \"Cliente pediu conferência\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT txObservacao — Altera uma observação (parcial)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/txObservacao?id_tx_observacao=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "txObservacao"
              ],
              "query": [
                {
                  "key": "id_tx_observacao",
                  "value": "",
                  "description": "Id da observação",
                  "disabled": false
                }
              ]
            },
            "description": "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).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"observacao\": \"Texto corrigido\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE txObservacao — Desativa uma observação",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/txObservacao?id_tx_observacao=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "txObservacao"
              ],
              "query": [
                {
                  "key": "id_tx_observacao",
                  "value": "",
                  "description": "Id da observação",
                  "disabled": false
                }
              ]
            },
            "description": "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).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        }
      ]
    },
    {
      "name": "Supervisório e automação",
      "description": "Usadas pelo programa Supervisório e pelos equipamentos da base: ordens do dia, senhas, eventos, tanques, peso de balança, cancela, câmera, totem, Dayler, Danload e impressão.",
      "item": [
        {
          "name": "GET supervisorio — Configuração dos equipamentos (padrão) ou ordens a operar (acao=ORDEM)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/supervisorio?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "supervisorio"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "ORDEM = lista de ordens; qualquer outro valor ou ausente = configuração (CONFIG). Não diferencia maiúsculas.",
                  "disabled": true
                },
                {
                  "key": "tipo",
                  "value": "",
                  "description": "Só acao=ORDEM: C (carregamento), D (descarregamento) ou * (ambos, padrão).",
                  "disabled": true
                },
                {
                  "key": "filtro_senha",
                  "value": "",
                  "description": "Só acao=ORDEM: S = só itens SEM senha gerada, C = só COM senha, * = todos (padrão).",
                  "disabled": true
                },
                {
                  "key": "grupo",
                  "value": "",
                  "description": "Grupo de automação do equipamento. Omitido ou '*' = todos os ativos do app. Vazio não equivale a todos: filtra os equipamentos sem grupo.",
                  "disabled": true
                },
                {
                  "key": "id_operador",
                  "value": "",
                  "description": "Só na configuração: filtra um operador. Ausente = todos os operadores ativos com alguma senha de equipamento.",
                  "disabled": true
                }
              ]
            },
            "description": "Endpoint principal do programa Supervisório instalado no terminal. GET baixa a configuração dos equipamentos e a lista de ordens a operar; POST envia o que aconteceu no pátio (resultado das ordens, senhas, eventos, medições de tanque, pesagens). ORDEM, SENHA e TANQUE são guardados e processados depois pelo PetroW (encerrantes, temperatura e densidade, senhas dos compartimentos, medições de tanque): o efeito não é imediato. EVENTO e PESO são gravados na hora. Tipos de terceiro aceitos: rede, estabelecimento e pessoa (cliente não).\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "POST supervisorio — Envio de resultados do pátio por ?acao= (ORDEM padrão, SENHA, EVENTO, TANQUE, PESO)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/supervisorio?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "supervisorio"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "ORDEM (padrão), SENHA, EVENTO, TANQUE ou PESO. Outro valor dá erro acao 'Inválida'.",
                  "disabled": true
                },
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "acao=ORDEM: obrigatório (> 0 e dentro do escopo do acesso).",
                  "disabled": true
                },
                {
                  "key": "id_balanca",
                  "value": "",
                  "description": "acao=PESO: obrigatório (> 0).",
                  "disabled": true
                },
                {
                  "key": "peso",
                  "value": "",
                  "description": "acao=PESO: obrigatório (> 0), em kg.",
                  "disabled": true
                },
                {
                  "key": "placa",
                  "value": "",
                  "description": "acao=PESO: obrigatório. Placa válida (pontuação e espaços são retirados; letras convertidas para maiúsculas).",
                  "disabled": true
                },
                {
                  "key": "tipo",
                  "value": "",
                  "description": "acao=PESO: obrigatório. I = pesagem inicial, F = final, A = balança única de entrada e saída (o PetroW decide: se a última pesagem válida da placa foi I, esta é F; senão, I).",
                  "disabled": true
                }
              ]
            },
            "description": "Endpoint principal do programa Supervisório instalado no terminal. GET baixa a configuração dos equipamentos e a lista de ordens a operar; POST envia o que aconteceu no pátio (resultado das ordens, senhas, eventos, medições de tanque, pesagens). ORDEM, SENHA e TANQUE são guardados e processados depois pelo PetroW (encerrantes, temperatura e densidade, senhas dos compartimentos, medições de tanque): o efeito não é imediato. EVENTO e PESO são gravados na hora. Tipos de terceiro aceitos: rede, estabelecimento e pessoa (cliente não).\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id_ordem\": 123456,\n  \"id_cliente\": 100,\n  \"id_veiculo\": 200,\n  \"id_motorista\": 300,\n  \"data_hora_inicio\": \"2026-11-12 08:00:00\",\n  \"data_hora_fim\": \"2026-11-12 08:25:00\",\n  \"compartimentos\": [\n    {\n      \"id_ordem_item\": 987654,\n      \"id_operador\": 10,\n      \"identificador\": \"BRACO 1\",\n      \"compartimento\": 1,\n      \"sequencia\": 1,\n      \"quantidade_programada\": 5000,\n      \"quantidade_carregada\": 5000,\n      \"quantidade_pendente\": 0,\n      \"data_hora_inicio\": \"2026-11-12 08:02:00\",\n      \"data_hora_parada\": \"2026-11-12 08:20:00\",\n      \"identificador_integracao\": \"METROVAL\",\n      \"identificador_id\": 3,\n      \"s10a_contador_inicial\": 1000000,\n      \"s10a_contador_final\": 1005000,\n      \"s10a_temperatura\": 24.5,\n      \"s10a_densidade\": 0.835\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET danload6000 — Configuração (padrão), ordens (acao=ORDEM) ou portas seriais (acao=SERIAL)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/danload6000?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "danload6000"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "ORDEM, SERIAL ou ausente (configuração).",
                  "disabled": true
                },
                {
                  "key": "grupo",
                  "value": "",
                  "description": "Grupo de automação do equipamento. Omitido ou '*' = todos os ativos do app. Vazio não equivale a todos: filtra os equipamentos sem grupo.",
                  "disabled": true
                },
                {
                  "key": "porta_serial",
                  "value": "",
                  "description": "acao=SERIAL: filtra a porta serial (port_serial_name).",
                  "disabled": true
                }
              ]
            },
            "description": "**Obsoleto**: mantido para equipamentos antigos; use supervisorio. Versão anterior ao Supervisório, para plataformas com Danload 6000. GET traz a configuração dos Danload ou as ordens de carregamento; PUT envia o resultado das ordens, que o PetroW processa depois (convertendo os volumes para 20 °C). O PUT não verifica o escopo do acesso nas ordens do corpo. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "PUT danload6000 — Resultado das ordens carregadas (acao=ORDEM)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/danload6000?acao=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "danload6000"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "ORDEM ou LOG, exatamente assim, em maiúsculas (não há valor padrão). LOG não está implementado.",
                  "disabled": false
                }
              ]
            },
            "description": "**Obsoleto**: mantido para equipamentos antigos; use supervisorio. Versão anterior ao Supervisório, para plataformas com Danload 6000. GET traz a configuração dos Danload ou as ordens de carregamento; PUT envia o resultado das ordens, que o PetroW processa depois (convertendo os volumes para 20 °C). O PUT não verifica o escopo do acesso nas ordens do corpo. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"123456\": {\n    \"compartimentos\": [\n      {\n        \"id_danload6000\": 1,\n        \"produto_1\": 2,\n        \"temperatura_1\": 245,\n        \"densidade_1\": 0.835,\n        \"volume_1\": 5000,\n        \"produto_2\": 0\n      }\n    ]\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET zlx9000 — Lista dos ZLX9000 ativos",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/zlx9000?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "zlx9000"
              ],
              "query": [
                {
                  "key": "grupo",
                  "value": "",
                  "description": "Grupo de automação do equipamento. Omitido ou '*' = todos os ativos do app. Vazio não equivale a todos: filtra os equipamentos sem grupo.",
                  "disabled": true
                }
              ]
            },
            "description": "Devolve os ZLX9000 ativos do app (não usa acao). É a mesma lista zlx9000 de equipamento na configuração do supervisorio. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "GET dayler — Listas por ?acao= (GRAVAR padrão, LER, CANCELAR, SENHA)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/dayler?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "dayler"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "GRAVAR (padrão), LER, CANCELAR ou SENHA. Não diferencia maiúsculas.",
                  "disabled": true
                }
              ]
            },
            "description": "Usado pelo integrador da automação Dayler, só para ordens de carregamento dos clientes do app (respeitando o escopo do acesso). Fluxo: GET GRAVAR lista as ordens ainda não enviadas à automação → PUT GRAVAR envia os tickets (viram as senhas dos compartimentos e a ordem fica com automacao = S) → GET LER lista as ordens em operação já na automação → PUT LER envia o resultado (processado depois pelo PetroW) → GET e PUT CANCELAR tratam as canceladas. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "PUT dayler — Retorno da automação por ?acao= (GRAVAR padrão, LER, CANCELAR)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/dayler?",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "dayler"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "GRAVAR (padrão), LER ou CANCELAR.",
                  "disabled": true
                }
              ]
            },
            "description": "Usado pelo integrador da automação Dayler, só para ordens de carregamento dos clientes do app (respeitando o escopo do acesso). Fluxo: GET GRAVAR lista as ordens ainda não enviadas à automação → PUT GRAVAR envia os tickets (viram as senhas dos compartimentos e a ordem fica com automacao = S) → GET LER lista as ordens em operação já na automação → PUT LER envia o resultado (processado depois pelo PetroW) → GET e PUT CANCELAR tratam as canceladas. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ordens\": [\n    {\n      \"ordem\": 123456,\n      \"tickets\": [\n        1001,\n        1002,\n        1003\n      ]\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET totem — Etapas de conferência por ?acao= (motorista, ordem), em minúsculas",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/totem?acao=&cpf=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "totem"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "motorista ou ordem, exatamente em minúsculas. Outro valor dá erro acao 'Ação inválida'.",
                  "disabled": false
                },
                {
                  "key": "cpf",
                  "value": "",
                  "description": "CPF do motorista, só números (comparado com o cadastro).",
                  "disabled": false
                },
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "acao=ordem: obrigatório.",
                  "disabled": true
                }
              ]
            },
            "description": "O motorista digita o CPF (GET acao=motorista), depois o número da ordem (GET acao=ordem) e confirma (POST). A confirmação coloca a ordem na fila de agendamento e, se o app tem o parâmetro TOTEM_IMPRESSORA > 0, cria junto o trabalho de impressão do ticket (com os materiais da ordem quando TOTEM_IMPRIMIR_MATERIAIS = S). Só ordens em P (pendente) de carregamento ou descarregamento do motorista do CPF; acesso com perfil filial só vê as ordens da filial. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "POST totem — Coloca a ordem na fila (e imprime o ticket)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/totem?origem=&id=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "totem"
              ],
              "query": [
                {
                  "key": "origem",
                  "value": "",
                  "description": "ordem. Os valores pedido e contrato_coleta são aceitos, mas não fazem nada; outro valor dá erro.",
                  "disabled": false
                },
                {
                  "key": "id",
                  "value": "",
                  "description": "Id da ordem.",
                  "disabled": false
                },
                {
                  "key": "cpf_motorista",
                  "value": "",
                  "description": "CPF do motorista. Se informado, a ordem precisa ser dele.",
                  "disabled": true
                }
              ]
            },
            "description": "O motorista digita o CPF (GET acao=motorista), depois o número da ordem (GET acao=ordem) e confirma (POST). A confirmação coloca a ordem na fila de agendamento e, se o app tem o parâmetro TOTEM_IMPRESSORA > 0, cria junto o trabalho de impressão do ticket (com os materiais da ordem quando TOTEM_IMPRIMIR_MATERIAIS = S). Só ordens em P (pendente) de carregamento ou descarregamento do motorista do CPF; acesso com perfil filial só vê as ordens da filial. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "PUT balanca — Valida ordem (acao=VALIDAR_ORDEM, padrão)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/balanca?id_ordem=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "balanca"
              ],
              "query": [
                {
                  "key": "acao",
                  "value": "",
                  "description": "VALIDAR_ORDEM (padrão). Qualquer outra ação responde ok, sem dados.",
                  "disabled": true
                },
                {
                  "key": "id_ordem",
                  "value": "",
                  "description": "Ordem a validar.",
                  "disabled": false
                }
              ]
            },
            "description": "PUT verifica se a ordem pode passar na balança. GET não faz nada (devolve só status ok): a configuração das balanças vem na configuração do supervisorio e a pesagem é enviada por supervisorio?acao=PESO. Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "PUT cancela — Pedido de abertura da cancela",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/cancela?qrcode=&cancela=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "cancela"
              ],
              "query": [
                {
                  "key": "qrcode",
                  "value": "",
                  "description": "Id da ordem lido no QR Code.",
                  "disabled": false
                },
                {
                  "key": "cancela",
                  "value": "",
                  "description": "ENTRADA ou SAÍDA (aceita SAIDA; não diferencia maiúsculas e minúsculas).",
                  "disabled": false
                },
                {
                  "key": "id_cancela",
                  "value": "",
                  "description": "Cancela física (cadastro). Define se a leitura coloca a ordem em operação ou a finaliza, e é necessária para registrar a leitura.",
                  "disabled": true
                }
              ]
            },
            "description": "O leitor da cancela envia o número da ordem lido no QR Code. Na ENTRADA, abre se a ordem já está em O (operação) dentro da carência; senão, se ela está em A (aguardando), já foi chamada na fila e a cancela tem 'entrar em operação' = S, coloca em operação todas as ordens abertas do mesmo veículo e motorista. Na SAÍDA, abre se a ordem foi finalizada dentro da carência; senão, se a cancela tem 'finalizar ordem' = S, finaliza as ordens em O (operação) ou V (vistoria) do mesmo veículo e motorista. Cada leitura com id_cancela fica registrada (liberada ou negada, com o motivo). Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa."
          }
        },
        {
          "name": "POST camera — Leitura de placa",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/camera",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "camera"
              ],
              "query": []
            },
            "description": "POST recebe o evento da câmera (repassado pelo Supervisório), grava a leitura e guarda a foto nos documentos do PetroW. A câmera é localizada pelo device_id ou pelo identificador do cadastro (câmera ativa); sem cadastro, a leitura é gravada com id_camera 0. GET não implementado (501). Tipos de terceiro: rede, estabelecimento e pessoa.\n\nPerfis: App, Rede, Filial, Pessoa.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cameraId\": \"CAM-ENTRADA-01\",\n  \"dataHoraEvento\": \"2026-11-12T08:01:15\",\n  \"placa\": \"ABC1D23\",\n  \"placaDetectada\": true,\n  \"cor\": \"BRANCO\",\n  \"tipoVeiculo\": \"CAMINHAO\",\n  \"velocidade\": 5,\n  \"direcao\": \"ENTRADA\",\n  \"fotoBase64\": \"/9j/4AAQ...\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET impressoraJob — Trabalhos pendentes da impressora",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/impressoraJob?id_tx_impressora=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "impressoraJob"
              ],
              "query": [
                {
                  "key": "id_tx_impressora",
                  "value": "",
                  "description": "Impressora (sem ela, não retorna nada).",
                  "disabled": false
                }
              ]
            },
            "description": "Usado pelo Supervisório (impressora cadastrada no PetroW): GET busca os trabalhos pendentes de uma impressora e PUT marca a situação depois de imprimir. Os trabalhos são criados pelo próprio PetroW (ex.: ticket do totem). POST e DELETE existem, mas não fazem nada. Vale para todos os tipos de terceiro (rede, estabelecimento, cliente e pessoa).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "PUT impressoraJob — Atualiza a situação do trabalho",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/impressoraJob?id_tx_impressora_job=&situacao=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "impressoraJob"
              ],
              "query": [
                {
                  "key": "id_tx_impressora_job",
                  "value": "",
                  "description": "Trabalho.",
                  "disabled": false
                },
                {
                  "key": "situacao",
                  "value": "",
                  "description": "Nova situação: P (pendente), E (enviado), F (finalizado) ou C (cancelado). O valor não é validado: o que chega é gravado. O Supervisório usa F.",
                  "disabled": false
                }
              ]
            },
            "description": "Usado pelo Supervisório (impressora cadastrada no PetroW): GET busca os trabalhos pendentes de uma impressora e PUT marca a situação depois de imprimir. Os trabalhos são criados pelo próprio PetroW (ex.: ticket do totem). POST e DELETE existem, mas não fazem nada. Vale para todos os tipos de terceiro (rede, estabelecimento, cliente e pessoa).\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        },
        {
          "name": "GET status — Responde ok se a credencial é válida",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/terceiro/status",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "terceiro",
                "status"
              ],
              "query": []
            },
            "description": "Não consulta nada: só confirma que a autenticação (APP/REDE/CNPJ/CPF + SENHA + A) e a permissão do terceiro estão corretas. Útil para testar a conexão da integração. Vale para todos os tipos de terceiro.\n\nPerfis: App, Rede, Filial, Cliente, Pessoa."
          }
        }
      ]
    }
  ]
}
