{
  "info": {
    "_postman_id": "d83d004e-quantum-fe-dse-v1",
    "name": "Quantum Nube API - FE + DSE v1",
    "description": "Colección server-to-server. No guarde tokens reales en Git. Base: https://nomina.quantumpos.com.co/api/ext/v1",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_token}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "if (!pm.environment.get('document_date')) { const d=new Date(Date.now()-5*60*60*1000); pm.environment.set('document_date', d.toISOString().slice(0,10)); }",
          "if (!pm.environment.get('credit_due_date')) { const d=new Date(Date.now()-5*60*60*1000); d.setUTCDate(d.getUTCDate()+30); pm.environment.set('credit_due_date', d.toISOString().slice(0,10)); }",
          "if (!pm.environment.get('fe_draft_key')) pm.environment.set('fe_draft_key', pm.variables.replaceIn('{{$guid}}'));",
          "if (!pm.environment.get('dse_idempotency_key')) pm.environment.set('dse_idempotency_key', 'postman-dse-' + pm.variables.replaceIn('{{$guid}}'));"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "base_url",
      "value": "https://nomina.quantumpos.com.co/api/ext/v1"
    }
  ],
  "item": [
    {
      "name": "FE - Facturación Electrónica",
      "item": [
        {
          "name": "Listar métodos de pago",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/fe/payment-methods",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "fe",
                "payment-methods"
              ]
            },
            "description": "Ejecute primero para obtener method_id/means_code válidos para la empresa."
          },
          "response": []
        },
        {
          "name": "Listar terceros",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/fe/terceros",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "fe",
                "terceros"
              ]
            },
            "description": ""
          },
          "response": []
        },
        {
          "name": "Listar documentos",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/fe/docs?page=1&per_page=12",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "fe",
                "docs?page=1&per_page=12"
              ]
            },
            "description": ""
          },
          "response": []
        },
        {
          "name": "Obtener documento",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/fe/docs/{{fe_doc_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "fe",
                "docs",
                "{{fe_doc_id}}"
              ]
            },
            "description": ""
          },
          "response": []
        },
        {
          "name": "GetAcquirer DIAN",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/dian/get-acquirer",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "dian",
                "get-acquirer"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"identification_type\": \"31\",\n  \"identification_number\": \"900000001\",\n  \"force_refresh\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Crear FE - contado",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/fe/facturas",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "fe",
                "facturas"
              ]
            },
            "description": "Emite/procesa una FE real para la empresa configurada. Use únicamente cuando corresponda.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"receptor\": {\n    \"tipo_doc\": \"13\",\n    \"numero_doc\": \"1000000000\",\n    \"nombre\": \"CLIENTE DE PRUEBA\",\n    \"email\": \"cliente@example.com\",\n    \"direccion\": \"Bogotá D.C.\"\n  },\n  \"items\": [\n    {\n      \"desc\": \"Servicio de integración\",\n      \"cant\": 1,\n      \"unit\": 100000,\n      \"iva\": 19,\n      \"iva_incluido\": true,\n      \"unit_input\": 119000\n    }\n  ],\n  \"subtotal\": 100000,\n  \"impuestos\": 19000,\n  \"total\": 119000,\n  \"es_contingencia\": false,\n  \"fecha_emision\": \"{{document_date}}\",\n  \"payment\": {\n    \"form\": \"contado\",\n    \"method_id\": \"{{fe_payment_method_id}}\",\n    \"means_code\": \"{{fe_payment_means_code}}\",\n    \"due_date\": \"\"\n  },\n  \"aiu\": {\n    \"enabled\": false,\n    \"contract_base\": 100000,\n    \"administracion_percent\": 0,\n    \"imprevistos_percent\": 0,\n    \"utilidad_percent\": 0,\n    \"tax_rate\": 19,\n    \"iva_base_mode\": \"AIU_TOTAL\"\n  },\n  \"withholdings\": [],\n  \"observaciones\": \"Prueba Postman FE\",\n  \"attachment_tokens\": [],\n  \"draft_key\": \"{{fe_draft_key}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP es 2xx', () => pm.expect(pm.response.code).to.be.oneOf([200,201]));",
                  "try { const b=pm.response.json(); if (b.factura_id) pm.environment.set('fe_doc_id', b.factura_id); } catch(e) {}"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "DSE - Documento Soporte Electrónico",
      "item": [
        {
          "name": "Crear + firmar + enviar DSE",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{dse_idempotency_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/dse/documentos",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "dse",
                "documentos"
              ]
            },
            "description": "ATENCIÓN: puede emitir un DSE real. Mantenga la misma Idempotency-Key para reintentos de la misma operación.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"fecha_documento\": \"{{document_date}}\",\n  \"forma_generacion\": \"1\",\n  \"forma_pago\": \"1\",\n  \"medio_pago_codigo\": \"10\",\n  \"moneda\": \"COP\",\n  \"proveedor\": {\n    \"tipo_documento\": \"31\",\n    \"nit\": \"900000001\",\n    \"dv\": \"1\",\n    \"nombre\": \"PROVEEDOR DE PRUEBA SAS\",\n    \"regimen\": \"O-49\",\n    \"dian_tax_scheme_code\": \"ZZ\",\n    \"direccion\": \"Bogotá\",\n    \"municipio\": \"Bogotá\",\n    \"codigo_municipio\": \"11001\",\n    \"departamento\": \"Cundinamarca\",\n    \"codigo_departamento\": \"11\",\n    \"pais\": \"CO\",\n    \"email\": \"proveedor@example.com\"\n  },\n  \"items\": [\n    {\n      \"codigo\": \"81112100\",\n      \"descripcion\": \"Servicio de prueba\",\n      \"cantidad\": 1,\n      \"unidad_medida\": \"EA\",\n      \"precio_unitario\": 100000,\n      \"porcentaje_iva\": 19\n    }\n  ],\n  \"retenciones\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP esperado DSE', () => pm.expect(pm.response.code).to.be.oneOf([200,201,202,400,409,422,502]));",
                  "try { const b=pm.response.json(); if (b.documento && b.documento.id) pm.environment.set('dse_doc_id', b.documento.id); } catch(e) {}"
                ]
              }
            }
          ]
        },
        {
          "name": "Consultar DSE",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/companies/{{company_id}}/dse/documentos/{{dse_doc_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "companies",
                "{{company_id}}",
                "dse",
                "documentos",
                "{{dse_doc_id}}"
              ]
            },
            "description": ""
          },
          "response": []
        }
      ]
    }
  ]
}
