{
  "info": {
    "_postman_id": "fiscalspace-collection-v1",
    "name": "FiscalSpace API",
    "description": "Coleção completa da API FiscalSpace para emissão de NFC-e.\n\n## Setup\n1. Importe esta coleção no Postman\n2. Configure as variáveis de ambiente:\n   - `baseUrl`: http://localhost:8080\n   - `token`: seu token de API (gerado após criar empresa)\n3. Execute as requests na ordem numerada",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "baseUrl", "value": "http://localhost:8080", "type": "string" },
    { "key": "token",   "value": "fs_SEU_TOKEN_AQUI",    "type": "string" },
    { "key": "empresaId", "value": "1",                  "type": "string" },
    { "key": "nfceId",    "value": "1",                  "type": "string" }
  ],
  "item": [
    {
      "name": "01 - Admin",
      "item": [
        {
          "name": "Criar Empresa",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": { "raw": "{{baseUrl}}/api/v1/admin/empresas" },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nomeFantasia\": \"Lanchonete do João\",\n  \"razaoSocial\": \"João da Silva Ltda ME\",\n  \"cnpj\": \"12345678000195\",\n  \"inscricaoEstadual\": \"123456789\",\n  \"uf\": \"SP\",\n  \"municipio\": \"São Paulo\",\n  \"codigoMunicipioIbge\": \"3550308\",\n  \"ambiente\": \"HOMOLOGACAO\",\n  \"crt\": 1\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 201) {",
                  "  const body = pm.response.json();",
                  "  pm.collectionVariables.set('empresaId', body.id);",
                  "  console.log('empresaId definido:', body.id);",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Gerar Token de API",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/admin/empresas/{{empresaId}}/tokens?nome=PDV%20Principal"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 201) {",
                  "  const body = pm.response.json();",
                  "  pm.collectionVariables.set('token', body.token);",
                  "  console.log('Token gerado:', body.token);",
                  "  console.log('SALVE ESTE TOKEN - ele não pode ser recuperado depois!');",
                  "}"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "02 - Empresa",
      "item": [
        {
          "name": "Minha Empresa",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{baseUrl}}/api/v1/empresas/me" }
          }
        },
        {
          "name": "Atualizar Empresa",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "Authorization", "value": "Bearer {{token}}" },
              { "key": "Content-Type",  "value": "application/json" }
            ],
            "url": { "raw": "{{baseUrl}}/api/v1/empresas/me" },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nomeFantasia\": \"Lanchonete do João\",\n  \"razaoSocial\": \"João da Silva Ltda ME\",\n  \"cnpj\": \"12345678000195\",\n  \"uf\": \"SP\",\n  \"municipio\": \"São Paulo\",\n  \"codigoMunicipioIbge\": \"3550308\",\n  \"ambiente\": \"HOMOLOGACAO\",\n  \"crt\": 1\n}"
            }
          }
        }
      ]
    },
    {
      "name": "03 - Certificado",
      "item": [
        {
          "name": "Upload Certificado",
          "request": {
            "method": "POST",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{baseUrl}}/api/v1/certificados/upload" },
            "body": {
              "mode": "formdata",
              "formdata": [
                { "key": "arquivo", "type": "file", "src": "/caminho/para/certificado.pfx" },
                { "key": "senha", "value": "minha_senha", "type": "text" }
              ]
            }
          }
        },
        {
          "name": "Certificado Ativo",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{baseUrl}}/api/v1/certificados/ativo" }
          }
        }
      ]
    },
    {
      "name": "04 - NFC-e",
      "item": [
        {
          "name": "Emitir NFC-e (simples)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "Bearer {{token}}" },
              { "key": "Content-Type",  "value": "application/json" }
            ],
            "url": { "raw": "{{baseUrl}}/api/v1/nfce" },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"idExterno\": \"VENDA-001\",\n  \"serie\": 1,\n  \"itens\": [\n    {\n      \"codigo\": \"001\",\n      \"descricao\": \"Cachorro quente\",\n      \"ncm\": \"21069090\",\n      \"cfop\": \"5102\",\n      \"csosn\": \"102\",\n      \"origem\": \"0\",\n      \"unidade\": \"UN\",\n      \"quantidade\": 1,\n      \"valorUnitario\": 12.00,\n      \"valorTotal\": 12.00,\n      \"desconto\": 0,\n      \"pisCst\": \"49\",\n      \"cofinsCst\": \"49\"\n    }\n  ],\n  \"pagamentos\": [\n    {\n      \"tipo\": \"PIX\",\n      \"valor\": 12.00\n    }\n  ]\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 202) {",
                  "  const body = pm.response.json();",
                  "  pm.collectionVariables.set('nfceId', body.id);",
                  "  console.log('NFC-e id:', body.id, 'status:', body.status);",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Emitir NFC-e (completa com cliente)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "Bearer {{token}}" },
              { "key": "Content-Type",  "value": "application/json" }
            ],
            "url": { "raw": "{{baseUrl}}/api/v1/nfce" },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"idExterno\": \"VENDA-002\",\n  \"serie\": 1,\n  \"cliente\": {\n    \"cpfCnpj\": \"12345678901\",\n    \"nome\": \"Maria da Silva\"\n  },\n  \"itens\": [\n    {\n      \"codigo\": \"001\",\n      \"descricao\": \"X-Burguer duplo\",\n      \"ncm\": \"21069090\",\n      \"cfop\": \"5102\",\n      \"csosn\": \"102\",\n      \"origem\": \"0\",\n      \"unidade\": \"UN\",\n      \"quantidade\": 2,\n      \"valorUnitario\": 25.00,\n      \"valorTotal\": 50.00,\n      \"pisCst\": \"49\",\n      \"cofinsCst\": \"49\"\n    },\n    {\n      \"codigo\": \"REFRI\",\n      \"descricao\": \"Refrigerante lata 350ml\",\n      \"ncm\": \"22021000\",\n      \"cfop\": \"5102\",\n      \"csosn\": \"102\",\n      \"origem\": \"0\",\n      \"unidade\": \"UN\",\n      \"quantidade\": 2,\n      \"valorUnitario\": 6.00,\n      \"valorTotal\": 12.00,\n      \"pisCst\": \"49\",\n      \"cofinsCst\": \"49\"\n    }\n  ],\n  \"pagamentos\": [\n    { \"tipo\": \"CARTAO_CREDITO\", \"valor\": 40.00, \"bandeira\": \"VISA\" },\n    { \"tipo\": \"PIX\", \"valor\": 22.00 }\n  ]\n}"
            }
          }
        },
        {
          "name": "Consultar NFC-e por ID",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{baseUrl}}/api/v1/nfce/{{nfceId}}" }
          }
        },
        {
          "name": "Consultar NFC-e por ID Externo",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{baseUrl}}/api/v1/nfce/externo/VENDA-001" }
          }
        },
        {
          "name": "Listar NFC-es",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": {
              "raw": "{{baseUrl}}/api/v1/nfce?page=0&size=20",
              "query": [
                { "key": "page", "value": "0" },
                { "key": "size", "value": "20" }
              ]
            }
          }
        },
        {
          "name": "Cancelar NFC-e",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "Bearer {{token}}" },
              { "key": "Content-Type",  "value": "application/json" }
            ],
            "url": { "raw": "{{baseUrl}}/api/v1/nfce/{{nfceId}}/cancelar" },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"justificativa\": \"Venda cancelada a pedido do cliente. Produto devolvido.\"\n}"
            }
          }
        },
        {
          "name": "URL do XML",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{baseUrl}}/api/v1/nfce/{{nfceId}}/xml" }
          }
        },
        {
          "name": "URL do DANFE",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{baseUrl}}/api/v1/nfce/{{nfceId}}/danfe" }
          }
        }
      ]
    }
  ]
}
