{
  "info": {
    "name": "ERP-PLUS API",
    "description": "API REST do sistema ERP-PLUS — consulta NF-e, sincronizacao SEFAZ, busca por chave, manifestacao do destinatario, NFS-e, PDV e gestao empresarial.\n\nTodas as rotas marcadas como 'sem autenticacao' podem ser chamadas diretamente sem token ou sessao.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "base_url",    "value": "http://localhost:8000",                       "type": "string" },
    { "key": "company_id",  "value": "1",                                           "type": "string" },
    { "key": "document_id", "value": "1",                                           "type": "string" },
    { "key": "cnpj",        "value": "00000000000000",                              "type": "string" },
    { "key": "access_key",  "value": "00000000000000000000000000000000000000000000", "type": "string" },
    { "key": "outgoing_xml_id", "value": "1", "type": "string" }
  ],
  "item": [
    {
      "name": "Dashboard",
      "item": [
        {
          "name": "Estatisticas gerais",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": { "raw": "{{base_url}}/api/stats", "host": ["{{base_url}}"], "path": ["api","stats"] },
            "description": "Retorna totais de empresas, documentos (total, XML completo, resumo) e manifestacoes, com breakdown por empresa."
          }
        }
      ]
    },
    {
      "name": "Empresas",
      "item": [
        {
          "name": "Listar empresas",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{base_url}}/api/companies?page=1",
              "host": ["{{base_url}}"], "path": ["api","companies"],
              "query": [{ "key": "page", "value": "1" }]
            },
            "description": "Lista paginada de empresas com cursor NSU e status do certificado A1. 20 por pagina."
          }
        },
        {
          "name": "Detalhe da empresa",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": { "raw": "{{base_url}}/api/companies/{{company_id}}", "host": ["{{base_url}}"], "path": ["api","companies","{{company_id}}"] },
            "description": "Retorna dados da empresa incluindo cursor NSU e status do certificado."
          }
        }
      ]
    },
    {
      "name": "Sincronizacao SEFAZ (sem autenticacao)",
      "item": [
        {
          "name": "Snapshot da colecao (GET)",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": { "raw": "{{base_url}}/api/sync/all", "host": ["{{base_url}}"], "path": ["api","sync","all"] },
            "description": "Retorna o snapshot atual de todas as empresas (certificado, NSU, status) sem disparar sincronizacao SEFAZ.\n\nRetorno:\n- timestamp: momento da consulta\n- companies[]: dados de cada empresa com status do certificado, ult_nsu, last_query_at e status consolidado (ok | no_certificate | cert_expired | never_synced | cert_expiring)\n- totals: contagens globais (empresas, documentos, certificados ativos/vencendo/vencidos, empresas sem certificado, nunca sincronizadas)"
          }
        },
        {
          "name": "Sincronizar TODOS os CNPJs",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"max_batches\": 10\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": { "raw": "{{base_url}}/api/sync/all", "host": ["{{base_url}}"], "path": ["api","sync","all"] },
            "description": "Sincroniza todos os CNPJs com certificado A1 ativo. Sem autenticacao.\n\nBody opcional:\n- max_batches (int, default 10): limite de lotes por empresa.\n\nRetorna: synced, failed, results[], errors[]."
          }
        },
        {
          "name": "Sincronizar por CNPJ individual",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"max_batches\": 10\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": { "raw": "{{base_url}}/api/sync/cnpj/{{cnpj}}", "host": ["{{base_url}}"], "path": ["api","sync","cnpj","{{cnpj}}"] },
            "description": "Sincroniza um CNPJ especifico. Sem autenticacao. Aceita CNPJ com ou sem formatacao.\n\nRetorna: batches, documents, ult_nsu, max_nsu, status_code, status_message."
          }
        },
        {
          "name": "Sincronizar empresa por ID",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"max_batches\": 10\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": { "raw": "{{base_url}}/api/companies/{{company_id}}/sync", "host": ["{{base_url}}"], "path": ["api","companies","{{company_id}}","sync"] },
            "description": "Sincroniza pelo ID interno da empresa."
          }
        }
      ]
    },
    {
      "name": "Busca por Chave (sem autenticacao)",
      "item": [
        {
          "name": "Buscar chave individual",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"company_id\": {{company_id}},\n  \"access_key\": \"{{access_key}}\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": { "raw": "{{base_url}}/api/busca-chave", "host": ["{{base_url}}"], "path": ["api","busca-chave"] },
            "description": "Busca uma NF-e pela chave de acesso na SEFAZ e registra automaticamente a Ciencia da Operacao.\n\nSem autenticacao.\n\nBody:\n- company_id (int, obrigatorio): ID da empresa destinataria\n- access_key (string, obrigatorio): 44 digitos numericos (formatacao ignorada)\n\nRetorna:\n- document: dados do documento encontrado\n- fetch_status: fetched | already_downloaded | summary_only | not_found | error | skipped\n- manifest_status: acknowledged | already_acknowledged | error | skipped\n- manifest_data: protocol, status_code, status_message"
          }
        },
        {
          "name": "Buscar lote de chaves (max 20)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"company_id\": {{company_id}},\n  \"access_keys\": [\n    \"{{access_key}}\",\n    \"00000000000000000000000000000000000000000001\",\n    \"00000000000000000000000000000000000000000002\"\n  ]\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": { "raw": "{{base_url}}/api/busca-chave/lote", "host": ["{{base_url}}"], "path": ["api","busca-chave","lote"] },
            "description": "Busca e manifesta um lote de chaves de acesso em uma unica chamada. Sem autenticacao.\n\nLimite: 20 chaves por requisicao. Para lotes maiores, chame multiplas vezes com intervalo de 30 segundos entre requisicoes para respeitar o limite da SEFAZ.\n\nChaves invalidas (diferentes de 44 digitos) sao reportadas no array 'errors' sem interromper o processamento.\n\nBody:\n- company_id (int): empresa destinataria\n- access_keys (array, max 20): lista de chaves de acesso\n\nRetorna:\n- processed: quantidade processada com sucesso\n- failed: quantidade com erro\n- results[]: resultado por chave\n- errors[]: chaves que falharam com a mensagem de erro"
          }
        },
        {
          "name": "Upload manual de XML (multipart)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "body": {
              "mode": "formdata",
              "formdata": [
                { "key": "company_id", "value": "{{company_id}}", "type": "text" },
                { "key": "xml_files[]", "value": "", "type": "file", "src": "" }
              ]
            },
            "url": { "raw": "{{base_url}}/busca-chave/upload", "host": ["{{base_url}}"], "path": ["busca-chave","upload"] },
            "description": "Upload manual de XMLs de NF-e. Registra o documento com ciencia automatica (sem consultar SEFAZ). Redireciona de volta com mensagem de resultado."
          }
        },
        {
          "name": "Upload manual de XML (AJAX/JSON)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                { "key": "company_id", "value": "{{company_id}}", "type": "text" },
                { "key": "xml_files[]", "value": "", "type": "file", "src": "" }
              ]
            },
            "url": { "raw": "{{base_url}}/busca-chave/upload-json", "host": ["{{base_url}}"], "path": ["busca-chave","upload-json"] },
            "description": "Upload manual de XMLs via AJAX com progresso por arquivo. Retorna JSON com resultados individuais.\n\nRetorna:\n- processed: total processados\n- failed: total com erro\n- results[]: { index, file, status, access_key, issuer, ciencia, detail }"
          }
        },
        {
          "name": "Buscar chave — somente XML (sem ciencia)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"company_id\": {{company_id}},\n  \"access_key\": \"{{access_key}}\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": { "raw": "{{base_url}}/api/documents/1/fetch-xml", "host": ["{{base_url}}"], "path": ["api","documents","1","fetch-xml"] },
            "description": "Busca somente o XML de um documento ja existente no banco (sem dar ciencia). Use GET /api/documents/{id} para encontrar o ID primeiro."
          }
        }
      ]
    },
    {
      "name": "Documentos NF-e",
      "item": [
        {
          "name": "Listar documentos (todos os filtros)",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{base_url}}/api/documents?company_id=&status=&issuer_cnpj=&recipient_cnpj=&access_key=&date_from=&date_to=&xml=&per_page=15&page=1",
              "host": ["{{base_url}}"], "path": ["api","documents"],
              "query": [
                { "key": "company_id",     "value": "",   "description": "ID da empresa" },
                { "key": "status",         "value": "",   "description": "summary_received | xml_downloaded" },
                { "key": "issuer_cnpj",    "value": "",   "description": "CNPJ emitente (14 digitos)" },
                { "key": "recipient_cnpj", "value": "",   "description": "CNPJ destinatario (14 digitos)" },
                { "key": "access_key",     "value": "",   "description": "Chave de acesso (parcial ou completa)" },
                { "key": "date_from",      "value": "",   "description": "Data emissao inicial (YYYY-MM-DD)" },
                { "key": "date_to",        "value": "",   "description": "Data emissao final (YYYY-MM-DD)" },
                { "key": "xml",            "value": "",   "description": "full | summary (omitir = todos)" },
                { "key": "per_page",       "value": "15", "description": "Registros por pagina (max 50)" },
                { "key": "page",           "value": "1" }
              ]
            },
            "description": "Lista NF-es com filtros combinaveis. Todos opcionais. Nao inclui xml_content no response."
          }
        },
        {
          "name": "Listar — somente XML completo",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{base_url}}/api/documents?xml=full&per_page=15",
              "host": ["{{base_url}}"], "path": ["api","documents"],
              "query": [{ "key": "xml", "value": "full" }, { "key": "per_page", "value": "15" }]
            }
          }
        },
        {
          "name": "Listar — por CNPJ emitente",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{base_url}}/api/documents?issuer_cnpj={{cnpj}}&per_page=15",
              "host": ["{{base_url}}"], "path": ["api","documents"],
              "query": [{ "key": "issuer_cnpj", "value": "{{cnpj}}" }, { "key": "per_page", "value": "15" }]
            }
          }
        },
        {
          "name": "Detalhe do documento",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": { "raw": "{{base_url}}/api/documents/{{document_id}}", "host": ["{{base_url}}"], "path": ["api","documents","{{document_id}}"] },
            "description": "Retorna dados completos com historico de manifestacoes. Nao inclui xml_content."
          }
        },
        {
          "name": "Download do XML",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{base_url}}/api/documents/{{document_id}}/xml", "host": ["{{base_url}}"], "path": ["api","documents","{{document_id}}","xml"] },
            "description": "Retorna o XML como application/xml para download. Usa XML completo se disponivel, resumo caso contrario."
          }
        },
        {
          "name": "Dar ciencia da operacao",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{}", "options": { "raw": { "language": "json" } } },
            "url": { "raw": "{{base_url}}/api/documents/{{document_id}}/acknowledge", "host": ["{{base_url}}"], "path": ["api","documents","{{document_id}}","acknowledge"] },
            "description": "Envia Ciencia da Operacao (210210) para a SEFAZ. Retorna protocol, status_code e status_message."
          }
        },
        {
          "name": "Buscar XML completo por chave",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept",       "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{}", "options": { "raw": { "language": "json" } } },
            "url": { "raw": "{{base_url}}/api/documents/{{document_id}}/fetch-xml", "host": ["{{base_url}}"], "path": ["api","documents","{{document_id}}","fetch-xml"] },
            "description": "Consulta a SEFAZ pela chave do documento para obter o XML completo. Requer Ciencia ja registrada."
          }
        }
      ]
    },
    {
      "name": "Manifestacao (web)",
      "item": [
        {
          "name": "Tela de manifestacao",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "url": {
              "raw": "{{base_url}}/manifestacao?company_id=&q=&date_from=&date_to=&xml=all&event=all",
              "host": ["{{base_url}}"], "path": ["manifestacao"],
              "query": [
                { "key": "company_id", "value": "" },
                { "key": "q", "value": "" },
                { "key": "date_from", "value": "" },
                { "key": "date_to", "value": "" },
                { "key": "xml", "value": "all" },
                { "key": "event", "value": "all" }
              ]
            }
          }
        },
        {
          "name": "Manifestar documento individual",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "text/html" },
              { "key": "Content-Type", "value": "application/x-www-form-urlencoded" }
            ],
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                { "key": "event_code", "value": "210210" },
                { "key": "justification", "value": "" }
              ]
            },
            "url": { "raw": "{{base_url}}/manifestacao/documents/{{document_id}}/manifest", "host": ["{{base_url}}"], "path": ["manifestacao","documents","{{document_id}}","manifest"] },
            "description": "Envia manifestacao (ciencia/confirmacao/desconhecimento/nao realizada). Redireciona de volta com status/error."
          }
        },
        {
          "name": "Lote de manifestacao",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "text/html" },
              { "key": "Content-Type", "value": "application/x-www-form-urlencoded" }
            ],
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                { "key": "document_ids[]", "value": "1" },
                { "key": "document_ids[]", "value": "2" },
                { "key": "document_ids[]", "value": "3" },
                { "key": "event_code", "value": "210210" },
                { "key": "justification", "value": "" }
              ]
            },
            "url": { "raw": "{{base_url}}/manifestacao/lote", "host": ["{{base_url}}"], "path": ["manifestacao","lote"] },
            "description": "Processa lote de manifestacoes (max 50 documentos). Intervalo de 10s entre cada documento. Redireciona de volta com status/error."
          }
        },
        {
          "name": "Buscar XML em lote (manifestacao)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "text/html" },
              { "key": "Content-Type", "value": "application/x-www-form-urlencoded" }
            ],
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                { "key": "document_ids[]", "value": "1" },
                { "key": "document_ids[]", "value": "2" }
              ]
            },
            "url": { "raw": "{{base_url}}/manifestacao/buscar-xml", "host": ["{{base_url}}"], "path": ["manifestacao","buscar-xml"] },
            "description": "Busca XML completo para documentos selecionados. 3 tentativas com 2s de intervalo. Redireciona de volta com status/error."
          }
        },
        {
          "name": "Manifestar JSON (AJAX)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event_code\": \"210210\",\n  \"justification\": \"\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": { "raw": "{{base_url}}/manifestacao/documents/{{document_id}}/manifest-json", "host": ["{{base_url}}"], "path": ["manifestacao","documents","{{document_id}}","manifest-json"] },
            "description": "Envia manifestacao via AJAX. Retorna JSON com status/error. Usado pelo painel de processamento em lote com progresso."
          }
        },
        {
          "name": "Buscar XML JSON (AJAX)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": { "mode": "raw", "raw": "{}", "options": { "raw": { "language": "json" } } },
            "url": { "raw": "{{base_url}}/manifestacao/documents/{{document_id}}/buscar-xml-json", "host": ["{{base_url}}"], "path": ["manifestacao","documents","{{document_id}}","buscar-xml-json"] },
            "description": "Busca XML completo via AJAX. Retorna JSON com status. Usado pelo painel de processamento em lote."
          }
        }
      ]
    },
    {
      "name": "XML Tratamento",
      "item": [
        {
          "name": "Tela de tratamento",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "url": {
              "raw": "{{base_url}}/xml-tratamento?company_id=&q=&date_from=&date_to=&xml=all&event=all",
              "host": ["{{base_url}}"], "path": ["xml-tratamento"],
              "query": [
                { "key": "company_id", "value": "" },
                { "key": "q", "value": "" },
                { "key": "date_from", "value": "" },
                { "key": "date_to", "value": "" },
                { "key": "xml", "value": "all" },
                { "key": "event", "value": "all" }
              ]
            }
          }
        },
        {
          "name": "Buscar XML em lote (tratamento)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "text/html" },
              { "key": "Content-Type", "value": "application/x-www-form-urlencoded" }
            ],
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                { "key": "document_ids[]", "value": "1" },
                { "key": "document_ids[]", "value": "2" }
              ]
            },
            "url": { "raw": "{{base_url}}/xml-tratamento/buscar-xml", "host": ["{{base_url}}"], "path": ["xml-tratamento","buscar-xml"] },
            "description": "Busca XML completo para documentos selecionados na pagina de tratamento. 3 tentativas com 2s de intervalo."
          }
        }
      ]
    },
    {
      "name": "Documentos Saida",
      "item": [
        {
          "name": "Listar NF-e (55)",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "url": {
              "raw": "{{base_url}}/documentos-saida/nfe?company_id=&q=",
              "host": ["{{base_url}}"], "path": ["documentos-saida","nfe"],
              "query": [
                { "key": "company_id", "value": "", "description": "Filtrar por empresa" },
                { "key": "q", "value": "", "description": "Busca por chave, CNPJ, emitente ou destinatario" }
              ]
            }
          }
        },
        {
          "name": "Cadastrar NF-e (multipart)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "body": {
              "mode": "formdata",
              "formdata": [
                { "key": "company_id", "value": "{{company_id}}", "type": "text" },
                { "key": "xml_file", "value": "", "type": "file", "src": "" }
              ]
            },
            "url": { "raw": "{{base_url}}/documentos-saida/nfe", "host": ["{{base_url}}"], "path": ["documentos-saida","nfe"] },
            "description": "Cadastra NF-e via upload de arquivo XML. Extrai automaticamente chave, emitente, destinatario, valor e status."
          }
        },
        {
          "name": "Cadastrar NF-e API (raw XML)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "application/json" },
              { "key": "Content-Type", "value": "application/xml" }
            ],
            "body": {
              "mode": "raw",
              "raw": "<nfeProc>\n  <NFe>\n    <infNFe Id=\"NFe35200600000000000000000000000000000000000001\" versao=\"4.00\">\n      <ide>\n        <cUF>35</cUF>\n        <dhEmi>2025-01-15T14:30:00-03:00</dhEmi>\n      </ide>\n      <emit>\n        <CNPJ>00000000000000</CNPJ>\n        <xNome>EMITENTE EXEMPLO LTDA</xNome>\n      </emit>\n      <dest>\n        <CNPJ>11111111111111</CNPJ>\n        <xNome>DESTINATARIO EXEMPLO LTDA</xNome>\n      </dest>\n      <total>\n        <ICMSTot>\n          <vNF>1500.00</vNF>\n        </ICMSTot>\n      </total>\n    </infNFe>\n  </NFe>\n  <protNFe>\n    <infProt>\n      <nProt>135000000000001</nProt>\n      <cStat>100</cStat>\n    </infProt>\n  </protNFe>\n</nfeProc>",
              "options": { "raw": { "language": "xml" } }
            },
            "url": { "raw": "{{base_url}}/documentos-saida/nfe/api?company_id={{company_id}}", "host": ["{{base_url}}"], "path": ["documentos-saida","nfe","api"], "query": [{ "key": "company_id", "value": "{{company_id}}" }] },
            "description": "Cadastra NF-e enviando o XML diretamente no body da requisicao. O company_id pode ser enviado como query param ou no corpo como JSON.\n\nHeaders:\n- Content-Type: application/xml (para enviar o XML puro)\n OU\n- Content-Type: application/json (com o XML em string no campo xml_content)"
          }
        },
        {
          "name": "Listar NFC-e (65)",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "url": {
              "raw": "{{base_url}}/documentos-saida/nfce?company_id=&q=",
              "host": ["{{base_url}}"], "path": ["documentos-saida","nfce"],
              "query": [
                { "key": "company_id", "value": "", "description": "Filtrar por empresa" },
                { "key": "q", "value": "", "description": "Busca por chave, CNPJ, emitente ou destinatario" }
              ]
            }
          }
        },
        {
          "name": "Cadastrar NFC-e (multipart)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "body": {
              "mode": "formdata",
              "formdata": [
                { "key": "company_id", "value": "{{company_id}}", "type": "text" },
                { "key": "xml_file", "value": "", "type": "file", "src": "" }
              ]
            },
            "url": { "raw": "{{base_url}}/documentos-saida/nfce", "host": ["{{base_url}}"], "path": ["documentos-saida","nfce"] },
            "description": "Cadastra NFC-e via upload de arquivo XML."
          }
        },
        {
          "name": "Cadastrar NFC-e API (raw XML)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "application/json" },
              { "key": "Content-Type", "value": "application/xml" }
            ],
            "body": { "mode": "raw", "raw": "<nfeProc>\n  <NFe>\n    <infNFe Id=\"NFe35200600000000000000000000000000000000000001\" versao=\"4.00\">\n      <ide>\n        <cUF>35</cUF>\n        <dhEmi>2025-01-15T14:30:00-03:00</dhEmi>\n      </ide>\n      <emit>\n        <CNPJ>00000000000000</CNPJ>\n        <xNome>EMITENTE EXEMPLO LTDA</xNome>\n      </emit>\n      <dest>\n        <CNPJ>11111111111111</CNPJ>\n        <xNome>DESTINATARIO EXEMPLO LTDA</xNome>\n      </dest>\n      <total>\n        <ICMSTot>\n          <vNF>89.90</vNF>\n        </ICMSTot>\n      </total>\n    </infNFe>\n  </NFe>\n  <protNFe>\n    <infProt>\n      <nProt>135000000000002</nProt>\n      <cStat>100</cStat>\n    </infProt>\n  </protNFe>\n</nfeProc>", "options": { "raw": { "language": "xml" } } },
            "url": { "raw": "{{base_url}}/documentos-saida/nfce/api?company_id={{company_id}}", "host": ["{{base_url}}"], "path": ["documentos-saida","nfce","api"], "query": [{ "key": "company_id", "value": "{{company_id}}" }] },
            "description": "Cadastra NFC-e enviando o XML diretamente no body."
          }
        },
        {
          "name": "Listar NFS-e",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "url": {
              "raw": "{{base_url}}/documentos-saida/nfse?company_id=&q=",
              "host": ["{{base_url}}"], "path": ["documentos-saida","nfse"],
              "query": [
                { "key": "company_id", "value": "", "description": "Filtrar por empresa" },
                { "key": "q", "value": "", "description": "Busca por cod. verificacao, CNPJ, prestador ou tomador" }
              ]
            }
          }
        },
        {
          "name": "Cadastrar NFS-e (multipart)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "body": {
              "mode": "formdata",
              "formdata": [
                { "key": "company_id", "value": "{{company_id}}", "type": "text" },
                { "key": "xml_file", "value": "", "type": "file", "src": "" }
              ]
            },
            "url": { "raw": "{{base_url}}/documentos-saida/nfse", "host": ["{{base_url}}"], "path": ["documentos-saida","nfse"] },
            "description": "Cadastra NFS-e via upload de arquivo XML. Extrai automaticamente codigo de verificacao, prestador, tomador, valor e status."
          }
        },
        {
          "name": "Cadastrar NFS-e API (raw XML)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "application/json" },
              { "key": "Content-Type", "value": "application/xml" }
            ],
            "body": {
              "mode": "raw",
              "raw": "<CompNfse>\n  <Nfse>\n    <InfNfse>\n      <Numero>1</Numero>\n      <CodigoVerificacao>ABC123XYZ</CodigoVerificacao>\n      <DataEmissao>2025-01-15T14:30:00-03:00</DataEmissao>\n      <PrestadorServico>\n        <IdentificacaoPrestador>\n          <Cnpj>00000000000000</Cnpj>\n        </IdentificacaoPrestador>\n        <RazaoSocial>PRESTADOR EXEMPLO LTDA</RazaoSocial>\n      </PrestadorServico>\n      <TomadorServico>\n        <IdentificacaoTomador>\n          <CpfCnpj>\n            <Cnpj>11111111111111</Cnpj>\n          </CpfCnpj>\n        </IdentificacaoTomador>\n        <RazaoSocial>TOMADOR EXEMPLO LTDA</RazaoSocial>\n      </TomadorServico>\n      <Servico>\n        <Valores>\n          <ValorServicos>1500.00</ValorServicos>\n        </Valores>\n      </Servico>\n    </InfNfse>\n  </Nfse>\n</CompNfse>",
              "options": { "raw": { "language": "xml" } }
            },
            "url": { "raw": "{{base_url}}/documentos-saida/nfse/api?company_id={{company_id}}", "host": ["{{base_url}}"], "path": ["documentos-saida","nfse","api"], "query": [{ "key": "company_id", "value": "{{company_id}}" }] },
            "description": "Cadastra NFS-e enviando o XML diretamente no body da requisicao."
          }
        },
        {
          "name": "Visualizar documento",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "url": { "raw": "{{base_url}}/documentos-saida/xml/{{outgoing_xml_id}}", "host": ["{{base_url}}"], "path": ["documentos-saida","xml","{{outgoing_xml_id}}"] },
            "description": "Exibe detalhes completos do documento de saida com dados extraidos do XML."
          }
        },
        {
          "name": "Download XML",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{base_url}}/documentos-saida/xml/{{outgoing_xml_id}}/download", "host": ["{{base_url}}"], "path": ["documentos-saida","xml","{{outgoing_xml_id}}","download"] },
            "description": "Faz o download do conteudo XML do documento de saida."
          }
        },
        {
          "name": "Excluir documento",
          "request": {
            "method": "DELETE",
            "header": [{ "key": "Accept", "value": "text/html" }],
            "url": { "raw": "{{base_url}}/documentos-saida/xml/{{outgoing_xml_id}}", "host": ["{{base_url}}"], "path": ["documentos-saida","xml","{{outgoing_xml_id}}"] },
            "description": "Exclui permanentemente o documento de saida."
          }
        }
      ]
    }
  ]
}
