{
  "info": {
    "_postman_id": "203fb013-22d8-55c0-ba90-8d270326bca8",
    "name": "Venvers · API de Integración v3",
    "description": "Colección del kit de integración de Venvers (API v3). Importa también el environment, llena clientId, clientSecret y apiKey, y empieza por la carpeta Autenticación. El token Bearer se pide solo y se reutiliza hasta que vence.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{token}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "// Token automático para /api/v2 (Bearer): se pide con clientId/clientSecret y se reutiliza hasta que vence.",
          "const url = pm.request.url.toString();",
          "const esV2 = url.includes('/api/v2/') && !url.toLowerCase().includes('/api/v2/auth/');",
          "if (esV2) {",
          "  const token = pm.collectionVariables.get('token');",
          "  const vence = Number(pm.collectionVariables.get('tokenExpira') || 0);",
          "  if (!token || Date.now() > vence) {",
          "    pm.sendRequest({",
          "      url: pm.environment.get('baseUrl') + '/api/v2/auth/integracion',",
          "      method: 'POST',",
          "      header: { 'Content-Type': 'application/json' },",
          "      body: { mode: 'raw', raw: JSON.stringify({ clientId: pm.environment.get('clientId'), clientSecret: pm.environment.get('clientSecret') }) }",
          "    }, (err, res) => {",
          "      if (err || res.code !== 200) { console.log('No se pudo obtener el token', err || res.text()); return; }",
          "      const r = res.json();",
          "      pm.collectionVariables.set('token', r.accessToken);",
          "      pm.collectionVariables.set('tokenExpira', String(Date.now() + (r.expiresIn - 300) * 1000));",
          "    });",
          "  }",
          "}",
          "// Credencial de grupo (multiempresa): la empresa va en X-Empresa-Rfc.",
          "const rfc = pm.environment.get('empresaRfc');",
          "if (rfc) pm.request.headers.upsert({ key: 'X-Empresa-Rfc', value: rfc });"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "token",
      "value": ""
    },
    {
      "key": "tokenExpira",
      "value": "0"
    },
    {
      "key": "noOC",
      "value": "OC-PRUEBA-0001"
    },
    {
      "key": "productoOCId",
      "value": "0"
    },
    {
      "key": "uuidFactura",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Autenticación",
      "description": "Token de acceso para la API v3 (Bearer) y credenciales de integración.",
      "item": [
        {
          "name": "Obtener token (clientId + clientSecret)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/Auth/integracion",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "Auth",
                "integracion"
              ],
              "query": []
            },
            "description": "**POST /api/v2/Auth/integracion**\n\nDevuelve el token Bearer para todas las rutas /api/v2. Vigencia: 8 horas (expiresIn). Pide uno nuevo solo cuando venza; el endpoint permite 8 solicitudes por minuto.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"clientId\": \"{{clientId}}\",\n  \"clientSecret\": \"{{clientSecret}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const r = pm.response.json();",
                  "pm.test('Token emitido', () => pm.expect(r.accessToken).to.be.a('string'));",
                  "pm.collectionVariables.set('token', r.accessToken);",
                  "pm.collectionVariables.set('tokenExpira', String(Date.now() + (r.expiresIn - 300) * 1000));"
                ]
              }
            }
          ]
        },
        {
          "name": "Login de usuario administrador",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/Auth/login",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "Auth",
                "login"
              ],
              "query": []
            },
            "description": "**POST /api/v2/Auth/login**\n\nToken con usuario y contraseña de un administrador de Venvers. Solo se usa para dar de alta credenciales de integración.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"admin@tuempresa.com\",\n  \"password\": \"{{adminPassword}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Catálogos SAT y de referencia",
      "description": "Claves de producto y unidad del SAT, usos de CFDI, métodos y formas de pago, regímenes y estatus de OC. Solo lectura.",
      "item": [
        {
          "name": "Buscar claves de producto SAT",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/sat/claves",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "sat",
                "claves"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/sat/claves**\n\nCatálogo c_ClaveProdServ (q = texto o clave)."
          }
        },
        {
          "name": "Buscar unidades SAT",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/sat/unidades",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "sat",
                "unidades"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/sat/unidades**\n\nCatálogo c_ClaveUnidad."
          }
        },
        {
          "name": "Usos de CFDI",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/referencia/usosCfdi",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "referencia",
                "usosCfdi"
              ],
              "query": []
            },
            "description": "**GET /api/v2/referencia/usosCfdi**\n\nCatálogo c_UsoCFDI."
          }
        },
        {
          "name": "Métodos de pago",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/referencia/metodosPago",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "referencia",
                "metodosPago"
              ],
              "query": []
            },
            "description": "**GET /api/v2/referencia/metodosPago**\n\nPUE / PPD."
          }
        },
        {
          "name": "Formas de pago",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/referencia/formasPago",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "referencia",
                "formasPago"
              ],
              "query": []
            },
            "description": "**GET /api/v2/referencia/formasPago**\n\nCatálogo c_FormaPago."
          }
        },
        {
          "name": "Regímenes fiscales",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/referencia/regimenesFiscales",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "referencia",
                "regimenesFiscales"
              ],
              "query": []
            },
            "description": "**GET /api/v2/referencia/regimenesFiscales**\n\nCatálogo c_RegimenFiscal."
          }
        },
        {
          "name": "Estatus de OC",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/referencia/estatusOC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "referencia",
                "estatusOC"
              ],
              "query": []
            },
            "description": "**GET /api/v2/referencia/estatusOC**\n\nValores de estatus que regresan las consultas de OC."
          }
        }
      ]
    },
    {
      "name": "Catálogos de la empresa",
      "description": "Centros de costo, ítems contables, condiciones de pago, TES y grupos de compradores que usan requisiciones y órdenes de compra.",
      "item": [
        {
          "name": "Listar centros de costo",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/centrosdecosto",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "centrosdecosto"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/centrosdecosto**\n\nLista de centros de costo (filtro q)."
          }
        },
        {
          "name": "Crear centro de costo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/centrosdecosto",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "centrosdecosto"
              ],
              "query": []
            },
            "description": "**POST /api/v2/centrosdecosto**\n\nAlta de centro de costo.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"nombre\": \"Ejemplo\",\n  \"descripcion\": \"Ejemplo\",\n  \"codigoPadre\": \"COD-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar centro de costo",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/centrosdecosto/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "centrosdecosto",
                "COD-001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/centrosdecosto/{codigo}**\n\nDetalle de un centro de costo."
          }
        },
        {
          "name": "Actualizar centro de costo",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/centrosdecosto/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "centrosdecosto",
                "COD-001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/centrosdecosto/{codigo}**\n\nCambia los datos de centro de costo.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"nombre\": \"Ejemplo\",\n  \"descripcion\": \"Ejemplo\",\n  \"codigoPadre\": \"COD-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar centro de costo",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/centrosdecosto/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "centrosdecosto",
                "COD-001"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/centrosdecosto/{codigo}**\n\nBaja de centro de costo."
          }
        },
        {
          "name": "Listar grupos de compradores",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gruposcompradores",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gruposcompradores"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/gruposcompradores**\n\nLista de grupos de compradores (filtro q)."
          }
        },
        {
          "name": "Crear grupo de compradores",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gruposcompradores",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gruposcompradores"
              ],
              "query": []
            },
            "description": "**POST /api/v2/gruposcompradores**\n\nAlta de grupo de compradores.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"nombre\": \"Ejemplo\",\n  \"area\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar grupo de compradores",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gruposcompradores/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gruposcompradores",
                "COD-001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/gruposcompradores/{codigo}**\n\nDetalle de un grupo de compradores."
          }
        },
        {
          "name": "Actualizar grupo de compradores",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gruposcompradores/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gruposcompradores",
                "COD-001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/gruposcompradores/{codigo}**\n\nCambia los datos de grupo de compradores.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"nombre\": \"Ejemplo\",\n  \"area\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar grupo de compradores",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gruposcompradores/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gruposcompradores",
                "COD-001"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/gruposcompradores/{codigo}**\n\nBaja de grupo de compradores."
          }
        },
        {
          "name": "Listar TES",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/tes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "tes"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/tes**\n\nLista de TES (filtro q)."
          }
        },
        {
          "name": "Crear TES",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/tes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "tes"
              ],
              "query": []
            },
            "description": "**POST /api/v2/tes**\n\nAlta de TES.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"txtEstandar\": \"texto\",\n  \"tipoTes\": \"texto\",\n  \"tesDevolucionCodigo\": \"COD-001\",\n  \"tesPorEnvioCodigo\": \"COD-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar TES",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/tes/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "tes",
                "COD-001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/tes/{codigo}**\n\nDetalle de un TES."
          }
        },
        {
          "name": "Actualizar TES",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/tes/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "tes",
                "COD-001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/tes/{codigo}**\n\nCambia los datos de TES.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"txtEstandar\": \"texto\",\n  \"tipoTes\": \"texto\",\n  \"tesDevolucionCodigo\": \"COD-001\",\n  \"tesPorEnvioCodigo\": \"COD-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar TES",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/tes/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "tes",
                "COD-001"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/tes/{codigo}**\n\nBaja de TES."
          }
        },
        {
          "name": "Listar condiciones de pago",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/condicionespago",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "condicionespago"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/condicionespago**\n\nLista de condiciones de pago (filtro q)."
          }
        },
        {
          "name": "Crear condición de pago",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/condicionespago",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "condicionespago"
              ],
              "query": []
            },
            "description": "**POST /api/v2/condicionespago**\n\nAlta de condición de pago.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"descripcion\": \"Ejemplo\",\n  \"diasCredito\": 30\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar condición de pago",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/condicionespago/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "condicionespago",
                "COD-001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/condicionespago/{codigo}**\n\nDetalle de un condición de pago."
          }
        },
        {
          "name": "Actualizar condición de pago",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/condicionespago/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "condicionespago",
                "COD-001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/condicionespago/{codigo}**\n\nCambia los datos de condición de pago.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"descripcion\": \"Ejemplo\",\n  \"diasCredito\": 30\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar condición de pago",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/condicionespago/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "condicionespago",
                "COD-001"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/condicionespago/{codigo}**\n\nBaja de condición de pago."
          }
        },
        {
          "name": "Listar ítems contables",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/itemscontables",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "itemscontables"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/itemscontables**\n\nLista de ítems contables (filtro q)."
          }
        },
        {
          "name": "Crear ítem contable",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/itemscontables",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "itemscontables"
              ],
              "query": []
            },
            "description": "**POST /api/v2/itemscontables**\n\nAlta de ítem contable.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"nombre\": \"Ejemplo\",\n  \"descripcion\": \"Ejemplo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar ítem contable",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/itemscontables/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "itemscontables",
                "COD-001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/itemscontables/{codigo}**\n\nDetalle de un ítem contable."
          }
        },
        {
          "name": "Actualizar ítem contable",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/itemscontables/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "itemscontables",
                "COD-001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/itemscontables/{codigo}**\n\nCambia los datos de ítem contable.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigo\": \"COD-001\",\n  \"nombre\": \"Ejemplo\",\n  \"descripcion\": \"Ejemplo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar ítem contable",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/itemscontables/COD-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "itemscontables",
                "COD-001"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/itemscontables/{codigo}**\n\nBaja de ítem contable."
          }
        }
      ]
    },
    {
      "name": "Productos",
      "description": "Catálogo de productos con datos fiscales (clave SAT, unidad, impuestos) y contables (cuenta, ítem, clase de valor, TES).",
      "item": [
        {
          "name": "Listar productos",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/producto?page=1&pageSize=50",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "producto"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "disabled": false
                },
                {
                  "key": "pageSize",
                  "value": "50",
                  "disabled": false
                }
              ]
            },
            "description": "**GET /api/v2/producto**\n\nLista de productos (filtro q)."
          }
        },
        {
          "name": "Crear o actualizar producto",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/producto",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "producto"
              ],
              "query": []
            },
            "description": "**POST /api/v2/producto**\n\nCrea el producto con sus datos fiscales y contables, o lo actualiza si ya existe con el mismo codigoInterno.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"codigoInterno\": \"TOR-M8-30\",\n  \"descripcion\": \"TORNILLO HEXAGONAL M8 X 30 MM\",\n  \"codGrupo\": \"FERR\",\n  \"tesCodigo\": \"001\",\n  \"cuentaContable\": \"51021014\",\n  \"fiscal\": {\n    \"claveProdServ\": \"31161500\",\n    \"claveUnidad\": \"H87\",\n    \"nombreUnidad\": \"Pieza\"\n  },\n  \"impuestos\": {\n    \"traslados\": [\n      {\n        \"impuesto\": \"002\",\n        \"tipoFactor\": \"Tasa\",\n        \"tasaOCuota\": 0.16\n      }\n    ],\n    \"retenciones\": []\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar producto",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/producto/TOR-M8-30",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "producto",
                "TOR-M8-30"
              ],
              "query": []
            },
            "description": "**GET /api/v2/producto/{codigoInterno}**\n\nDetalle de un producto."
          }
        },
        {
          "name": "Actualizar producto",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/producto/TOR-M8-30",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "producto",
                "TOR-M8-30"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/producto/{codigoInterno}**\n\nCambia los datos de producto.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"descripcion\": \"Ejemplo\",\n  \"codigoInterno\": \"COD-001\",\n  \"grupoProductoId\": 1,\n  \"tesCodigo\": \"COD-001\",\n  \"fiscal\": {\n    \"claveProdServ\": \"texto\",\n    \"claveUnidad\": \"texto\",\n    \"nombreUnidad\": \"Ejemplo\"\n  },\n  \"impuestos\": {\n    \"traslados\": [\n      {\n        \"impuesto\": \"texto\",\n        \"tipoFactor\": \"texto\",\n        \"tasaOCuota\": 0.16\n      }\n    ],\n    \"retenciones\": [\n      {\n        \"impuesto\": \"texto\",\n        \"tipoFactor\": \"texto\",\n        \"tasaOCuota\": 0.16\n      }\n    ]\n  },\n  \"codGrupo\": \"texto\",\n  \"cuentaContable\": \"texto\",\n  \"itemContable\": \"texto\",\n  \"claseValor\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar producto",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/producto/TOR-M8-30",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "producto",
                "TOR-M8-30"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/producto/{codigoInterno}**\n\nBaja de producto."
          }
        },
        {
          "name": "Listar artículos del catálogo",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/catalogo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "catalogo"
              ],
              "query": []
            },
            "description": "**GET /api/v2/catalogo**\n\nLista de artículos del catálogo."
          }
        },
        {
          "name": "Crear o actualizar artículo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/catalogo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "catalogo"
              ],
              "query": []
            },
            "description": "**POST /api/v2/catalogo**\n\nCrea el artículo o lo actualiza si ya existe con el mismo codigoInterno.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tipoProducto\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"codigoInterno\": \"COD-001\",\n  \"claveSAT\": \"texto\",\n  \"unidad\": \"texto\",\n  \"grupoProductoId\": 1,\n  \"tesCodigo\": \"COD-001\",\n  \"traslados\": {\n    \"tasaIVA\": \"texto\",\n    \"tasaIEPS\": \"texto\"\n  },\n  \"retenciones\": {\n    \"iva\": false,\n    \"honorarios\": false,\n    \"cienPorciento\": false,\n    \"flete\": false,\n    \"outsourcing\": false,\n    \"isr\": false,\n    \"tasaISR\": \"texto\"\n  },\n  \"tesEntrada\": \"texto\",\n  \"codGrupo\": \"texto\",\n  \"cuentaContable\": \"texto\",\n  \"itemContable\": \"texto\",\n  \"claseValor\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Buscar en el catálogo",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/catalogo/buscar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "catalogo",
                "buscar"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/catalogo/buscar**\n\nBusca artículos por texto (q) en descripción o código."
          }
        },
        {
          "name": "Consultar artículo del catálogo",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/catalogo/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "catalogo",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/catalogo/{id}**\n\nDetalle de un artículo del catálogo."
          }
        },
        {
          "name": "Actualizar artículo del catálogo",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/catalogo/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "catalogo",
                "1"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/catalogo/{id}**\n\nCambia los datos de artículo del catálogo.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tipoProducto\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"codigoInterno\": \"COD-001\",\n  \"claveSAT\": \"texto\",\n  \"unidad\": \"texto\",\n  \"grupoProductoId\": 1,\n  \"tesCodigo\": \"COD-001\",\n  \"traslados\": {\n    \"tasaIVA\": \"texto\",\n    \"tasaIEPS\": \"texto\"\n  },\n  \"retenciones\": {\n    \"iva\": false,\n    \"honorarios\": false,\n    \"cienPorciento\": false,\n    \"flete\": false,\n    \"outsourcing\": false,\n    \"isr\": false,\n    \"tasaISR\": \"texto\"\n  },\n  \"tesEntrada\": \"texto\",\n  \"codGrupo\": \"texto\",\n  \"cuentaContable\": \"texto\",\n  \"itemContable\": \"texto\",\n  \"claseValor\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar artículo del catálogo",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/catalogo/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "catalogo",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/catalogo/{id}**\n\nBaja de artículo del catálogo."
          }
        }
      ]
    },
    {
      "name": "Proveedores",
      "description": "Alta y mantenimiento de proveedores con su número en tu ERP, datos fiscales, contacto y cuentas bancarias.",
      "item": [
        {
          "name": "Listar proveedores",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/proveedores**\n\nLista de proveedores (filtro q)."
          }
        },
        {
          "name": "Crear proveedor",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores"
              ],
              "query": []
            },
            "description": "**POST /api/v2/proveedores**\n\nAlta del proveedor con tu número de proveedor. El RFC se valida contra las listas 69/69-B del SAT: un RFC bloqueante responde 422.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"noProveedor\": \"PROV-0042\",\n  \"nombre\": \"Aceros del Norte\",\n  \"tipoProveedor\": \"Nacional\",\n  \"condicionPagoCodigo\": \"030\",\n  \"fiscal\": {\n    \"rfc\": \"ANO980101AB1\",\n    \"razonSocial\": \"ACEROS DEL NORTE SA DE CV\",\n    \"regimenFiscal\": \"601\",\n    \"usoCfdi\": \"G03\"\n  },\n  \"contacto\": {\n    \"nombreContacto\": \"Laura Méndez\",\n    \"email\": \"ventas@acerosdelnorte.mx\",\n    \"telefono\": \"8181234567\"\n  },\n  \"direccion\": {\n    \"calle\": \"Av. Constitución\",\n    \"noExterior\": \"1200\",\n    \"colonia\": \"Centro\",\n    \"municipio\": \"Monterrey\",\n    \"ciudad\": \"Monterrey\",\n    \"estado\": \"NL\",\n    \"cp\": \"64000\",\n    \"pais\": \"MX\"\n  },\n  \"comercial\": {\n    \"condicionesPago\": \"30D\",\n    \"diasCredito\": 30,\n    \"moneda\": \"MXN\"\n  },\n  \"identificadoresErp\": [\n    {\n      \"erp\": \"SAP\",\n      \"identificador\": \"100042\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar proveedor",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042"
              ],
              "query": []
            },
            "description": "**GET /api/v2/proveedores/{noProveedor}**\n\nDetalle de un proveedor."
          }
        },
        {
          "name": "Actualizar proveedor",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/proveedores/{noProveedor}**\n\nCambia los datos de proveedor.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"noProveedor\": \"texto\",\n  \"nombre\": \"Ejemplo\",\n  \"tipoProveedor\": \"texto\",\n  \"notas\": \"texto\",\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"fiscal\": {\n    \"rfc\": \"XAXX010101000\",\n    \"razonSocial\": \"texto\",\n    \"regimenFiscal\": \"texto\",\n    \"usoCfdi\": \"texto\"\n  },\n  \"contacto\": {\n    \"nombreContacto\": \"Ejemplo\",\n    \"email\": \"compras@ejemplo.com.mx\",\n    \"telefono\": \"texto\",\n    \"extension\": \"texto\"\n  },\n  \"direccion\": {\n    \"calle\": \"texto\",\n    \"noExterior\": \"texto\",\n    \"noInterior\": \"texto\",\n    \"colonia\": \"texto\",\n    \"municipio\": \"texto\",\n    \"ciudad\": \"texto\",\n    \"estado\": \"texto\",\n    \"cp\": \"texto\",\n    \"pais\": \"texto\"\n  },\n  \"comercial\": {\n    \"condicionesPago\": \"texto\",\n    \"diasCredito\": 30,\n    \"limiteCredito\": 1500.0,\n    \"moneda\": \"MXN\",\n    \"descuentoDefault\": 0\n  },\n  \"identificadoresErp\": [\n    {\n      \"erp\": \"texto\",\n      \"identificador\": \"texto\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Dar de baja proveedor",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/proveedores/{noProveedor}**\n\nBaja lógica del proveedor para tu empresa."
          }
        },
        {
          "name": "Listar cuentas bancarias del proveedor",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042/cuentasbancarias",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042",
                "cuentasbancarias"
              ],
              "query": []
            },
            "description": "**GET /api/v2/proveedores/{noProveedor}/cuentasbancarias**\n\nLista de cuentas bancarias del proveedor."
          }
        },
        {
          "name": "Crear cuenta bancaria",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042/cuentasbancarias",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042",
                "cuentasbancarias"
              ],
              "query": []
            },
            "description": "**POST /api/v2/proveedores/{noProveedor}/cuentasbancarias**\n\nAlta de cuenta bancaria.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"banco\": \"texto\",\n  \"cuenta\": \"texto\",\n  \"clabe\": \"texto\",\n  \"moneda\": \"MXN\",\n  \"alias\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar cuenta bancaria",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042/cuentasbancarias/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042",
                "cuentasbancarias",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/proveedores/{noProveedor}/cuentasbancarias/{id}**\n\nDetalle de un cuenta bancaria."
          }
        },
        {
          "name": "Actualizar cuenta bancaria",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042/cuentasbancarias/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042",
                "cuentasbancarias",
                "1"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/proveedores/{noProveedor}/cuentasbancarias/{id}**\n\nCambia los datos de cuenta bancaria.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"banco\": \"texto\",\n  \"cuenta\": \"texto\",\n  \"clabe\": \"texto\",\n  \"moneda\": \"MXN\",\n  \"alias\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar cuenta bancaria",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/proveedores/PROV-0042/cuentasbancarias/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "proveedores",
                "PROV-0042",
                "cuentasbancarias",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/proveedores/{noProveedor}/cuentasbancarias/{id}**\n\nBaja de cuenta bancaria."
          }
        }
      ]
    },
    {
      "name": "Presupuesto",
      "description": "Plantillas de presupuesto y consulta de saldo disponible por centro de costo, ítem y periodo.",
      "item": [
        {
          "name": "Listar plantillas de presupuesto",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/plantillaspresupuesto",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "plantillaspresupuesto"
              ],
              "query": [
                {
                  "key": "ejercicio",
                  "value": "2026",
                  "disabled": true
                },
                {
                  "key": "mes",
                  "value": "10",
                  "disabled": true
                },
                {
                  "key": "centroCosto",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "itemContable",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/plantillaspresupuesto**\n\nLista de plantillas de presupuesto."
          }
        },
        {
          "name": "Crear plantilla de presupuesto",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/plantillaspresupuesto",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "plantillaspresupuesto"
              ],
              "query": []
            },
            "description": "**POST /api/v2/plantillaspresupuesto**\n\nAlta de plantilla de presupuesto.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ejercicio\": 2026,\n  \"mes\": 10,\n  \"centroCosto\": \"texto\",\n  \"itemContable\": \"texto\",\n  \"claseValor\": \"texto\",\n  \"importePresupuestado\": 1500.0,\n  \"moneda\": \"MXN\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar plantilla de presupuesto",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/plantillaspresupuesto/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "plantillaspresupuesto",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/plantillaspresupuesto/{id}**\n\nDetalle de un plantilla de presupuesto."
          }
        },
        {
          "name": "Actualizar plantilla de presupuesto",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/plantillaspresupuesto/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "plantillaspresupuesto",
                "1"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/plantillaspresupuesto/{id}**\n\nCambia los datos de plantilla de presupuesto.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ejercicio\": 2026,\n  \"mes\": 10,\n  \"centroCosto\": \"texto\",\n  \"itemContable\": \"texto\",\n  \"claseValor\": \"texto\",\n  \"importePresupuestado\": 1500.0,\n  \"moneda\": \"MXN\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar plantilla de presupuesto",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/plantillaspresupuesto/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "plantillaspresupuesto",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/plantillaspresupuesto/{id}**\n\nBaja de plantilla de presupuesto."
          }
        },
        {
          "name": "Consultar saldo de presupuesto",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/presupuesto/saldo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "presupuesto",
                "saldo"
              ],
              "query": [
                {
                  "key": "ejercicio",
                  "value": "2026",
                  "disabled": true
                },
                {
                  "key": "mes",
                  "value": "10",
                  "disabled": true
                },
                {
                  "key": "centroCosto",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "itemContable",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "claseValor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "producto",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "plantillaId",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/presupuesto/saldo**\n\nPresupuesto, comprometido, ejercido y disponible por periodo, centro de costo, ítem, clase de valor o producto."
          }
        }
      ]
    },
    {
      "name": "Órdenes de compra",
      "description": "Alta, cambios, autorización y cancelación de órdenes de compra.",
      "item": [
        {
          "name": "Crear orden de compra",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra"
              ],
              "query": []
            },
            "description": "**POST /api/v2/ordenescompra**\n\nAlta de la OC con sus partidas. Por omisión nace publicada para el proveedor; manda estatus Borrador si debe autorizarse dentro de Venvers o Confirmada si ya está aceptada.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"noOC\": \"{{noOC}}\",\n  \"fechaOC\": \"2026-10-13\",\n  \"tipoOC\": 1,\n  \"moneda\": \"MXN\",\n  \"condicionPagoCodigo\": \"030\",\n  \"proveedor\": {\n    \"noProveedor\": \"PROV-0042\",\n    \"rfcEmisor\": \"ANO980101AB1\"\n  },\n  \"cfdi\": {\n    \"usoCfdi\": \"G03\",\n    \"metodoPago\": \"PPD\",\n    \"formaPago\": \"99\"\n  },\n  \"entrega\": {\n    \"sucursal\": \"Planta Monterrey\",\n    \"shipTo\": \"Av. Industrial 450, Apodaca NL\"\n  },\n  \"productos\": [\n    {\n      \"sku\": \"TOR-M8-30\",\n      \"descripcion\": \"TORNILLO HEXAGONAL M8 X 30 MM\",\n      \"unidadMedida\": \"PZA\",\n      \"cantidad\": 500,\n      \"precioUnitario\": 2.35,\n      \"impuestoTrasladado\": 188.0,\n      \"importe\": 1175.0,\n      \"fechaEntrega\": \"2026-10-20\",\n      \"tesCodigo\": \"001\"\n    },\n    {\n      \"sku\": \"GUA-NIT-L\",\n      \"descripcion\": \"GUANTE DE NITRILO TALLA L (CAJA 100)\",\n      \"unidadMedida\": \"CJA\",\n      \"cantidad\": 12,\n      \"precioUnitario\": 189.0,\n      \"impuestoTrasladado\": 362.88,\n      \"importe\": 2268.0,\n      \"fechaEntrega\": \"2026-10-20\"\n    }\n  ],\n  \"estatus\": \"Enviada\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar orden de compra",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra/{{noOC}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra",
                "{{noOC}}"
              ],
              "query": []
            },
            "description": "**GET /api/v2/ordenescompra/{noOC}**\n\nEncabezado, estatus y partidas. Cada partida trae productoOCId, que se usa para registrar recepciones."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const oc = pm.response.json();",
                  "pm.test('OC con partidas', () => pm.expect(oc.productos).to.be.an('array'));",
                  "if (oc.productos && oc.productos.length) pm.collectionVariables.set('productoOCId', String(oc.productos[0].productoOCId));"
                ]
              }
            }
          ]
        },
        {
          "name": "Listar órdenes de compra",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra"
              ],
              "query": []
            },
            "description": "**GET /api/v2/ordenescompra**\n\nLista de órdenes de compra."
          }
        },
        {
          "name": "Actualizar orden de compra",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra/{{noOC}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra",
                "{{noOC}}"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/ordenescompra/{noOC}**\n\nReemplaza encabezado y partidas. Solo mientras la OC no tenga recepciones ni facturas ligadas (si no, 422).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"noOC\": \"texto\",\n  \"fechaOC\": \"2026-10-13\",\n  \"tipoOC\": 0,\n  \"moneda\": \"MXN\",\n  \"compradorId\": 1,\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"origen\": \"texto\",\n  \"proveedor\": {\n    \"noProveedor\": \"texto\",\n    \"tipoProveedor\": \"texto\",\n    \"rfcEmisor\": \"XAXX010101000\",\n    \"rfcReceptor\": \"XAXX010101000\",\n    \"taxId\": \"texto\"\n  },\n  \"cfdi\": {\n    \"usoCfdi\": \"texto\",\n    \"metodoPago\": \"texto\",\n    \"formaPago\": \"texto\"\n  },\n  \"entrega\": {\n    \"sucursal\": \"texto\",\n    \"shipTo\": \"texto\"\n  },\n  \"control\": {\n    \"correo\": \"compras@ejemplo.com.mx\",\n    \"toleranciaMin\": 0,\n    \"toleranciaMax\": 0,\n    \"tipoNotificacion\": 0\n  },\n  \"camposExtra\": [\n    {\n      \"etiqueta\": \"texto\",\n      \"valor\": \"texto\"\n    }\n  ],\n  \"productos\": [\n    {\n      \"sku\": \"texto\",\n      \"descripcion\": \"Ejemplo\",\n      \"unidadMedida\": \"texto\",\n      \"cantidad\": 10,\n      \"precioUnitario\": 1500.0,\n      \"impuestoTrasladado\": 0,\n      \"impuestoRetenido\": 0,\n      \"descuento\": 0,\n      \"importe\": 1500.0,\n      \"fechaEntrega\": \"2026-10-13\",\n      \"tesCodigo\": \"COD-001\",\n      \"campoExtraEtiqueta\": \"texto\",\n      \"campoExtraValor\": \"texto\"\n    }\n  ],\n  \"estatus\": \"texto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Cancelar orden de compra",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra/{{noOC}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra",
                "{{noOC}}"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/ordenescompra/{noOC}**\n\nCancela la OC (baja lógica)."
          }
        },
        {
          "name": "Enviar a autorización",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra/{{noOC}}/enviarautorizacion",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra",
                "{{noOC}}",
                "enviarautorizacion"
              ],
              "query": []
            },
            "description": "**POST /api/v2/ordenescompra/{noOC}/enviarautorizacion**\n\nManda una OC en Borrador al flujo de autorización interno de Venvers."
          }
        },
        {
          "name": "Autorizar orden de compra",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra/{{noOC}}/autorizar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra",
                "{{noOC}}",
                "autorizar"
              ],
              "query": []
            },
            "description": "**POST /api/v2/ordenescompra/{noOC}/autorizar**\n\nAutoriza una OC que está EnAutorizacion; queda Autorizada y visible para el proveedor.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"comentario\": \"Autorizada en el ERP\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Rechazar orden de compra",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra/{{noOC}}/rechazar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra",
                "{{noOC}}",
                "rechazar"
              ],
              "query": []
            },
            "description": "**POST /api/v2/ordenescompra/{noOC}/rechazar**\n\nRechaza una OC que está EnAutorizacion. El comentario (motivo) es obligatorio; la OC queda Rechazada.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"comentario\": \"Excede el presupuesto del centro de costo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "OC en formato TOTVS",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/ordenescompra/{{noOC}}/totvs-payload",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "ordenescompra",
                "{{noOC}}",
                "totvs-payload"
              ],
              "query": []
            },
            "description": "**GET /api/v2/ordenescompra/{noOC}/totvs-payload**\n\nLa OC armada como pedido de compras de TOTVS (para clientes con Protheus)."
          }
        }
      ]
    },
    {
      "name": "Recepciones",
      "description": "Registro de lo recibido por partida de la OC (base de la conciliación a tres vías).",
      "item": [
        {
          "name": "Registrar recepción",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/recepciones",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "recepciones"
              ],
              "query": []
            },
            "description": "**POST /api/v2/recepciones**\n\nRegistra lo recibido por partida (productoOCId + cantidadRecibida). Es la base de la conciliación factura ↔ recepción.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"noOC\": \"{{noOC}}\",\n  \"fechaRecepcion\": \"2026-10-20\",\n  \"notas\": \"Entrega parcial\",\n  \"detalles\": [\n    {\n      \"productoOCId\": {{productoOCId}},\n      \"cantidadRecibida\": 300,\n      \"notas\": null\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Listar recepciones",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/recepciones?noOC={{noOC}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "recepciones"
              ],
              "query": [
                {
                  "key": "noOC",
                  "value": "{{noOC}}",
                  "disabled": false
                }
              ]
            },
            "description": "**GET /api/v2/recepciones**\n\nRecepciones registradas; filtra por noOC."
          }
        },
        {
          "name": "Consultar recepción",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/recepciones/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "recepciones",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/recepciones/{id}**\n\nDetalle de un recepción."
          }
        },
        {
          "name": "Cancelar recepción",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/recepciones/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "recepciones",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/recepciones/{id}**\n\nCancela una recepción registrada."
          }
        }
      ]
    },
    {
      "name": "Devoluciones y gastos de importación",
      "description": "Devoluciones a proveedor y gastos de importación ligados a OC.",
      "item": [
        {
          "name": "Listar devoluciones",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/devoluciones?noOC={{noOC}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "devoluciones"
              ],
              "query": [
                {
                  "key": "noProveedor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "noOC",
                  "value": "{{noOC}}",
                  "disabled": false
                },
                {
                  "key": "estatus",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "fechaInicial",
                  "value": "2026-10-01",
                  "disabled": true
                },
                {
                  "key": "fechaFinal",
                  "value": "2026-10-31",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/devoluciones**\n\nLista de devoluciones."
          }
        },
        {
          "name": "Crear devolución",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/devoluciones",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "devoluciones"
              ],
              "query": []
            },
            "description": "**POST /api/v2/devoluciones**\n\nAlta de devolución.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"folio\": \"COD-001\",\n  \"noOC\": \"texto\",\n  \"folioRecepcion\": \"texto\",\n  \"fecha\": \"2026-10-13\",\n  \"motivo\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"numLinea\": 0,\n      \"codigoInterno\": \"COD-001\",\n      \"cantidad\": 10,\n      \"motivo\": \"texto\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar devolución",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/devoluciones/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "devoluciones",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/devoluciones/{id}**\n\nDetalle de un devolución."
          }
        },
        {
          "name": "Actualizar devolución",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/devoluciones/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "devoluciones",
                "1"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/devoluciones/{id}**\n\nCambia los datos de devolución.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"folio\": \"COD-001\",\n  \"noOC\": \"texto\",\n  \"folioRecepcion\": \"texto\",\n  \"fecha\": \"2026-10-13\",\n  \"motivo\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"numLinea\": 0,\n      \"codigoInterno\": \"COD-001\",\n      \"cantidad\": 10,\n      \"motivo\": \"texto\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar devolución por folio",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/devoluciones/folio/DEV-0001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "devoluciones",
                "folio",
                "DEV-0001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/devoluciones/folio/{folio}**\n\nDevolución por su folio."
          }
        },
        {
          "name": "Actualizar devolución por folio",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/devoluciones/folio/DEV-0001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "devoluciones",
                "folio",
                "DEV-0001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/devoluciones/folio/{folio}**\n\nActualiza la devolución identificada por su folio.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"folio\": \"COD-001\",\n  \"noOC\": \"texto\",\n  \"folioRecepcion\": \"texto\",\n  \"fecha\": \"2026-10-13\",\n  \"motivo\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"numLinea\": 0,\n      \"codigoInterno\": \"COD-001\",\n      \"cantidad\": 10,\n      \"motivo\": \"texto\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Cancelar devolución",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/devoluciones/1/cancelar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "devoluciones",
                "1",
                "cancelar"
              ],
              "query": []
            },
            "description": "**POST /api/v2/devoluciones/{id}/cancelar**\n\nCancela una devolución."
          }
        },
        {
          "name": "Listar gastos de importación",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gastosimportacion?noOC={{noOC}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gastosimportacion"
              ],
              "query": [
                {
                  "key": "noProveedor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "noOC",
                  "value": "{{noOC}}",
                  "disabled": false
                },
                {
                  "key": "estatus",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "fechaInicial",
                  "value": "2026-10-01",
                  "disabled": true
                },
                {
                  "key": "fechaFinal",
                  "value": "2026-10-31",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/gastosimportacion**\n\nLista de gastos de importación."
          }
        },
        {
          "name": "Crear gasto de importación",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gastosimportacion",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gastosimportacion"
              ],
              "query": []
            },
            "description": "**POST /api/v2/gastosimportacion**\n\nAlta de gasto de importación.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"folio\": \"COD-001\",\n  \"referencia\": \"texto\",\n  \"fecha\": \"2026-10-13\",\n  \"moneda\": \"MXN\",\n  \"total\": 0,\n  \"noProveedor\": \"texto\",\n  \"proveedorId\": 1,\n  \"noOC\": \"texto\",\n  \"subtotal\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar gasto de importación",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gastosimportacion/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gastosimportacion",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/gastosimportacion/{id}**\n\nDetalle de un gasto de importación."
          }
        },
        {
          "name": "Eliminar gasto de importación",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/gastosimportacion/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "gastosimportacion",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/gastosimportacion/{id}**\n\nBaja de gasto de importación."
          }
        }
      ]
    },
    {
      "name": "Contratos y acuerdos comerciales",
      "description": "Acuerdos con tope de monto y vigencia contra los que se facturan OCs y gastos.",
      "item": [
        {
          "name": "Listar contratos",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos"
              ],
              "query": [
                {
                  "key": "noProveedor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "estatus",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "vigentes",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/contratos**\n\nLista de contratos."
          }
        },
        {
          "name": "Crear contrato",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos"
              ],
              "query": []
            },
            "description": "**POST /api/v2/contratos**\n\nAlta de contrato.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"titulo\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"noProveedor\": \"texto\",\n  \"proveedorId\": 1,\n  \"fechaInicio\": \"2026-10-13\",\n  \"fechaFin\": \"2026-10-13\",\n  \"tipo\": \"texto\",\n  \"aplicaATodas\": false,\n  \"renovacionAutomatica\": false,\n  \"diasAvisoPrevio\": 30,\n  \"moneda\": \"MXN\",\n  \"montoMaximo\": 1500.0,\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"penalizacionPorcentaje\": 0,\n  \"penalizacionNotas\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"descripcion\": \"Ejemplo\",\n      \"codigoInterno\": \"COD-001\",\n      \"unidad\": \"texto\",\n      \"precioPactado\": 1500.0,\n      \"notas\": \"texto\"\n    }\n  ],\n  \"slas\": [\n    {\n      \"dimension\": \"texto\",\n      \"indicador\": \"texto\",\n      \"meta\": 0,\n      \"unidadMedida\": \"texto\",\n      \"penalizacionPct\": 0\n    }\n  ],\n  \"estatus\": \"texto\",\n  \"ordenCompra\": \"texto\",\n  \"ordenesCompra\": [\n    \"texto\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar contrato",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/contratos/{id}**\n\nDetalle de un contrato."
          }
        },
        {
          "name": "Actualizar contrato",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos",
                "1"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/contratos/{id}**\n\nCambia los datos de contrato.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"titulo\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"noProveedor\": \"texto\",\n  \"fechaInicio\": \"2026-10-13\",\n  \"fechaFin\": \"2026-10-13\",\n  \"renovacionAutomatica\": false,\n  \"diasAvisoPrevio\": 30,\n  \"moneda\": \"MXN\",\n  \"montoMaximo\": 1500.0,\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"penalizacionPorcentaje\": 0,\n  \"penalizacionNotas\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"descripcion\": \"Ejemplo\",\n      \"codigoInterno\": \"COD-001\",\n      \"unidad\": \"texto\",\n      \"precioPactado\": 1500.0,\n      \"notas\": \"texto\"\n    }\n  ],\n  \"slas\": [\n    {\n      \"dimension\": \"texto\",\n      \"indicador\": \"texto\",\n      \"meta\": 0,\n      \"unidadMedida\": \"texto\",\n      \"penalizacionPct\": 0\n    }\n  ],\n  \"ordenesCompra\": [\n    \"texto\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar contrato",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/contratos/{id}**\n\nBaja de contrato."
          }
        },
        {
          "name": "Consultar contrato por número",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos/numero/CTR-2026-0001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos",
                "numero",
                "CTR-2026-0001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/contratos/numero/{numero}**\n\nPor su número de contrato."
          }
        },
        {
          "name": "Actualizar contrato por número",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos/numero/CTR-2026-0001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos",
                "numero",
                "CTR-2026-0001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/contratos/numero/{numero}**\n\nPor su número de contrato.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"titulo\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"noProveedor\": \"texto\",\n  \"fechaInicio\": \"2026-10-13\",\n  \"fechaFin\": \"2026-10-13\",\n  \"renovacionAutomatica\": false,\n  \"diasAvisoPrevio\": 30,\n  \"moneda\": \"MXN\",\n  \"montoMaximo\": 1500.0,\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"penalizacionPorcentaje\": 0,\n  \"penalizacionNotas\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"descripcion\": \"Ejemplo\",\n      \"codigoInterno\": \"COD-001\",\n      \"unidad\": \"texto\",\n      \"precioPactado\": 1500.0,\n      \"notas\": \"texto\"\n    }\n  ],\n  \"slas\": [\n    {\n      \"dimension\": \"texto\",\n      \"indicador\": \"texto\",\n      \"meta\": 0,\n      \"unidadMedida\": \"texto\",\n      \"penalizacionPct\": 0\n    }\n  ],\n  \"ordenesCompra\": [\n    \"texto\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Activar contrato",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos/1/activar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos",
                "1",
                "activar"
              ],
              "query": []
            },
            "description": "**POST /api/v2/contratos/{id}/activar**\n\nPasa el acuerdo a vigente."
          }
        },
        {
          "name": "Cancelar contrato",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/contratos/1/cancelar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "contratos",
                "1",
                "cancelar"
              ],
              "query": []
            },
            "description": "**POST /api/v2/contratos/{id}/cancelar**\n\nCancela el acuerdo; ya no admite consumos."
          }
        },
        {
          "name": "Listar acuerdos comerciales",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales"
              ],
              "query": [
                {
                  "key": "noProveedor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "estatus",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "vigentes",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**GET /api/v2/acuerdos-comerciales**\n\nLista de acuerdos comerciales."
          }
        },
        {
          "name": "Crear acuerdo comercial",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales"
              ],
              "query": []
            },
            "description": "**POST /api/v2/acuerdos-comerciales**\n\nAlta de acuerdo comercial.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"titulo\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"noProveedor\": \"texto\",\n  \"proveedorId\": 1,\n  \"fechaInicio\": \"2026-10-13\",\n  \"fechaFin\": \"2026-10-13\",\n  \"tipo\": \"texto\",\n  \"aplicaATodas\": false,\n  \"renovacionAutomatica\": false,\n  \"diasAvisoPrevio\": 30,\n  \"moneda\": \"MXN\",\n  \"montoMaximo\": 1500.0,\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"penalizacionPorcentaje\": 0,\n  \"penalizacionNotas\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"descripcion\": \"Ejemplo\",\n      \"codigoInterno\": \"COD-001\",\n      \"unidad\": \"texto\",\n      \"precioPactado\": 1500.0,\n      \"notas\": \"texto\"\n    }\n  ],\n  \"slas\": [\n    {\n      \"dimension\": \"texto\",\n      \"indicador\": \"texto\",\n      \"meta\": 0,\n      \"unidadMedida\": \"texto\",\n      \"penalizacionPct\": 0\n    }\n  ],\n  \"estatus\": \"texto\",\n  \"ordenCompra\": \"texto\",\n  \"ordenesCompra\": [\n    \"texto\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar acuerdo comercial",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/acuerdos-comerciales/{id}**\n\nDetalle de un acuerdo comercial."
          }
        },
        {
          "name": "Actualizar acuerdo comercial",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales",
                "1"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/acuerdos-comerciales/{id}**\n\nCambia los datos de acuerdo comercial.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"titulo\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"noProveedor\": \"texto\",\n  \"fechaInicio\": \"2026-10-13\",\n  \"fechaFin\": \"2026-10-13\",\n  \"renovacionAutomatica\": false,\n  \"diasAvisoPrevio\": 30,\n  \"moneda\": \"MXN\",\n  \"montoMaximo\": 1500.0,\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"penalizacionPorcentaje\": 0,\n  \"penalizacionNotas\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"descripcion\": \"Ejemplo\",\n      \"codigoInterno\": \"COD-001\",\n      \"unidad\": \"texto\",\n      \"precioPactado\": 1500.0,\n      \"notas\": \"texto\"\n    }\n  ],\n  \"slas\": [\n    {\n      \"dimension\": \"texto\",\n      \"indicador\": \"texto\",\n      \"meta\": 0,\n      \"unidadMedida\": \"texto\",\n      \"penalizacionPct\": 0\n    }\n  ],\n  \"ordenesCompra\": [\n    \"texto\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Eliminar acuerdo comercial",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/acuerdos-comerciales/{id}**\n\nBaja de acuerdo comercial."
          }
        },
        {
          "name": "Consultar acuerdo comercial por número",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales/numero/CTR-2026-0001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales",
                "numero",
                "CTR-2026-0001"
              ],
              "query": []
            },
            "description": "**GET /api/v2/acuerdos-comerciales/numero/{numero}**\n\nPor su número de contrato."
          }
        },
        {
          "name": "Actualizar acuerdo comercial por número",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales/numero/CTR-2026-0001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales",
                "numero",
                "CTR-2026-0001"
              ],
              "query": []
            },
            "description": "**PUT /api/v2/acuerdos-comerciales/numero/{numero}**\n\nPor su número de contrato.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"titulo\": \"texto\",\n  \"descripcion\": \"Ejemplo\",\n  \"noProveedor\": \"texto\",\n  \"fechaInicio\": \"2026-10-13\",\n  \"fechaFin\": \"2026-10-13\",\n  \"renovacionAutomatica\": false,\n  \"diasAvisoPrevio\": 30,\n  \"moneda\": \"MXN\",\n  \"montoMaximo\": 1500.0,\n  \"condicionPagoCodigo\": \"COD-001\",\n  \"penalizacionPorcentaje\": 0,\n  \"penalizacionNotas\": \"texto\",\n  \"notas\": \"texto\",\n  \"items\": [\n    {\n      \"descripcion\": \"Ejemplo\",\n      \"codigoInterno\": \"COD-001\",\n      \"unidad\": \"texto\",\n      \"precioPactado\": 1500.0,\n      \"notas\": \"texto\"\n    }\n  ],\n  \"slas\": [\n    {\n      \"dimension\": \"texto\",\n      \"indicador\": \"texto\",\n      \"meta\": 0,\n      \"unidadMedida\": \"texto\",\n      \"penalizacionPct\": 0\n    }\n  ],\n  \"ordenesCompra\": [\n    \"texto\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Activar acuerdo comercial",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales/1/activar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales",
                "1",
                "activar"
              ],
              "query": []
            },
            "description": "**POST /api/v2/acuerdos-comerciales/{id}/activar**\n\nPasa el acuerdo a vigente."
          }
        },
        {
          "name": "Cancelar acuerdo comercial",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/acuerdos-comerciales/1/cancelar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "acuerdos-comerciales",
                "1",
                "cancelar"
              ],
              "query": []
            },
            "description": "**POST /api/v2/acuerdos-comerciales/{id}/cancelar**\n\nCancela el acuerdo; ya no admite consumos."
          }
        }
      ]
    },
    {
      "name": "Facturas (comprobantes)",
      "description": "Facturas que los proveedores cargan en Venvers, con su validación SAT, estatus comercial y de conciliación.",
      "item": [
        {
          "name": "Listar facturas",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/comprobantes?uuid={{uuidFactura}}&page=1&pageSize=50",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "comprobantes"
              ],
              "query": [
                {
                  "key": "tipoDocumento",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "tipo",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "origen",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "rfcEmisor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "rfcReceptor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "noProveedor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "uuid",
                  "value": "{{uuidFactura}}",
                  "disabled": false
                },
                {
                  "key": "serie",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "folio",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "moneda",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "fechaInicial",
                  "value": "2026-10-01",
                  "disabled": true
                },
                {
                  "key": "fechaFinal",
                  "value": "2026-10-31",
                  "disabled": true
                },
                {
                  "key": "baseFecha",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "estatusValidacion",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "estatusComercial",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "estatusConciliacion",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "estatusConciliacionOc",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "estatusConciliacionFiscal",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "bloqueado",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "disabled": false
                },
                {
                  "key": "pageSize",
                  "value": "50",
                  "disabled": false
                }
              ]
            },
            "description": "**GET /api/v2/comprobantes**\n\nFacturas recibidas con filtros de emisor, fechas, estatus SAT, comercial y de conciliación. Paginado (page, pageSize)."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const r = pm.response.json();",
                  "const items = r.items || r.data || r;",
                  "if (Array.isArray(items) && items.length && items[0].uuid) pm.collectionVariables.set('uuidFactura', items[0].uuid);"
                ]
              }
            }
          ]
        },
        {
          "name": "Consultar factura",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/comprobantes/{{uuidFactura}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "comprobantes",
                "{{uuidFactura}}"
              ],
              "query": []
            },
            "description": "**GET /api/v2/comprobantes/{uuid}**\n\nDetalle de la factura por UUID, con sus ligas a OC y recepciones."
          }
        },
        {
          "name": "Listar facturas para confrontar",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/comprobantes/confrontados?page=1&pageSize=50",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "comprobantes",
                "confrontados"
              ],
              "query": [
                {
                  "key": "tipoDocumento",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "tipo",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "origen",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "rfcEmisor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "rfcReceptor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "noProveedor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "moneda",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "fechaInicial",
                  "value": "2026-10-01",
                  "disabled": true
                },
                {
                  "key": "fechaFinal",
                  "value": "2026-10-31",
                  "disabled": true
                },
                {
                  "key": "baseFecha",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "disabled": false
                },
                {
                  "key": "pageSize",
                  "value": "50",
                  "disabled": false
                }
              ]
            },
            "description": "**GET /api/v2/comprobantes/confrontados**\n\nFacturas listas para que tu ERP las confronte (REIM u otro)."
          }
        }
      ]
    },
    {
      "name": "Confronta y pagos",
      "description": "Resultado de la confronta hecha en tu ERP, publicación de pagos y complemento de pago (REP).",
      "item": [
        {
          "name": "Registrar resultado de confronta",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/Conciliacion/FacturaConfrontada",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Conciliacion",
                "FacturaConfrontada"
              ],
              "query": []
            },
            "description": "**POST /api/Conciliacion/FacturaConfrontada**\n\nTu ERP informa si cada factura quedó aceptada o rechazada en su confronta. Aceptada = conciliada y protegida en Venvers; rechazada = el proveedor ve el motivo.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"uuidPrincipal\": \"{{uuidFactura}}\",\n    \"estatus\": \"aceptada\",\n    \"referencia\": \"REIM-88231\",\n    \"fecha\": \"2026-10-21\"\n  },\n  {\n    \"uuidPrincipal\": \"0500D3B4-DC2B-40F6-98F4-6CCEB9CE5543\",\n    \"estatus\": \"rechazada\",\n    \"mensaje\": \"Monto no coincide con la recepción 4512.\"\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Publicar pago",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/Conciliacion/PublicarPago",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Conciliacion",
                "PublicarPago"
              ],
              "query": []
            },
            "description": "**POST /api/Conciliacion/PublicarPago**\n\nInforma pagos aplicados a facturas (UUID, fecha, monto, parcialidad). El proveedor ve la factura como pagada.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"uuidPrincipal\": \"{{uuidFactura}}\",\n    \"fechaPago\": \"2026-11-19\",\n    \"montoPagado\": \"4000.88\",\n    \"parcialidad\": \"1\"\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Registrar complemento de pago",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/Conciliacion/ComplementoPago",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Conciliacion",
                "ComplementoPago"
              ],
              "query": []
            },
            "description": "**POST /api/Conciliacion/ComplementoPago**\n\nRegistra el REP (UUID del complemento) que cierra el pago de una o varias facturas.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"uuidComplemento\": \"9C1E7A55-0B6F-4C3D-9E21-77A0D4B1F3C2\",\n  \"fechaPago\": \"2026-11-19\",\n  \"pagos\": [\n    {\n      \"uuidPrincipal\": \"{{uuidFactura}}\",\n      \"fechaPago\": \"2026-11-19\",\n      \"montoPagado\": \"4000.88\",\n      \"parcialidad\": \"1\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Consultar complemento de pago",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/Conciliacion/ComplementoPago?uuid={{uuidFactura}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Conciliacion",
                "ComplementoPago"
              ],
              "query": [
                {
                  "key": "uuid",
                  "value": "{{uuidFactura}}",
                  "disabled": false
                }
              ]
            },
            "description": "**GET /api/Conciliacion/ComplementoPago**\n\nComplemento de pago por UUID.",
            "auth": {
              "type": "noauth"
            }
          }
        }
      ]
    },
    {
      "name": "Bóveda fiscal del receptor",
      "description": "Consulta de los CFDI recibidos por tu razón social (X-Api-Key).",
      "item": [
        {
          "name": "Validar API key",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/receptor/info",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "receptor",
                "info"
              ],
              "query": []
            },
            "description": "**GET /api/v1/receptor/info**\n\nConfirma a qué razón social pertenece la X-Api-Key.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "Listar CFDI recibidos",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/receptor/comprobantes?desde=2026-10-01&hasta=2026-10-31&page=1&pageSize=50",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "receptor",
                "comprobantes"
              ],
              "query": [
                {
                  "key": "desde",
                  "value": "2026-10-01",
                  "disabled": false
                },
                {
                  "key": "hasta",
                  "value": "2026-10-31",
                  "disabled": false
                },
                {
                  "key": "estatus",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "disabled": false
                },
                {
                  "key": "pageSize",
                  "value": "50",
                  "disabled": false
                }
              ]
            },
            "description": "**GET /api/v1/receptor/comprobantes**\n\nCFDI recibidos por tu razón social, paginados (desde, hasta, estatus SAT).",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "Consultar CFDI recibido",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/receptor/comprobantes/{{uuidFactura}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "receptor",
                "comprobantes",
                "{{uuidFactura}}"
              ],
              "query": []
            },
            "description": "**GET /api/v1/receptor/comprobantes/{uuid}**\n\nDetalle completo de un CFDI por UUID.",
            "auth": {
              "type": "noauth"
            }
          }
        }
      ]
    },
    {
      "name": "Usuarios del portal",
      "description": "Alta, cambio y baja de usuarios de tu empresa en Venvers (X-Api-Key).",
      "item": [
        {
          "name": "Agregar usuarios",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/Usuario/AgregarUsuarios",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Usuario",
                "AgregarUsuarios"
              ],
              "query": []
            },
            "description": "**POST /api/Usuario/AgregarUsuarios**\n\nAlta masiva de usuarios de tu empresa con rol (admin, comprador, autorizador, fiscal) y filtros de visibilidad.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"nombre\": \"Laura\",\n    \"apellido\": \"Méndez\",\n    \"correo\": \"laura.mendez@tuempresa.com\",\n    \"rol\": \"comprador\",\n    \"filtros\": {\n      \"emisor\": null,\n      \"receptor\": null\n    }\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Editar usuario",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/Usuario/EditarUsuario",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Usuario",
                "EditarUsuario"
              ],
              "query": []
            },
            "description": "**PUT /api/Usuario/EditarUsuario**\n\nCambia nombre, rol o filtros de un usuario.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"texto\",\n  \"nombre\": \"Ejemplo\",\n  \"apellido\": \"texto\",\n  \"correo\": \"compras@ejemplo.com.mx\",\n  \"rol\": \"texto\",\n  \"cc\": \"texto\",\n  \"cco\": \"texto\",\n  \"filtroRfcReceptor\": \"XAXX010101000\",\n  \"filtroRfcEmisor\": \"XAXX010101000\",\n  \"filtros\": {\n    \"emisor\": \"texto\",\n    \"receptor\": \"texto\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Dar de baja usuario",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Key",
                "value": "{{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/Usuario/BorrarUsuario",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Usuario",
                "BorrarUsuario"
              ],
              "query": [
                {
                  "key": "usuarioid",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "correo",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "**DELETE /api/Usuario/BorrarUsuario**\n\nDesactiva un usuario por id o correo.",
            "auth": {
              "type": "noauth"
            }
          }
        }
      ]
    },
    {
      "name": "Compradores",
      "description": "Compradores de la empresa y su asignación a grupos de compra.",
      "item": [
        {
          "name": "Listar compradores",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/compradores",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "compradores"
              ],
              "query": []
            },
            "description": "**GET /api/v2/compradores**\n\nLista de compradores."
          }
        },
        {
          "name": "Consultar comprador",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/compradores/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "compradores",
                "1"
              ],
              "query": []
            },
            "description": "**GET /api/v2/compradores/{id}**\n\nDetalle de un comprador."
          }
        },
        {
          "name": "Asignar comprador a grupo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/compradores/1/grupos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "compradores",
                "1",
                "grupos"
              ],
              "query": []
            },
            "description": "**POST /api/v2/compradores/{id}/grupos**\n\nAgrega el comprador a un grupo de compra.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"grupoCodigo\": \"COD-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Quitar comprador de grupo",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/compradores/1/grupos/GC-01",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "compradores",
                "1",
                "grupos",
                "GC-01"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/compradores/{id}/grupos/{grupoCodigo}**\n\nQuita el comprador de un grupo de compra."
          }
        }
      ]
    },
    {
      "name": "Credenciales de integración",
      "description": "Administración de clientId/clientSecret (requiere token de usuario administrador).",
      "item": [
        {
          "name": "Listar credenciales",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/integracion/clientes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "integracion",
                "clientes"
              ],
              "query": []
            },
            "description": "**GET /api/v2/integracion/clientes**\n\nCredenciales de integración de tu empresa (sin el secreto)."
          }
        },
        {
          "name": "Crear credencial",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/integracion/clientes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "integracion",
                "clientes"
              ],
              "query": []
            },
            "description": "**POST /api/v2/integracion/clientes**\n\nCrea un clientId/clientSecret. El secreto solo se ve en esta respuesta.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"clientId\": \"texto\",\n  \"clientSecret\": \"texto\",\n  \"nombre\": \"Ejemplo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Revocar credencial",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v2/integracion/clientes/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v2",
                "integracion",
                "clientes",
                "1"
              ],
              "query": []
            },
            "description": "**DELETE /api/v2/integracion/clientes/{id}**\n\nDesactiva la credencial; sus tokens dejan de servir."
          }
        }
      ]
    }
  ]
}