products-payment-refacil-mcp 1.2.7 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -680,13 +680,16 @@ Si el usuario decide comprar usando `/product-requests/create` con los **mismos
680
680
  "date": 1733932800000,
681
681
  "payload": {
682
682
  "quoteId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
683
+ "productId": 52368,
684
+ "categoryId": 120,
683
685
  "amount": 150000,
684
- "status": "SUCCESS",
685
- "data": {
686
+ "additionalData": {
687
+ "invoiceDueDate": "2026-05-10",
686
688
  "reference": "123456789",
687
689
  "customerName": "JUAN PEREZ",
688
690
  "address": "Calle 123"
689
- }
691
+ },
692
+ "quotedAt": "2024-01-11T10:30:00.000Z"
690
693
  }
691
694
  }
692
695
  ```
@@ -694,9 +697,11 @@ Si el usuario decide comprar usando `/product-requests/create` con los **mismos
694
697
  **Campos de la respuesta:**
695
698
 
696
699
  - `quoteId`: ID de la cotización guardada
700
+ - `productId`: ID del producto cotizado
701
+ - `categoryId`: ID de la categoría del producto
697
702
  - `amount`: Monto cotizado
698
- - `status`: Estado de la cotización (SUCCESS, INVALID, FAILED)
699
- - `data`: Datos adicionales del producto consultado
703
+ - `additionalData`: Datos adicionales del producto consultado. Incluye `invoiceDueDate: string | null` cuando el proveedor retorna fecha de vencimiento de la factura; es `null` para productos que no aplican
704
+ - `quotedAt`: Timestamp de la cotización
700
705
 
701
706
  **Respuesta de error (400) - Producto directo:**
702
707
 
@@ -816,7 +821,7 @@ Los datos para crear esta solicitud provienen principalmente del endpoint `produ
816
821
 
817
822
  - `agreement` (string, opcional): Aceptación de términos (puede venir del campo `agreement` del producto)
818
823
 
819
- - `customer_id` (string, opcional): Identificador único del usuario o dispositivo
824
+ - `customer_id` (string, requerido si omite `cart_id`; opcional si envía `cart_id`): Identificador único del usuario o dispositivo; persiste en `core.shopping_carts.user_temp_id` al crear carrito.
820
825
 
821
826
  - `subcustomer_id` (string, opcional): Identificador del subcliente o cuenta hija asociada al `customer_id`
822
827
 
@@ -994,7 +999,8 @@ GET /products/by-customer-and-category
994
999
  },
995
1000
  "query_type": "BILLData",
996
1001
  "sell_type": "Bill",
997
- "agreement": "2010910"
1002
+ "agreement": "2010910",
1003
+ "customer_id": "customer_123"
998
1004
  }
999
1005
 
1000
1006
  ```
@@ -1169,7 +1175,7 @@ Con la respuesta de este endpoint, puedes proceder a crear el pago usando `/prod
1169
1175
  | query_type * | string | Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.) |
1170
1176
  | sell_type * | string | Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST) |
1171
1177
  | agreement | string | Aceptación de términos (puede venir del campo `agreement` del producto) |
1172
- | customer_id | string | Identificador único del usuario o dispositivo |
1178
+ | customer_id | string | Identificador único del usuario o dispositivo; persiste en `core.shopping_carts.user_temp_id` al crear carrito. |
1173
1179
  | subcustomer_id | string | Identificador del subcliente o cuenta hija asociada al `customer_id` |
1174
1180
  | cart_id | string | identificador del carrito de compra al que se quiere agregar la solicictud de producto |
1175
1181
 
@@ -1267,12 +1273,15 @@ POST /product-requests/status
1267
1273
  "customer_id": "customer_124"
1268
1274
  },
1269
1275
  "urlInvoice": "https://prep.refacil.co/#/factura/215765/10549",
1270
- "urlSummary": "https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b"
1276
+ "urlSummary": "https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b",
1277
+ "invoiceDueDate": "2026-05-31"
1271
1278
  }
1272
1279
  }
1273
1280
 
1274
1281
  ```
1275
1282
 
1283
+ > ⚠️ `invoiceDueDate` es `string | null` — tiene valor solo cuando el proveedor retorna fecha de vencimiento de la factura. En productos que no son facturas, siempre es `null`.
1284
+
1276
1285
  **🛒 Flujo de Uso - Carrito Completo:**
1277
1286
 
1278
1287
  **1\. Consultar estado usando cartId:**
@@ -1317,7 +1326,8 @@ POST /product-requests/status
1317
1326
  "agreement": "2010910",
1318
1327
  "customer_id": "customer_124"
1319
1328
  },
1320
- "urlInvoice": "https://prep.refacil.co/#/factura/215765/10549"
1329
+ "urlInvoice": "https://prep.refacil.co/#/factura/215765/10549",
1330
+ "invoiceDueDate": "2026-05-31"
1321
1331
  }
1322
1332
  ]
1323
1333
  }
@@ -37,7 +37,7 @@ export const resources = [
37
37
  "name": "🛒 Solicitudes de Producto - Documentation",
38
38
  "description": "Endpoints para crear solicitudes de productos",
39
39
  "mimeType": "text/markdown",
40
- "content": "# 🛒 Solicitudes de Producto\n\nEndpoints para crear solicitudes de productos\n\n## Endpoints\n\n### 4.5 Cotizar Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/quote`\n\nCotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\n\n**🎯 Casos de Uso:**\n\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\n- **SOAT**: Verificar precio del seguro antes de comprar\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\n\n**✅ Ventajas:**\n\n- No crea carrito ni solicitud de compra\n- Solo consulta y guarda trazabilidad\n- Usuario puede ver el monto antes de decidir\n- Analytics de cotizaciones vs compras\n\n**📊 Vinculación Automática:**\n\nSi el usuario decide comprar usando `/product-requests/create` con los **mismos datos**, el sistema:\n\n- Vincula automáticamente la cotización con la compra\n- Permite análisis de tasa de conversión\n- Identifica usuarios que cotizaron pero no compraron\n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n- `x-secret-id: {secretId}`\n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría\n- `id` (number, requerido): ID del producto\n- `amount` (number|null, opcional): Usar `null` para productos con consulta previa\n- `data` (object, requerido): Datos específicos del producto\n- `query_type` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\n- `sell_type` (string, requerido): Tipo de venta (debe requerir consulta previa)\n- `agreement` (string, opcional): Acuerdo del producto\n\n**⚠️ Importante:**\n\n- Solo funciona para productos que **requieren consulta previa**\n- Para productos directos, usar `/product-requests/create`\n- No retorna medios de pago (solo el monto cotizado)\n\n**Respuesta exitosa (200):**\n\n```json\n{\n \"statusCode\": 200,\n \"message\": \"Cotización realizada exitosamente\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"amount\": 150000,\n \"status\": \"SUCCESS\",\n \"data\": {\n \"reference\": \"123456789\",\n \"customerName\": \"JUAN PEREZ\",\n \"address\": \"Calle 123\"\n }\n }\n}\n```\n\n**Campos de la respuesta:**\n\n- `quoteId`: ID de la cotización guardada\n- `amount`: Monto cotizado\n- `status`: Estado de la cotización (SUCCESS, INVALID, FAILED)\n- `data`: Datos adicionales del producto consultado\n\n**Respuesta de error (400) - Producto directo:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Este producto no requiere cotización previa\",\n \"date\": 1733932800000,\n \"payload\": {\n \"error\": \"PRODUCT_DOES_NOT_REQUIRE_QUOTE\",\n \"message\": \"Use el endpoint /create para compra directa\"\n }\n}\n```\n\n**Respuesta de error (400) - Datos inválidos:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Datos inválidos para la cotización\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"status\": \"INVALID\",\n \"error\": \"Referencia no encontrada\"\n }\n}\n```\n\n**🔄 Flujo Completo:**\n\n**1. Cotizar producto:**\n\n```bash\nPOST /product-requests/quote\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Respuesta:** `{\"quoteId\": \"...\", \"amount\": 150000}`\n\n**2. Usuario decide comprar (mismo request):**\n\n```bash\nPOST /product-requests/create\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.\n\n### 5. Crear Solicitud de Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/create`\n\nCrea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\n\n**📋 Relación con Endpoint de Productos:** \nLos datos para crear esta solicitud provienen principalmente del endpoint `products/by-customer-and-category`:\n\n- **`category_id`**: ID de la categoría (del endpoint de productos)\n \n- **`id`**: ID del producto seleccionado (del campo `id` del producto)\n \n- **`query_type`**: Tipo de consulta (del campo `query_type` del producto)\n \n- **`sell_type`**: Tipo de venta (del campo `sell_type` del producto)\n \n- **`data`**: Estructura basada en `template_data_request` del producto\n \n- **`agreement`**: Acuerdo del producto (del campo `agreement` del producto)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\n \n- `id` (number, requerido): ID del producto seleccionado (obtenido del campo `id` del producto)\n \n- `amount` (number|null, opcional): Monto del producto (ver reglas de uso)\n \n- `data` (object, requerido): Datos específicos del producto basados en `template_data_request` del producto\n \n- `query_type` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\n \n- `sell_type` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\n \n- `agreement` (string, opcional): Aceptación de términos (puede venir del campo `agreement` del producto)\n \n- `customer_id` (string, opcional): Identificador único del usuario o dispositivo\n \n- `subcustomer_id` (string, opcional): Identificador del subcliente o cuenta hija asociada al `customer_id`\n \n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\n \n\n**📋 Reglas para el campo customer_id:**\n\n**🔑 Con Usuario Registrado:**\n\n- **Enviar**: ID único del usuario en tu sistema\n \n- **Ejemplo**: \"customer_id\": \"user_12345\" o \"customer_id\": \"cliente_abc123\"\n \n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\n \n\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\n\n- **Enviar**: Identificador único del dispositivo o sesión\n \n- **Ejemplos**:\n \n - **Device ID**: \"customer_id\": \"device_abc123def456\"\n \n - **Session ID**: \"customer_id\": \"session_xyz789\"\n \n - **Browser Fingerprint**: \"customer_id\": \"browser_fp_123\"\n \n - **Local Storage ID**: \"customer_id\": \"local_456\"\n \n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\n \n\n**💡 Mejores Prácticas:**\n\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\n \n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\n \n- **Privacidad**: No incluir información personal identificable en el ID\n \n- **Longitud**: Recomendado entre 10-50 caracteres\n \n\n**🔄 Flujo de Implementación:**\n\n**1\\. Usuario Registrado:**\n\n``` typescript\nconst customerId = user.id || user.customerId || user.uuid;\n// customerId = \"user_12345\"\n\n ```\n\n**2\\. Usuario Anónimo:**\n\n``` typescript\n// Generar ID único del dispositivo\nconst deviceId = generateDeviceId(); // \"device_abc123def456\"\nconst sessionId = generateSessionId(); // \"session_xyz789\"\nconst customerId = deviceId || sessionId;\n\n ```\n\n**3\\. Envío en Request:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"device_abc123def456\",\n \"subcustomer_id\": \"subcust_01\"\n}\n\n ```\n\n**📊 Beneficios del Tracking:**\n\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\n \n- **Seguimiento**: Transacciones por dispositivo/sesión\n \n- **Fraude**: Detección de patrones sospechosos\n \n- **UX**: Mejora de la experiencia del usuario\n \n\n**💰 Reglas para el campo** **`amount`****:**\n\n- **`amount: null`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\n \n- **`amount: valor`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\n \n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\n \n\n**🔄 Flujo de Creación de Solicitud:**\n\n**1\\. Consultar productos:**\n\n``` json\nGET /products/by-customer-and-category\n{\n \"categoryId\": 120,\n \"limit\": 10,\n \"offset\": 0,\n \"searchText\": \"ACACIAS\"\n}\n\n ```\n\n**2\\. Respuesta del endpoint de productos:**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Productos obtenidos exitosamente\",\n \"date\": 1754945365966,\n \"payload\": {\n \"template_data_request\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"products\": [\n {\n \"id\": 1952,\n \"name\": \"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\",\n \"amount\": null,\n \"meta\": {\n \"fnArgs\": 20363,\n \"categoryId\": 44,\n \"form\": [\n {\n \"active\": true,\n \"type\": \"text\",\n \"label\": \"Numero De Casa\",\n \"placeholder\": \"Ingrese su Numero de Casa\",\n \"legend\": \"Numero de Casa\",\n \"value\": \"reference\",\n \"required\": true\n }\n ]\n },\n \"description\": null,\n \"image_url\": \"bill.png\",\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\"\n }\n ]\n }\n}\n\n ```\n\n**3\\. Crear solicitud usando datos del producto:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": { \n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\" \n}\n\n ```\n\n**Respuesta exitosa (201):**\n\n``` json\n{\n \"statusCode\": 201,\n \"message\": \"Solicitud creada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"25894df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"amount\": 9999,\n \"paymentMethods\": [\n {\n \"id\": 304135,\n \"name\": \"Transfiya\",\n \"internal_name\": \"AppFormTransfiya\",\n \"description\": \"Transfiya\",\n \"categoryid\": 176,\n \"image\": \"transfiya.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 56,\n \"name\": \"PSE\",\n \"internal_name\": \"AppFormPse\",\n \"description\": \"PSE\",\n \"categoryid\": 61,\n \"image\": \"pse.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 88,\n \"name\": \"Nequi\",\n \"internal_name\": \"AppFormNequiCargar\",\n \"description\": \"Botón de pago nequi\",\n \"categoryid\": 176,\n \"image\": \"nequi-responsive.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 53,\n \"name\": \"Bancolombia\",\n \"internal_name\": \"AppFormDefault\",\n \"description\": \"Botón de pago Bancolombia\",\n \"categoryid\": 177,\n \"image\": \"bancolombia.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 89,\n \"name\": \"Daviplata\",\n \"internal_name\": \"AppFormDaviplataPse\",\n \"description\": \"Botón de pago daviplata\",\n \"categoryid\": 176,\n \"image\": \"daviplata.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500 \n }\n ]\n }\n}\n\n ```\n\n**📋 Datos de la Respuesta:**\n\n- **`cartId:`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en `/products-payment/create`)\n \n- **`requestId`**: Identificador único de la solicitud de producto\n \n- **`amount`**: Monto que se debe pagar (calculado por el sistema)\n \n- **`additionalData`**: Datos adicionales del producto (solo si aplica)\n \n- **`paymentMethods`**: Array con medios de pago disponibles\n \n\n**💳 Información de Medios de Pago:** \nCada medio de pago contiene:\n\n- **`id`**: ID del medio de pago (se usa en `/products-payment/create`)\n \n- **`name`**: Nombre del medio de pago\n \n- **`categoryid`**: ID de la categoría del medio de pago (se usa en `/products-payment/create`)\n \n- **`template_data_request`**: Template para el campo `data` en `/products-payment/create`\n \n- **`cost`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\n \n\n**🔄 Siguiente Paso - Crear Pago:** \nCon la respuesta de este endpoint, puedes proceder a crear el pago usando `/products-payment/create` enviando:\n\n- `cartId`: Del campo `cartId` de la respuesta\n \n- `id`: Del campo `id` del medio de pago seleccionado\n \n- `categoryid`: Del campo `categoryid` del medio de pago seleccionado\n \n- `data`: Basado en `template_data_request` del medio de pago seleccionado\n \n\n**Respuesta de error (403):**\n\n``` json\n{\n \"statusCode\": 403,\n \"message\": \"Acceso denegado - Categoría no permitida\",\n \"date\": 1704441600000,\n \"payload\": {\n \"error\": \"CATEGORY_NOT_ALLOWED\"\n }\n}\n\n ```\n\n**Respuesta de error (401):**\n\n``` json\n{\n \"statusCode\": 401,\n \"message\": \"Error de autenticación\",\n \"date\": 1754924521985,\n \"payload\": {\n \"error\": \"AUTHENTICATION_ERROR\",\n \"details\": \"Authentication failed\",\n \"originalStatus\": 401\n }\n}\n\n ```\n\n### 6. Consultar Estado de Solicitud de Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/status`\n\nConsulta el estado actual de una solicitud de producto individual por su `requestId` o de un carrito completo por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**📊 Estados Posibles:**\n\n**🔄 Estados de Proceso:**\n\n- **`INITIATED`**: Solicitud creada y en proceso de validación\n \n- **`QUERIED`**: Solicitud consultada exitosamente en API externa\n \n- **`PENDING`**: Solicitud lista para procesar el pago\n \n- **`WAITING_PAYMENT`**: Esperando confirmación de pago del proveedor\n \n\n**❌ Estados de Error:**\n\n- **`INVALID`**: Datos inválidos en la validación del producto\n \n- **`DISCARDED`**: Usuario decidió no continuar con el pago del producto\n \n- **`EXPIRED`**: La solicitud de producto ha expirado\n \n\n**✅ Estados Finales:**\n\n- **`SOLD`**: Pago exitoso y producto vendido\n \n- **`REFUNDED`**: Pago exitoso pero venta falló\n \n- **`CANCELLED`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Consultar estado usando requestId:**\n\n``` json\nPOST /product-requests/status\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta del estado (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307880382,\n \"payload\": {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": 9999,\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\"\n }\n}\n\n ```\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Consultar estado usando cartId:**\n\n``` json\nPOST /product-requests/status\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta del estado (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307754145,\n \"payload\": {\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"COMPLETED\",\n \"totalAmount\": \"9999.00\",\n \"itemsCount\": 1,\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"products\": [\n {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": \"9999.00\",\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Frontend**: Mostrar estado actual al usuario\n \n- **Backend**: Seguimiento de transacciones\n \n- **Webhooks**: Complementar notificaciones asíncronas\n \n- **Auditoría**: Verificar estado de solicitudes\n \n- **Carrito**: Consultar estado de múltiples productos a la vez\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 404,\n \"message\": \"Solicitud de producto no encontrada\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"PRODUCT_REQUEST_NOT_FOUND\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n### 7. Descartar Solicitud de Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/discard`\n\nDescarta una solicitud de producto individual por su `requestId` o un carrito completo con todos sus productos por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas descartar solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**⚠️ Condiciones para Descartar:**\n\n**Para producto individual:**\n\n- El producto debe estar en estado `PENDING`\n \n- Debe pertenecer al usuario autenticado\n \n\n**Para carrito completo:**\n\n- El carrito debe estar en estado `ACTIVE`\n \n- Debe pertenecer al usuario autenticado\n \n- Debe tener al menos un producto en estado `PENDING`\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Descartar producto usando requestId:**\n\n``` json\nPOST /product-requests/discard\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Solicitud descartada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"status\": \"DISCARDED\"\n }\n}\n\n ```\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Descartar carrito usando cartId:**\n\n``` json\nPOST /product-requests/discard\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Carrito descartado exitosamente (2 productos)\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"status\": \"CANCELLED\",\n \"discardedCount\": 2,\n \"products\": [\n {\n \"requestId\": \"20db2a40-77b7-11f0-85d4-7d462019c921\",\n \"status\": \"DISCARDED\"\n },\n {\n \"requestId\": \"30db2a40-77b7-11f0-85d4-7d462019c922\",\n \"status\": \"DISCARDED\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes descartar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes descartar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Usuario cambia de opinión**: Descarta producto antes de pagar\n \n- **Datos incorrectos**: Usuario ingresó datos equivocados\n \n- **Monto muy alto**: Usuario no esperaba ese monto\n \n- **Limpiar carrito**: Descartar todos los productos de una vez\n \n- **Empezar de nuevo**: Usuario quiere crear un nuevo carrito desde cero\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (400 - Producto no está en PENDING):**\n\n``` json\n{\n \"statusCode\": 500,\n \"message\": \"Product request is not pending\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"Product request is not pending\"\n }\n}\n\n ```\n\n**Respuesta de error (400 - Carrito no está ACTIVE):**\n\n``` json\n{\n \"statusCode\": 500,\n \"message\": \"Cart is not active\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"Cart is not active\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 500,\n \"message\": \"Product request not found\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"Product request not found\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
40
+ "content": "# 🛒 Solicitudes de Producto\n\nEndpoints para crear solicitudes de productos\n\n## Endpoints\n\n### 4.5 Cotizar Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/quote`\n\nCotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\n\n**🎯 Casos de Uso:**\n\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\n- **SOAT**: Verificar precio del seguro antes de comprar\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\n\n**✅ Ventajas:**\n\n- No crea carrito ni solicitud de compra\n- Solo consulta y guarda trazabilidad\n- Usuario puede ver el monto antes de decidir\n- Analytics de cotizaciones vs compras\n\n**📊 Vinculación Automática:**\n\nSi el usuario decide comprar usando `/product-requests/create` con los **mismos datos**, el sistema:\n\n- Vincula automáticamente la cotización con la compra\n- Permite análisis de tasa de conversión\n- Identifica usuarios que cotizaron pero no compraron\n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n- `x-secret-id: {secretId}`\n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría\n- `id` (number, requerido): ID del producto\n- `amount` (number|null, opcional): Usar `null` para productos con consulta previa\n- `data` (object, requerido): Datos específicos del producto\n- `query_type` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\n- `sell_type` (string, requerido): Tipo de venta (debe requerir consulta previa)\n- `agreement` (string, opcional): Acuerdo del producto\n\n**⚠️ Importante:**\n\n- Solo funciona para productos que **requieren consulta previa**\n- Para productos directos, usar `/product-requests/create`\n- No retorna medios de pago (solo el monto cotizado)\n\n**Respuesta exitosa (200):**\n\n```json\n{\n \"statusCode\": 200,\n \"message\": \"Cotización realizada exitosamente\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"productId\": 52368,\n \"categoryId\": 120,\n \"amount\": 150000,\n \"additionalData\": {\n \"invoiceDueDate\": \"2026-05-10\",\n \"reference\": \"123456789\",\n \"customerName\": \"JUAN PEREZ\",\n \"address\": \"Calle 123\"\n },\n \"quotedAt\": \"2024-01-11T10:30:00.000Z\"\n }\n}\n```\n\n**Campos de la respuesta:**\n\n- `quoteId`: ID de la cotización guardada\n- `productId`: ID del producto cotizado\n- `categoryId`: ID de la categoría del producto\n- `amount`: Monto cotizado\n- `additionalData`: Datos adicionales del producto consultado. Incluye `invoiceDueDate: string | null` cuando el proveedor retorna fecha de vencimiento de la factura; es `null` para productos que no aplican\n- `quotedAt`: Timestamp de la cotización\n\n**Respuesta de error (400) - Producto directo:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Este producto no requiere cotización previa\",\n \"date\": 1733932800000,\n \"payload\": {\n \"error\": \"PRODUCT_DOES_NOT_REQUIRE_QUOTE\",\n \"message\": \"Use el endpoint /create para compra directa\"\n }\n}\n```\n\n**Respuesta de error (400) - Datos inválidos:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Datos inválidos para la cotización\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"status\": \"INVALID\",\n \"error\": \"Referencia no encontrada\"\n }\n}\n```\n\n**🔄 Flujo Completo:**\n\n**1. Cotizar producto:**\n\n```bash\nPOST /product-requests/quote\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Respuesta:** `{\"quoteId\": \"...\", \"amount\": 150000}`\n\n**2. Usuario decide comprar (mismo request):**\n\n```bash\nPOST /product-requests/create\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.\n\n### 5. Crear Solicitud de Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/create`\n\nCrea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\n\n**📋 Relación con Endpoint de Productos:** \nLos datos para crear esta solicitud provienen principalmente del endpoint `products/by-customer-and-category`:\n\n- **`category_id`**: ID de la categoría (del endpoint de productos)\n \n- **`id`**: ID del producto seleccionado (del campo `id` del producto)\n \n- **`query_type`**: Tipo de consulta (del campo `query_type` del producto)\n \n- **`sell_type`**: Tipo de venta (del campo `sell_type` del producto)\n \n- **`data`**: Estructura basada en `template_data_request` del producto\n \n- **`agreement`**: Acuerdo del producto (del campo `agreement` del producto)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\n \n- `id` (number, requerido): ID del producto seleccionado (obtenido del campo `id` del producto)\n \n- `amount` (number|null, opcional): Monto del producto (ver reglas de uso)\n \n- `data` (object, requerido): Datos específicos del producto basados en `template_data_request` del producto\n \n- `query_type` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\n \n- `sell_type` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\n \n- `agreement` (string, opcional): Aceptación de términos (puede venir del campo `agreement` del producto)\n \n- `customer_id` (string, requerido si omite `cart_id`; opcional si envía `cart_id`): Identificador único del usuario o dispositivo; persiste en `core.shopping_carts.user_temp_id` al crear carrito.\n \n- `subcustomer_id` (string, opcional): Identificador del subcliente o cuenta hija asociada al `customer_id`\n \n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\n \n\n**📋 Reglas para el campo customer_id:**\n\n**🔑 Con Usuario Registrado:**\n\n- **Enviar**: ID único del usuario en tu sistema\n \n- **Ejemplo**: \"customer_id\": \"user_12345\" o \"customer_id\": \"cliente_abc123\"\n \n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\n \n\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\n\n- **Enviar**: Identificador único del dispositivo o sesión\n \n- **Ejemplos**:\n \n - **Device ID**: \"customer_id\": \"device_abc123def456\"\n \n - **Session ID**: \"customer_id\": \"session_xyz789\"\n \n - **Browser Fingerprint**: \"customer_id\": \"browser_fp_123\"\n \n - **Local Storage ID**: \"customer_id\": \"local_456\"\n \n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\n \n\n**💡 Mejores Prácticas:**\n\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\n \n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\n \n- **Privacidad**: No incluir información personal identificable en el ID\n \n- **Longitud**: Recomendado entre 10-50 caracteres\n \n\n**🔄 Flujo de Implementación:**\n\n**1\\. Usuario Registrado:**\n\n``` typescript\nconst customerId = user.id || user.customerId || user.uuid;\n// customerId = \"user_12345\"\n\n ```\n\n**2\\. Usuario Anónimo:**\n\n``` typescript\n// Generar ID único del dispositivo\nconst deviceId = generateDeviceId(); // \"device_abc123def456\"\nconst sessionId = generateSessionId(); // \"session_xyz789\"\nconst customerId = deviceId || sessionId;\n\n ```\n\n**3\\. Envío en Request:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"device_abc123def456\",\n \"subcustomer_id\": \"subcust_01\"\n}\n\n ```\n\n**📊 Beneficios del Tracking:**\n\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\n \n- **Seguimiento**: Transacciones por dispositivo/sesión\n \n- **Fraude**: Detección de patrones sospechosos\n \n- **UX**: Mejora de la experiencia del usuario\n \n\n**💰 Reglas para el campo** **`amount`****:**\n\n- **`amount: null`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\n \n- **`amount: valor`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\n \n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\n \n\n**🔄 Flujo de Creación de Solicitud:**\n\n**1\\. Consultar productos:**\n\n``` json\nGET /products/by-customer-and-category\n{\n \"categoryId\": 120,\n \"limit\": 10,\n \"offset\": 0,\n \"searchText\": \"ACACIAS\"\n}\n\n ```\n\n**2\\. Respuesta del endpoint de productos:**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Productos obtenidos exitosamente\",\n \"date\": 1754945365966,\n \"payload\": {\n \"template_data_request\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"products\": [\n {\n \"id\": 1952,\n \"name\": \"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\",\n \"amount\": null,\n \"meta\": {\n \"fnArgs\": 20363,\n \"categoryId\": 44,\n \"form\": [\n {\n \"active\": true,\n \"type\": \"text\",\n \"label\": \"Numero De Casa\",\n \"placeholder\": \"Ingrese su Numero de Casa\",\n \"legend\": \"Numero de Casa\",\n \"value\": \"reference\",\n \"required\": true\n }\n ]\n },\n \"description\": null,\n \"image_url\": \"bill.png\",\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\"\n }\n ]\n }\n}\n\n ```\n\n**3\\. Crear solicitud usando datos del producto:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": { \n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_123\"\n}\n\n ```\n\n**Respuesta exitosa (201):**\n\n``` json\n{\n \"statusCode\": 201,\n \"message\": \"Solicitud creada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"25894df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"amount\": 9999,\n \"paymentMethods\": [\n {\n \"id\": 304135,\n \"name\": \"Transfiya\",\n \"internal_name\": \"AppFormTransfiya\",\n \"description\": \"Transfiya\",\n \"categoryid\": 176,\n \"image\": \"transfiya.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 56,\n \"name\": \"PSE\",\n \"internal_name\": \"AppFormPse\",\n \"description\": \"PSE\",\n \"categoryid\": 61,\n \"image\": \"pse.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 88,\n \"name\": \"Nequi\",\n \"internal_name\": \"AppFormNequiCargar\",\n \"description\": \"Botón de pago nequi\",\n \"categoryid\": 176,\n \"image\": \"nequi-responsive.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 53,\n \"name\": \"Bancolombia\",\n \"internal_name\": \"AppFormDefault\",\n \"description\": \"Botón de pago Bancolombia\",\n \"categoryid\": 177,\n \"image\": \"bancolombia.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 89,\n \"name\": \"Daviplata\",\n \"internal_name\": \"AppFormDaviplataPse\",\n \"description\": \"Botón de pago daviplata\",\n \"categoryid\": 176,\n \"image\": \"daviplata.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500 \n }\n ]\n }\n}\n\n ```\n\n**📋 Datos de la Respuesta:**\n\n- **`cartId:`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en `/products-payment/create`)\n \n- **`requestId`**: Identificador único de la solicitud de producto\n \n- **`amount`**: Monto que se debe pagar (calculado por el sistema)\n \n- **`additionalData`**: Datos adicionales del producto (solo si aplica)\n \n- **`paymentMethods`**: Array con medios de pago disponibles\n \n\n**💳 Información de Medios de Pago:** \nCada medio de pago contiene:\n\n- **`id`**: ID del medio de pago (se usa en `/products-payment/create`)\n \n- **`name`**: Nombre del medio de pago\n \n- **`categoryid`**: ID de la categoría del medio de pago (se usa en `/products-payment/create`)\n \n- **`template_data_request`**: Template para el campo `data` en `/products-payment/create`\n \n- **`cost`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\n \n\n**🔄 Siguiente Paso - Crear Pago:** \nCon la respuesta de este endpoint, puedes proceder a crear el pago usando `/products-payment/create` enviando:\n\n- `cartId`: Del campo `cartId` de la respuesta\n \n- `id`: Del campo `id` del medio de pago seleccionado\n \n- `categoryid`: Del campo `categoryid` del medio de pago seleccionado\n \n- `data`: Basado en `template_data_request` del medio de pago seleccionado\n \n\n**Respuesta de error (403):**\n\n``` json\n{\n \"statusCode\": 403,\n \"message\": \"Acceso denegado - Categoría no permitida\",\n \"date\": 1704441600000,\n \"payload\": {\n \"error\": \"CATEGORY_NOT_ALLOWED\"\n }\n}\n\n ```\n\n**Respuesta de error (401):**\n\n``` json\n{\n \"statusCode\": 401,\n \"message\": \"Error de autenticación\",\n \"date\": 1754924521985,\n \"payload\": {\n \"error\": \"AUTHENTICATION_ERROR\",\n \"details\": \"Authentication failed\",\n \"originalStatus\": 401\n }\n}\n\n ```\n\n### 6. Consultar Estado de Solicitud de Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/status`\n\nConsulta el estado actual de una solicitud de producto individual por su `requestId` o de un carrito completo por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**📊 Estados Posibles:**\n\n**🔄 Estados de Proceso:**\n\n- **`INITIATED`**: Solicitud creada y en proceso de validación\n \n- **`QUERIED`**: Solicitud consultada exitosamente en API externa\n \n- **`PENDING`**: Solicitud lista para procesar el pago\n \n- **`WAITING_PAYMENT`**: Esperando confirmación de pago del proveedor\n \n\n**❌ Estados de Error:**\n\n- **`INVALID`**: Datos inválidos en la validación del producto\n \n- **`DISCARDED`**: Usuario decidió no continuar con el pago del producto\n \n- **`EXPIRED`**: La solicitud de producto ha expirado\n \n\n**✅ Estados Finales:**\n\n- **`SOLD`**: Pago exitoso y producto vendido\n \n- **`REFUNDED`**: Pago exitoso pero venta falló\n \n- **`CANCELLED`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Consultar estado usando requestId:**\n\n``` json\nPOST /product-requests/status\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta del estado (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307880382,\n \"payload\": {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": 9999,\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"invoiceDueDate\": \"2026-05-31\"\n }\n}\n\n ```\n\n> ⚠️ `invoiceDueDate` es `string | null` — tiene valor solo cuando el proveedor retorna fecha de vencimiento de la factura. En productos que no son facturas, siempre es `null`.\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Consultar estado usando cartId:**\n\n``` json\nPOST /product-requests/status\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta del estado (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307754145,\n \"payload\": {\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"COMPLETED\",\n \"totalAmount\": \"9999.00\",\n \"itemsCount\": 1,\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"products\": [\n {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": \"9999.00\",\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"invoiceDueDate\": \"2026-05-31\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Frontend**: Mostrar estado actual al usuario\n \n- **Backend**: Seguimiento de transacciones\n \n- **Webhooks**: Complementar notificaciones asíncronas\n \n- **Auditoría**: Verificar estado de solicitudes\n \n- **Carrito**: Consultar estado de múltiples productos a la vez\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 404,\n \"message\": \"Solicitud de producto no encontrada\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"PRODUCT_REQUEST_NOT_FOUND\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n### 7. Descartar Solicitud de Producto\n\n**Method**: `POST`\n\n**Path**: `/product-requests/discard`\n\nDescarta una solicitud de producto individual por su `requestId` o un carrito completo con todos sus productos por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas descartar solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**⚠️ Condiciones para Descartar:**\n\n**Para producto individual:**\n\n- El producto debe estar en estado `PENDING`\n \n- Debe pertenecer al usuario autenticado\n \n\n**Para carrito completo:**\n\n- El carrito debe estar en estado `ACTIVE`\n \n- Debe pertenecer al usuario autenticado\n \n- Debe tener al menos un producto en estado `PENDING`\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Descartar producto usando requestId:**\n\n``` json\nPOST /product-requests/discard\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Solicitud descartada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"status\": \"DISCARDED\"\n }\n}\n\n ```\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Descartar carrito usando cartId:**\n\n``` json\nPOST /product-requests/discard\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Carrito descartado exitosamente (2 productos)\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"status\": \"CANCELLED\",\n \"discardedCount\": 2,\n \"products\": [\n {\n \"requestId\": \"20db2a40-77b7-11f0-85d4-7d462019c921\",\n \"status\": \"DISCARDED\"\n },\n {\n \"requestId\": \"30db2a40-77b7-11f0-85d4-7d462019c922\",\n \"status\": \"DISCARDED\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes descartar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes descartar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Usuario cambia de opinión**: Descarta producto antes de pagar\n \n- **Datos incorrectos**: Usuario ingresó datos equivocados\n \n- **Monto muy alto**: Usuario no esperaba ese monto\n \n- **Limpiar carrito**: Descartar todos los productos de una vez\n \n- **Empezar de nuevo**: Usuario quiere crear un nuevo carrito desde cero\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (400 - Producto no está en PENDING):**\n\n``` json\n{\n \"statusCode\": 500,\n \"message\": \"Product request is not pending\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"Product request is not pending\"\n }\n}\n\n ```\n\n**Respuesta de error (400 - Carrito no está ACTIVE):**\n\n``` json\n{\n \"statusCode\": 500,\n \"message\": \"Cart is not active\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"Cart is not active\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 500,\n \"message\": \"Product request not found\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"Product request not found\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
41
41
  },
42
42
  {
43
43
  "uri": "postman://collection/products-payment-api/folder/pagos",
@@ -105,23 +105,23 @@ export const resources = [
105
105
  {
106
106
  "uri": "postman://collection/products-payment-api/endpoint/post/product-requests/quote",
107
107
  "name": "POST /product-requests/quote - Endpoint Documentation",
108
- "description": "Cotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\n\n**🎯 Casos de Uso:**\n\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\n- **SOAT**: Verificar precio del seguro antes de comprar\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\n\n**✅ Ventajas:**\n\n- No crea carrito ni solicitud de compra\n- Solo consulta y guarda trazabilidad\n- Usuario puede ver el monto antes de decidir\n- Analytics de cotizaciones vs compras\n\n**📊 Vinculación Automática:**\n\nSi el usuario decide comprar usando `/product-requests/create` con los **mismos datos**, el sistema:\n\n- Vincula automáticamente la cotización con la compra\n- Permite análisis de tasa de conversión\n- Identifica usuarios que cotizaron pero no compraron\n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n- `x-secret-id: {secretId}`\n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría\n- `id` (number, requerido): ID del producto\n- `amount` (number|null, opcional): Usar `null` para productos con consulta previa\n- `data` (object, requerido): Datos específicos del producto\n- `query_type` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\n- `sell_type` (string, requerido): Tipo de venta (debe requerir consulta previa)\n- `agreement` (string, opcional): Acuerdo del producto\n\n**⚠️ Importante:**\n\n- Solo funciona para productos que **requieren consulta previa**\n- Para productos directos, usar `/product-requests/create`\n- No retorna medios de pago (solo el monto cotizado)\n\n**Respuesta exitosa (200):**\n\n```json\n{\n \"statusCode\": 200,\n \"message\": \"Cotización realizada exitosamente\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"amount\": 150000,\n \"status\": \"SUCCESS\",\n \"data\": {\n \"reference\": \"123456789\",\n \"customerName\": \"JUAN PEREZ\",\n \"address\": \"Calle 123\"\n }\n }\n}\n```\n\n**Campos de la respuesta:**\n\n- `quoteId`: ID de la cotización guardada\n- `amount`: Monto cotizado\n- `status`: Estado de la cotización (SUCCESS, INVALID, FAILED)\n- `data`: Datos adicionales del producto consultado\n\n**Respuesta de error (400) - Producto directo:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Este producto no requiere cotización previa\",\n \"date\": 1733932800000,\n \"payload\": {\n \"error\": \"PRODUCT_DOES_NOT_REQUIRE_QUOTE\",\n \"message\": \"Use el endpoint /create para compra directa\"\n }\n}\n```\n\n**Respuesta de error (400) - Datos inválidos:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Datos inválidos para la cotización\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"status\": \"INVALID\",\n \"error\": \"Referencia no encontrada\"\n }\n}\n```\n\n**🔄 Flujo Completo:**\n\n**1. Cotizar producto:**\n\n```bash\nPOST /product-requests/quote\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Respuesta:** `{\"quoteId\": \"...\", \"amount\": 150000}`\n\n**2. Usuario decide comprar (mismo request):**\n\n```bash\nPOST /product-requests/create\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.",
108
+ "description": "Cotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\n\n**🎯 Casos de Uso:**\n\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\n- **SOAT**: Verificar precio del seguro antes de comprar\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\n\n**✅ Ventajas:**\n\n- No crea carrito ni solicitud de compra\n- Solo consulta y guarda trazabilidad\n- Usuario puede ver el monto antes de decidir\n- Analytics de cotizaciones vs compras\n\n**📊 Vinculación Automática:**\n\nSi el usuario decide comprar usando `/product-requests/create` con los **mismos datos**, el sistema:\n\n- Vincula automáticamente la cotización con la compra\n- Permite análisis de tasa de conversión\n- Identifica usuarios que cotizaron pero no compraron\n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n- `x-secret-id: {secretId}`\n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría\n- `id` (number, requerido): ID del producto\n- `amount` (number|null, opcional): Usar `null` para productos con consulta previa\n- `data` (object, requerido): Datos específicos del producto\n- `query_type` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\n- `sell_type` (string, requerido): Tipo de venta (debe requerir consulta previa)\n- `agreement` (string, opcional): Acuerdo del producto\n\n**⚠️ Importante:**\n\n- Solo funciona para productos que **requieren consulta previa**\n- Para productos directos, usar `/product-requests/create`\n- No retorna medios de pago (solo el monto cotizado)\n\n**Respuesta exitosa (200):**\n\n```json\n{\n \"statusCode\": 200,\n \"message\": \"Cotización realizada exitosamente\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"productId\": 52368,\n \"categoryId\": 120,\n \"amount\": 150000,\n \"additionalData\": {\n \"invoiceDueDate\": \"2026-05-10\",\n \"reference\": \"123456789\",\n \"customerName\": \"JUAN PEREZ\",\n \"address\": \"Calle 123\"\n },\n \"quotedAt\": \"2024-01-11T10:30:00.000Z\"\n }\n}\n```\n\n**Campos de la respuesta:**\n\n- `quoteId`: ID de la cotización guardada\n- `productId`: ID del producto cotizado\n- `categoryId`: ID de la categoría del producto\n- `amount`: Monto cotizado\n- `additionalData`: Datos adicionales del producto consultado. Incluye `invoiceDueDate: string | null` cuando el proveedor retorna fecha de vencimiento de la factura; es `null` para productos que no aplican\n- `quotedAt`: Timestamp de la cotización\n\n**Respuesta de error (400) - Producto directo:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Este producto no requiere cotización previa\",\n \"date\": 1733932800000,\n \"payload\": {\n \"error\": \"PRODUCT_DOES_NOT_REQUIRE_QUOTE\",\n \"message\": \"Use el endpoint /create para compra directa\"\n }\n}\n```\n\n**Respuesta de error (400) - Datos inválidos:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Datos inválidos para la cotización\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"status\": \"INVALID\",\n \"error\": \"Referencia no encontrada\"\n }\n}\n```\n\n**🔄 Flujo Completo:**\n\n**1. Cotizar producto:**\n\n```bash\nPOST /product-requests/quote\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Respuesta:** `{\"quoteId\": \"...\", \"amount\": 150000}`\n\n**2. Usuario decide comprar (mismo request):**\n\n```bash\nPOST /product-requests/create\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.",
109
109
  "mimeType": "text/markdown",
110
- "content": "# 4.5 Cotizar Producto\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product-requests/quote`\n\n## Description\n\nCotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\n\n**🎯 Casos de Uso:**\n\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\n- **SOAT**: Verificar precio del seguro antes de comprar\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\n\n**✅ Ventajas:**\n\n- No crea carrito ni solicitud de compra\n- Solo consulta y guarda trazabilidad\n- Usuario puede ver el monto antes de decidir\n- Analytics de cotizaciones vs compras\n\n**📊 Vinculación Automática:**\n\nSi el usuario decide comprar usando `/product-requests/create` con los **mismos datos**, el sistema:\n\n- Vincula automáticamente la cotización con la compra\n- Permite análisis de tasa de conversión\n- Identifica usuarios que cotizaron pero no compraron\n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n- `x-secret-id: {secretId}`\n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría\n- `id` (number, requerido): ID del producto\n- `amount` (number|null, opcional): Usar `null` para productos con consulta previa\n- `data` (object, requerido): Datos específicos del producto\n- `query_type` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\n- `sell_type` (string, requerido): Tipo de venta (debe requerir consulta previa)\n- `agreement` (string, opcional): Acuerdo del producto\n\n**⚠️ Importante:**\n\n- Solo funciona para productos que **requieren consulta previa**\n- Para productos directos, usar `/product-requests/create`\n- No retorna medios de pago (solo el monto cotizado)\n\n**Respuesta exitosa (200):**\n\n```json\n{\n \"statusCode\": 200,\n \"message\": \"Cotización realizada exitosamente\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"amount\": 150000,\n \"status\": \"SUCCESS\",\n \"data\": {\n \"reference\": \"123456789\",\n \"customerName\": \"JUAN PEREZ\",\n \"address\": \"Calle 123\"\n }\n }\n}\n```\n\n**Campos de la respuesta:**\n\n- `quoteId`: ID de la cotización guardada\n- `amount`: Monto cotizado\n- `status`: Estado de la cotización (SUCCESS, INVALID, FAILED)\n- `data`: Datos adicionales del producto consultado\n\n**Respuesta de error (400) - Producto directo:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Este producto no requiere cotización previa\",\n \"date\": 1733932800000,\n \"payload\": {\n \"error\": \"PRODUCT_DOES_NOT_REQUIRE_QUOTE\",\n \"message\": \"Use el endpoint /create para compra directa\"\n }\n}\n```\n\n**Respuesta de error (400) - Datos inválidos:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Datos inválidos para la cotización\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"status\": \"INVALID\",\n \"error\": \"Referencia no encontrada\"\n }\n}\n```\n\n**🔄 Flujo Completo:**\n\n**1. Cotizar producto:**\n\n```bash\nPOST /product-requests/quote\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Respuesta:** `{\"quoteId\": \"...\", \"amount\": 150000}`\n\n**2. Usuario decide comprar (mismo request):**\n\n```bash\nPOST /product-requests/create\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.\n\n## Headers\n\n- **Authorization**: Bearer token\n- **x-secret-id**: secretId\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"7700000000001\"\n}\n```\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
110
+ "content": "# 4.5 Cotizar Producto\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product-requests/quote`\n\n## Description\n\nCotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\n\n**🎯 Casos de Uso:**\n\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\n- **SOAT**: Verificar precio del seguro antes de comprar\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\n\n**✅ Ventajas:**\n\n- No crea carrito ni solicitud de compra\n- Solo consulta y guarda trazabilidad\n- Usuario puede ver el monto antes de decidir\n- Analytics de cotizaciones vs compras\n\n**📊 Vinculación Automática:**\n\nSi el usuario decide comprar usando `/product-requests/create` con los **mismos datos**, el sistema:\n\n- Vincula automáticamente la cotización con la compra\n- Permite análisis de tasa de conversión\n- Identifica usuarios que cotizaron pero no compraron\n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n- `x-secret-id: {secretId}`\n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría\n- `id` (number, requerido): ID del producto\n- `amount` (number|null, opcional): Usar `null` para productos con consulta previa\n- `data` (object, requerido): Datos específicos del producto\n- `query_type` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\n- `sell_type` (string, requerido): Tipo de venta (debe requerir consulta previa)\n- `agreement` (string, opcional): Acuerdo del producto\n\n**⚠️ Importante:**\n\n- Solo funciona para productos que **requieren consulta previa**\n- Para productos directos, usar `/product-requests/create`\n- No retorna medios de pago (solo el monto cotizado)\n\n**Respuesta exitosa (200):**\n\n```json\n{\n \"statusCode\": 200,\n \"message\": \"Cotización realizada exitosamente\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"productId\": 52368,\n \"categoryId\": 120,\n \"amount\": 150000,\n \"additionalData\": {\n \"invoiceDueDate\": \"2026-05-10\",\n \"reference\": \"123456789\",\n \"customerName\": \"JUAN PEREZ\",\n \"address\": \"Calle 123\"\n },\n \"quotedAt\": \"2024-01-11T10:30:00.000Z\"\n }\n}\n```\n\n**Campos de la respuesta:**\n\n- `quoteId`: ID de la cotización guardada\n- `productId`: ID del producto cotizado\n- `categoryId`: ID de la categoría del producto\n- `amount`: Monto cotizado\n- `additionalData`: Datos adicionales del producto consultado. Incluye `invoiceDueDate: string | null` cuando el proveedor retorna fecha de vencimiento de la factura; es `null` para productos que no aplican\n- `quotedAt`: Timestamp de la cotización\n\n**Respuesta de error (400) - Producto directo:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Este producto no requiere cotización previa\",\n \"date\": 1733932800000,\n \"payload\": {\n \"error\": \"PRODUCT_DOES_NOT_REQUIRE_QUOTE\",\n \"message\": \"Use el endpoint /create para compra directa\"\n }\n}\n```\n\n**Respuesta de error (400) - Datos inválidos:**\n\n```json\n{\n \"statusCode\": 400,\n \"message\": \"Datos inválidos para la cotización\",\n \"date\": 1733932800000,\n \"payload\": {\n \"quoteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"status\": \"INVALID\",\n \"error\": \"Referencia no encontrada\"\n }\n}\n```\n\n**🔄 Flujo Completo:**\n\n**1. Cotizar producto:**\n\n```bash\nPOST /product-requests/quote\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Respuesta:** `{\"quoteId\": \"...\", \"amount\": 150000}`\n\n**2. Usuario decide comprar (mismo request):**\n\n```bash\nPOST /product-requests/create\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"data\": {\"reference\": \"123456789\"},\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\"\n}\n```\n\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.\n\n## Headers\n\n- **Authorization**: Bearer token\n- **x-secret-id**: secretId\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"7700000000001\"\n}\n```\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
111
111
  },
112
112
  {
113
113
  "uri": "postman://collection/products-payment-api/endpoint/post/product-requests/create",
114
114
  "name": "POST /product-requests/create - Endpoint Documentation",
115
- "description": "Crea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\n\n**📋 Relación con Endpoint de Productos:** \nLos datos para crear esta solicitud provienen principalmente del endpoint `products/by-customer-and-category`:\n\n- **`category_id`**: ID de la categoría (del endpoint de productos)\n \n- **`id`**: ID del producto seleccionado (del campo `id` del producto)\n \n- **`query_type`**: Tipo de consulta (del campo `query_type` del producto)\n \n- **`sell_type`**: Tipo de venta (del campo `sell_type` del producto)\n \n- **`data`**: Estructura basada en `template_data_request` del producto\n \n- **`agreement`**: Acuerdo del producto (del campo `agreement` del producto)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\n \n- `id` (number, requerido): ID del producto seleccionado (obtenido del campo `id` del producto)\n \n- `amount` (number|null, opcional): Monto del producto (ver reglas de uso)\n \n- `data` (object, requerido): Datos específicos del producto basados en `template_data_request` del producto\n \n- `query_type` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\n \n- `sell_type` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\n \n- `agreement` (string, opcional): Aceptación de términos (puede venir del campo `agreement` del producto)\n \n- `customer_id` (string, opcional): Identificador único del usuario o dispositivo\n \n- `subcustomer_id` (string, opcional): Identificador del subcliente o cuenta hija asociada al `customer_id`\n \n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\n \n\n**📋 Reglas para el campo customer_id:**\n\n**🔑 Con Usuario Registrado:**\n\n- **Enviar**: ID único del usuario en tu sistema\n \n- **Ejemplo**: \"customer_id\": \"user_12345\" o \"customer_id\": \"cliente_abc123\"\n \n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\n \n\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\n\n- **Enviar**: Identificador único del dispositivo o sesión\n \n- **Ejemplos**:\n \n - **Device ID**: \"customer_id\": \"device_abc123def456\"\n \n - **Session ID**: \"customer_id\": \"session_xyz789\"\n \n - **Browser Fingerprint**: \"customer_id\": \"browser_fp_123\"\n \n - **Local Storage ID**: \"customer_id\": \"local_456\"\n \n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\n \n\n**💡 Mejores Prácticas:**\n\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\n \n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\n \n- **Privacidad**: No incluir información personal identificable en el ID\n \n- **Longitud**: Recomendado entre 10-50 caracteres\n \n\n**🔄 Flujo de Implementación:**\n\n**1\\. Usuario Registrado:**\n\n``` typescript\nconst customerId = user.id || user.customerId || user.uuid;\n// customerId = \"user_12345\"\n\n ```\n\n**2\\. Usuario Anónimo:**\n\n``` typescript\n// Generar ID único del dispositivo\nconst deviceId = generateDeviceId(); // \"device_abc123def456\"\nconst sessionId = generateSessionId(); // \"session_xyz789\"\nconst customerId = deviceId || sessionId;\n\n ```\n\n**3\\. Envío en Request:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"device_abc123def456\",\n \"subcustomer_id\": \"subcust_01\"\n}\n\n ```\n\n**📊 Beneficios del Tracking:**\n\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\n \n- **Seguimiento**: Transacciones por dispositivo/sesión\n \n- **Fraude**: Detección de patrones sospechosos\n \n- **UX**: Mejora de la experiencia del usuario\n \n\n**💰 Reglas para el campo** **`amount`****:**\n\n- **`amount: null`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\n \n- **`amount: valor`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\n \n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\n \n\n**🔄 Flujo de Creación de Solicitud:**\n\n**1\\. Consultar productos:**\n\n``` json\nGET /products/by-customer-and-category\n{\n \"categoryId\": 120,\n \"limit\": 10,\n \"offset\": 0,\n \"searchText\": \"ACACIAS\"\n}\n\n ```\n\n**2\\. Respuesta del endpoint de productos:**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Productos obtenidos exitosamente\",\n \"date\": 1754945365966,\n \"payload\": {\n \"template_data_request\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"products\": [\n {\n \"id\": 1952,\n \"name\": \"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\",\n \"amount\": null,\n \"meta\": {\n \"fnArgs\": 20363,\n \"categoryId\": 44,\n \"form\": [\n {\n \"active\": true,\n \"type\": \"text\",\n \"label\": \"Numero De Casa\",\n \"placeholder\": \"Ingrese su Numero de Casa\",\n \"legend\": \"Numero de Casa\",\n \"value\": \"reference\",\n \"required\": true\n }\n ]\n },\n \"description\": null,\n \"image_url\": \"bill.png\",\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\"\n }\n ]\n }\n}\n\n ```\n\n**3\\. Crear solicitud usando datos del producto:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": { \n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\" \n}\n\n ```\n\n**Respuesta exitosa (201):**\n\n``` json\n{\n \"statusCode\": 201,\n \"message\": \"Solicitud creada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"25894df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"amount\": 9999,\n \"paymentMethods\": [\n {\n \"id\": 304135,\n \"name\": \"Transfiya\",\n \"internal_name\": \"AppFormTransfiya\",\n \"description\": \"Transfiya\",\n \"categoryid\": 176,\n \"image\": \"transfiya.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 56,\n \"name\": \"PSE\",\n \"internal_name\": \"AppFormPse\",\n \"description\": \"PSE\",\n \"categoryid\": 61,\n \"image\": \"pse.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 88,\n \"name\": \"Nequi\",\n \"internal_name\": \"AppFormNequiCargar\",\n \"description\": \"Botón de pago nequi\",\n \"categoryid\": 176,\n \"image\": \"nequi-responsive.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 53,\n \"name\": \"Bancolombia\",\n \"internal_name\": \"AppFormDefault\",\n \"description\": \"Botón de pago Bancolombia\",\n \"categoryid\": 177,\n \"image\": \"bancolombia.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 89,\n \"name\": \"Daviplata\",\n \"internal_name\": \"AppFormDaviplataPse\",\n \"description\": \"Botón de pago daviplata\",\n \"categoryid\": 176,\n \"image\": \"daviplata.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500 \n }\n ]\n }\n}\n\n ```\n\n**📋 Datos de la Respuesta:**\n\n- **`cartId:`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en `/products-payment/create`)\n \n- **`requestId`**: Identificador único de la solicitud de producto\n \n- **`amount`**: Monto que se debe pagar (calculado por el sistema)\n \n- **`additionalData`**: Datos adicionales del producto (solo si aplica)\n \n- **`paymentMethods`**: Array con medios de pago disponibles\n \n\n**💳 Información de Medios de Pago:** \nCada medio de pago contiene:\n\n- **`id`**: ID del medio de pago (se usa en `/products-payment/create`)\n \n- **`name`**: Nombre del medio de pago\n \n- **`categoryid`**: ID de la categoría del medio de pago (se usa en `/products-payment/create`)\n \n- **`template_data_request`**: Template para el campo `data` en `/products-payment/create`\n \n- **`cost`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\n \n\n**🔄 Siguiente Paso - Crear Pago:** \nCon la respuesta de este endpoint, puedes proceder a crear el pago usando `/products-payment/create` enviando:\n\n- `cartId`: Del campo `cartId` de la respuesta\n \n- `id`: Del campo `id` del medio de pago seleccionado\n \n- `categoryid`: Del campo `categoryid` del medio de pago seleccionado\n \n- `data`: Basado en `template_data_request` del medio de pago seleccionado\n \n\n**Respuesta de error (403):**\n\n``` json\n{\n \"statusCode\": 403,\n \"message\": \"Acceso denegado - Categoría no permitida\",\n \"date\": 1704441600000,\n \"payload\": {\n \"error\": \"CATEGORY_NOT_ALLOWED\"\n }\n}\n\n ```\n\n**Respuesta de error (401):**\n\n``` json\n{\n \"statusCode\": 401,\n \"message\": \"Error de autenticación\",\n \"date\": 1754924521985,\n \"payload\": {\n \"error\": \"AUTHENTICATION_ERROR\",\n \"details\": \"Authentication failed\",\n \"originalStatus\": 401\n }\n}\n\n ```",
115
+ "description": "Crea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\n\n**📋 Relación con Endpoint de Productos:** \nLos datos para crear esta solicitud provienen principalmente del endpoint `products/by-customer-and-category`:\n\n- **`category_id`**: ID de la categoría (del endpoint de productos)\n \n- **`id`**: ID del producto seleccionado (del campo `id` del producto)\n \n- **`query_type`**: Tipo de consulta (del campo `query_type` del producto)\n \n- **`sell_type`**: Tipo de venta (del campo `sell_type` del producto)\n \n- **`data`**: Estructura basada en `template_data_request` del producto\n \n- **`agreement`**: Acuerdo del producto (del campo `agreement` del producto)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\n \n- `id` (number, requerido): ID del producto seleccionado (obtenido del campo `id` del producto)\n \n- `amount` (number|null, opcional): Monto del producto (ver reglas de uso)\n \n- `data` (object, requerido): Datos específicos del producto basados en `template_data_request` del producto\n \n- `query_type` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\n \n- `sell_type` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\n \n- `agreement` (string, opcional): Aceptación de términos (puede venir del campo `agreement` del producto)\n \n- `customer_id` (string, requerido si omite `cart_id`; opcional si envía `cart_id`): Identificador único del usuario o dispositivo; persiste en `core.shopping_carts.user_temp_id` al crear carrito.\n \n- `subcustomer_id` (string, opcional): Identificador del subcliente o cuenta hija asociada al `customer_id`\n \n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\n \n\n**📋 Reglas para el campo customer_id:**\n\n**🔑 Con Usuario Registrado:**\n\n- **Enviar**: ID único del usuario en tu sistema\n \n- **Ejemplo**: \"customer_id\": \"user_12345\" o \"customer_id\": \"cliente_abc123\"\n \n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\n \n\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\n\n- **Enviar**: Identificador único del dispositivo o sesión\n \n- **Ejemplos**:\n \n - **Device ID**: \"customer_id\": \"device_abc123def456\"\n \n - **Session ID**: \"customer_id\": \"session_xyz789\"\n \n - **Browser Fingerprint**: \"customer_id\": \"browser_fp_123\"\n \n - **Local Storage ID**: \"customer_id\": \"local_456\"\n \n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\n \n\n**💡 Mejores Prácticas:**\n\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\n \n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\n \n- **Privacidad**: No incluir información personal identificable en el ID\n \n- **Longitud**: Recomendado entre 10-50 caracteres\n \n\n**🔄 Flujo de Implementación:**\n\n**1\\. Usuario Registrado:**\n\n``` typescript\nconst customerId = user.id || user.customerId || user.uuid;\n// customerId = \"user_12345\"\n\n ```\n\n**2\\. Usuario Anónimo:**\n\n``` typescript\n// Generar ID único del dispositivo\nconst deviceId = generateDeviceId(); // \"device_abc123def456\"\nconst sessionId = generateSessionId(); // \"session_xyz789\"\nconst customerId = deviceId || sessionId;\n\n ```\n\n**3\\. Envío en Request:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"device_abc123def456\",\n \"subcustomer_id\": \"subcust_01\"\n}\n\n ```\n\n**📊 Beneficios del Tracking:**\n\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\n \n- **Seguimiento**: Transacciones por dispositivo/sesión\n \n- **Fraude**: Detección de patrones sospechosos\n \n- **UX**: Mejora de la experiencia del usuario\n \n\n**💰 Reglas para el campo** **`amount`****:**\n\n- **`amount: null`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\n \n- **`amount: valor`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\n \n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\n \n\n**🔄 Flujo de Creación de Solicitud:**\n\n**1\\. Consultar productos:**\n\n``` json\nGET /products/by-customer-and-category\n{\n \"categoryId\": 120,\n \"limit\": 10,\n \"offset\": 0,\n \"searchText\": \"ACACIAS\"\n}\n\n ```\n\n**2\\. Respuesta del endpoint de productos:**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Productos obtenidos exitosamente\",\n \"date\": 1754945365966,\n \"payload\": {\n \"template_data_request\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"products\": [\n {\n \"id\": 1952,\n \"name\": \"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\",\n \"amount\": null,\n \"meta\": {\n \"fnArgs\": 20363,\n \"categoryId\": 44,\n \"form\": [\n {\n \"active\": true,\n \"type\": \"text\",\n \"label\": \"Numero De Casa\",\n \"placeholder\": \"Ingrese su Numero de Casa\",\n \"legend\": \"Numero de Casa\",\n \"value\": \"reference\",\n \"required\": true\n }\n ]\n },\n \"description\": null,\n \"image_url\": \"bill.png\",\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\"\n }\n ]\n }\n}\n\n ```\n\n**3\\. Crear solicitud usando datos del producto:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": { \n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_123\"\n}\n\n ```\n\n**Respuesta exitosa (201):**\n\n``` json\n{\n \"statusCode\": 201,\n \"message\": \"Solicitud creada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"25894df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"amount\": 9999,\n \"paymentMethods\": [\n {\n \"id\": 304135,\n \"name\": \"Transfiya\",\n \"internal_name\": \"AppFormTransfiya\",\n \"description\": \"Transfiya\",\n \"categoryid\": 176,\n \"image\": \"transfiya.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 56,\n \"name\": \"PSE\",\n \"internal_name\": \"AppFormPse\",\n \"description\": \"PSE\",\n \"categoryid\": 61,\n \"image\": \"pse.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 88,\n \"name\": \"Nequi\",\n \"internal_name\": \"AppFormNequiCargar\",\n \"description\": \"Botón de pago nequi\",\n \"categoryid\": 176,\n \"image\": \"nequi-responsive.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 53,\n \"name\": \"Bancolombia\",\n \"internal_name\": \"AppFormDefault\",\n \"description\": \"Botón de pago Bancolombia\",\n \"categoryid\": 177,\n \"image\": \"bancolombia.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 89,\n \"name\": \"Daviplata\",\n \"internal_name\": \"AppFormDaviplataPse\",\n \"description\": \"Botón de pago daviplata\",\n \"categoryid\": 176,\n \"image\": \"daviplata.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500 \n }\n ]\n }\n}\n\n ```\n\n**📋 Datos de la Respuesta:**\n\n- **`cartId:`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en `/products-payment/create`)\n \n- **`requestId`**: Identificador único de la solicitud de producto\n \n- **`amount`**: Monto que se debe pagar (calculado por el sistema)\n \n- **`additionalData`**: Datos adicionales del producto (solo si aplica)\n \n- **`paymentMethods`**: Array con medios de pago disponibles\n \n\n**💳 Información de Medios de Pago:** \nCada medio de pago contiene:\n\n- **`id`**: ID del medio de pago (se usa en `/products-payment/create`)\n \n- **`name`**: Nombre del medio de pago\n \n- **`categoryid`**: ID de la categoría del medio de pago (se usa en `/products-payment/create`)\n \n- **`template_data_request`**: Template para el campo `data` en `/products-payment/create`\n \n- **`cost`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\n \n\n**🔄 Siguiente Paso - Crear Pago:** \nCon la respuesta de este endpoint, puedes proceder a crear el pago usando `/products-payment/create` enviando:\n\n- `cartId`: Del campo `cartId` de la respuesta\n \n- `id`: Del campo `id` del medio de pago seleccionado\n \n- `categoryid`: Del campo `categoryid` del medio de pago seleccionado\n \n- `data`: Basado en `template_data_request` del medio de pago seleccionado\n \n\n**Respuesta de error (403):**\n\n``` json\n{\n \"statusCode\": 403,\n \"message\": \"Acceso denegado - Categoría no permitida\",\n \"date\": 1704441600000,\n \"payload\": {\n \"error\": \"CATEGORY_NOT_ALLOWED\"\n }\n}\n\n ```\n\n**Respuesta de error (401):**\n\n``` json\n{\n \"statusCode\": 401,\n \"message\": \"Error de autenticación\",\n \"date\": 1754924521985,\n \"payload\": {\n \"error\": \"AUTHENTICATION_ERROR\",\n \"details\": \"Authentication failed\",\n \"originalStatus\": 401\n }\n}\n\n ```",
116
116
  "mimeType": "text/markdown",
117
- "content": "# 5. Crear Solicitud de Producto\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product-requests/create`\n\n## Description\n\nCrea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\n\n**📋 Relación con Endpoint de Productos:** \nLos datos para crear esta solicitud provienen principalmente del endpoint `products/by-customer-and-category`:\n\n- **`category_id`**: ID de la categoría (del endpoint de productos)\n \n- **`id`**: ID del producto seleccionado (del campo `id` del producto)\n \n- **`query_type`**: Tipo de consulta (del campo `query_type` del producto)\n \n- **`sell_type`**: Tipo de venta (del campo `sell_type` del producto)\n \n- **`data`**: Estructura basada en `template_data_request` del producto\n \n- **`agreement`**: Acuerdo del producto (del campo `agreement` del producto)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\n \n- `id` (number, requerido): ID del producto seleccionado (obtenido del campo `id` del producto)\n \n- `amount` (number|null, opcional): Monto del producto (ver reglas de uso)\n \n- `data` (object, requerido): Datos específicos del producto basados en `template_data_request` del producto\n \n- `query_type` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\n \n- `sell_type` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\n \n- `agreement` (string, opcional): Aceptación de términos (puede venir del campo `agreement` del producto)\n \n- `customer_id` (string, opcional): Identificador único del usuario o dispositivo\n \n- `subcustomer_id` (string, opcional): Identificador del subcliente o cuenta hija asociada al `customer_id`\n \n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\n \n\n**📋 Reglas para el campo customer_id:**\n\n**🔑 Con Usuario Registrado:**\n\n- **Enviar**: ID único del usuario en tu sistema\n \n- **Ejemplo**: \"customer_id\": \"user_12345\" o \"customer_id\": \"cliente_abc123\"\n \n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\n \n\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\n\n- **Enviar**: Identificador único del dispositivo o sesión\n \n- **Ejemplos**:\n \n - **Device ID**: \"customer_id\": \"device_abc123def456\"\n \n - **Session ID**: \"customer_id\": \"session_xyz789\"\n \n - **Browser Fingerprint**: \"customer_id\": \"browser_fp_123\"\n \n - **Local Storage ID**: \"customer_id\": \"local_456\"\n \n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\n \n\n**💡 Mejores Prácticas:**\n\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\n \n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\n \n- **Privacidad**: No incluir información personal identificable en el ID\n \n- **Longitud**: Recomendado entre 10-50 caracteres\n \n\n**🔄 Flujo de Implementación:**\n\n**1\\. Usuario Registrado:**\n\n``` typescript\nconst customerId = user.id || user.customerId || user.uuid;\n// customerId = \"user_12345\"\n\n ```\n\n**2\\. Usuario Anónimo:**\n\n``` typescript\n// Generar ID único del dispositivo\nconst deviceId = generateDeviceId(); // \"device_abc123def456\"\nconst sessionId = generateSessionId(); // \"session_xyz789\"\nconst customerId = deviceId || sessionId;\n\n ```\n\n**3\\. Envío en Request:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"device_abc123def456\",\n \"subcustomer_id\": \"subcust_01\"\n}\n\n ```\n\n**📊 Beneficios del Tracking:**\n\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\n \n- **Seguimiento**: Transacciones por dispositivo/sesión\n \n- **Fraude**: Detección de patrones sospechosos\n \n- **UX**: Mejora de la experiencia del usuario\n \n\n**💰 Reglas para el campo** **`amount`****:**\n\n- **`amount: null`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\n \n- **`amount: valor`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\n \n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\n \n\n**🔄 Flujo de Creación de Solicitud:**\n\n**1\\. Consultar productos:**\n\n``` json\nGET /products/by-customer-and-category\n{\n \"categoryId\": 120,\n \"limit\": 10,\n \"offset\": 0,\n \"searchText\": \"ACACIAS\"\n}\n\n ```\n\n**2\\. Respuesta del endpoint de productos:**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Productos obtenidos exitosamente\",\n \"date\": 1754945365966,\n \"payload\": {\n \"template_data_request\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"products\": [\n {\n \"id\": 1952,\n \"name\": \"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\",\n \"amount\": null,\n \"meta\": {\n \"fnArgs\": 20363,\n \"categoryId\": 44,\n \"form\": [\n {\n \"active\": true,\n \"type\": \"text\",\n \"label\": \"Numero De Casa\",\n \"placeholder\": \"Ingrese su Numero de Casa\",\n \"legend\": \"Numero de Casa\",\n \"value\": \"reference\",\n \"required\": true\n }\n ]\n },\n \"description\": null,\n \"image_url\": \"bill.png\",\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\"\n }\n ]\n }\n}\n\n ```\n\n**3\\. Crear solicitud usando datos del producto:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": { \n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\" \n}\n\n ```\n\n**Respuesta exitosa (201):**\n\n``` json\n{\n \"statusCode\": 201,\n \"message\": \"Solicitud creada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"25894df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"amount\": 9999,\n \"paymentMethods\": [\n {\n \"id\": 304135,\n \"name\": \"Transfiya\",\n \"internal_name\": \"AppFormTransfiya\",\n \"description\": \"Transfiya\",\n \"categoryid\": 176,\n \"image\": \"transfiya.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 56,\n \"name\": \"PSE\",\n \"internal_name\": \"AppFormPse\",\n \"description\": \"PSE\",\n \"categoryid\": 61,\n \"image\": \"pse.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 88,\n \"name\": \"Nequi\",\n \"internal_name\": \"AppFormNequiCargar\",\n \"description\": \"Botón de pago nequi\",\n \"categoryid\": 176,\n \"image\": \"nequi-responsive.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 53,\n \"name\": \"Bancolombia\",\n \"internal_name\": \"AppFormDefault\",\n \"description\": \"Botón de pago Bancolombia\",\n \"categoryid\": 177,\n \"image\": \"bancolombia.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 89,\n \"name\": \"Daviplata\",\n \"internal_name\": \"AppFormDaviplataPse\",\n \"description\": \"Botón de pago daviplata\",\n \"categoryid\": 176,\n \"image\": \"daviplata.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500 \n }\n ]\n }\n}\n\n ```\n\n**📋 Datos de la Respuesta:**\n\n- **`cartId:`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en `/products-payment/create`)\n \n- **`requestId`**: Identificador único de la solicitud de producto\n \n- **`amount`**: Monto que se debe pagar (calculado por el sistema)\n \n- **`additionalData`**: Datos adicionales del producto (solo si aplica)\n \n- **`paymentMethods`**: Array con medios de pago disponibles\n \n\n**💳 Información de Medios de Pago:** \nCada medio de pago contiene:\n\n- **`id`**: ID del medio de pago (se usa en `/products-payment/create`)\n \n- **`name`**: Nombre del medio de pago\n \n- **`categoryid`**: ID de la categoría del medio de pago (se usa en `/products-payment/create`)\n \n- **`template_data_request`**: Template para el campo `data` en `/products-payment/create`\n \n- **`cost`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\n \n\n**🔄 Siguiente Paso - Crear Pago:** \nCon la respuesta de este endpoint, puedes proceder a crear el pago usando `/products-payment/create` enviando:\n\n- `cartId`: Del campo `cartId` de la respuesta\n \n- `id`: Del campo `id` del medio de pago seleccionado\n \n- `categoryid`: Del campo `categoryid` del medio de pago seleccionado\n \n- `data`: Basado en `template_data_request` del medio de pago seleccionado\n \n\n**Respuesta de error (403):**\n\n``` json\n{\n \"statusCode\": 403,\n \"message\": \"Acceso denegado - Categoría no permitida\",\n \"date\": 1704441600000,\n \"payload\": {\n \"error\": \"CATEGORY_NOT_ALLOWED\"\n }\n}\n\n ```\n\n**Respuesta de error (401):**\n\n``` json\n{\n \"statusCode\": 401,\n \"message\": \"Error de autenticación\",\n \"date\": 1754924521985,\n \"payload\": {\n \"error\": \"AUTHENTICATION_ERROR\",\n \"details\": \"Authentication failed\",\n \"originalStatus\": 401\n }\n}\n\n ```\n\n## Headers\n\n- **Authorization**: Bearer token\n- **x-secret-id**: secretId\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"7700000000001\",\n \"customer_id\": \"customer_124\"\n}\n```\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
117
+ "content": "# 5. Crear Solicitud de Producto\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product-requests/create`\n\n## Description\n\nCrea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\n\n**📋 Relación con Endpoint de Productos:** \nLos datos para crear esta solicitud provienen principalmente del endpoint `products/by-customer-and-category`:\n\n- **`category_id`**: ID de la categoría (del endpoint de productos)\n \n- **`id`**: ID del producto seleccionado (del campo `id` del producto)\n \n- **`query_type`**: Tipo de consulta (del campo `query_type` del producto)\n \n- **`sell_type`**: Tipo de venta (del campo `sell_type` del producto)\n \n- **`data`**: Estructura basada en `template_data_request` del producto\n \n- **`agreement`**: Acuerdo del producto (del campo `agreement` del producto)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**Body (JSON):**\n\n- `category_id` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\n \n- `id` (number, requerido): ID del producto seleccionado (obtenido del campo `id` del producto)\n \n- `amount` (number|null, opcional): Monto del producto (ver reglas de uso)\n \n- `data` (object, requerido): Datos específicos del producto basados en `template_data_request` del producto\n \n- `query_type` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\n \n- `sell_type` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\n \n- `agreement` (string, opcional): Aceptación de términos (puede venir del campo `agreement` del producto)\n \n- `customer_id` (string, requerido si omite `cart_id`; opcional si envía `cart_id`): Identificador único del usuario o dispositivo; persiste en `core.shopping_carts.user_temp_id` al crear carrito.\n \n- `subcustomer_id` (string, opcional): Identificador del subcliente o cuenta hija asociada al `customer_id`\n \n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\n \n\n**📋 Reglas para el campo customer_id:**\n\n**🔑 Con Usuario Registrado:**\n\n- **Enviar**: ID único del usuario en tu sistema\n \n- **Ejemplo**: \"customer_id\": \"user_12345\" o \"customer_id\": \"cliente_abc123\"\n \n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\n \n\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\n\n- **Enviar**: Identificador único del dispositivo o sesión\n \n- **Ejemplos**:\n \n - **Device ID**: \"customer_id\": \"device_abc123def456\"\n \n - **Session ID**: \"customer_id\": \"session_xyz789\"\n \n - **Browser Fingerprint**: \"customer_id\": \"browser_fp_123\"\n \n - **Local Storage ID**: \"customer_id\": \"local_456\"\n \n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\n \n\n**💡 Mejores Prácticas:**\n\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\n \n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\n \n- **Privacidad**: No incluir información personal identificable en el ID\n \n- **Longitud**: Recomendado entre 10-50 caracteres\n \n\n**🔄 Flujo de Implementación:**\n\n**1\\. Usuario Registrado:**\n\n``` typescript\nconst customerId = user.id || user.customerId || user.uuid;\n// customerId = \"user_12345\"\n\n ```\n\n**2\\. Usuario Anónimo:**\n\n``` typescript\n// Generar ID único del dispositivo\nconst deviceId = generateDeviceId(); // \"device_abc123def456\"\nconst sessionId = generateSessionId(); // \"session_xyz789\"\nconst customerId = deviceId || sessionId;\n\n ```\n\n**3\\. Envío en Request:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"device_abc123def456\",\n \"subcustomer_id\": \"subcust_01\"\n}\n\n ```\n\n**📊 Beneficios del Tracking:**\n\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\n \n- **Seguimiento**: Transacciones por dispositivo/sesión\n \n- **Fraude**: Detección de patrones sospechosos\n \n- **UX**: Mejora de la experiencia del usuario\n \n\n**💰 Reglas para el campo** **`amount`****:**\n\n- **`amount: null`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\n \n- **`amount: valor`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\n \n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\n \n\n**🔄 Flujo de Creación de Solicitud:**\n\n**1\\. Consultar productos:**\n\n``` json\nGET /products/by-customer-and-category\n{\n \"categoryId\": 120,\n \"limit\": 10,\n \"offset\": 0,\n \"searchText\": \"ACACIAS\"\n}\n\n ```\n\n**2\\. Respuesta del endpoint de productos:**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Productos obtenidos exitosamente\",\n \"date\": 1754945365966,\n \"payload\": {\n \"template_data_request\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"products\": [\n {\n \"id\": 1952,\n \"name\": \"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\",\n \"amount\": null,\n \"meta\": {\n \"fnArgs\": 20363,\n \"categoryId\": 44,\n \"form\": [\n {\n \"active\": true,\n \"type\": \"text\",\n \"label\": \"Numero De Casa\",\n \"placeholder\": \"Ingrese su Numero de Casa\",\n \"legend\": \"Numero de Casa\",\n \"value\": \"reference\",\n \"required\": true\n }\n ]\n },\n \"description\": null,\n \"image_url\": \"bill.png\",\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\"\n }\n ]\n }\n}\n\n ```\n\n**3\\. Crear solicitud usando datos del producto:**\n\n``` json\n{\n \"category_id\": 120,\n \"id\": 1952,\n \"amount\": null,\n \"data\": { \n \"cellphone\": \"3208385715\",\n \"reference\": \"123456\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_123\"\n}\n\n ```\n\n**Respuesta exitosa (201):**\n\n``` json\n{\n \"statusCode\": 201,\n \"message\": \"Solicitud creada exitosamente\",\n \"date\": 1754945173974,\n \"payload\": {\n \"cartId\": \"25894df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\",\n \"amount\": 9999,\n \"paymentMethods\": [\n {\n \"id\": 304135,\n \"name\": \"Transfiya\",\n \"internal_name\": \"AppFormTransfiya\",\n \"description\": \"Transfiya\",\n \"categoryid\": 176,\n \"image\": \"transfiya.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 56,\n \"name\": \"PSE\",\n \"internal_name\": \"AppFormPse\",\n \"description\": \"PSE\",\n \"categoryid\": 61,\n \"image\": \"pse.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 88,\n \"name\": \"Nequi\",\n \"internal_name\": \"AppFormNequiCargar\",\n \"description\": \"Botón de pago nequi\",\n \"categoryid\": 176,\n \"image\": \"nequi-responsive.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500\n },\n {\n \"id\": 53,\n \"name\": \"Bancolombia\",\n \"internal_name\": \"AppFormDefault\",\n \"description\": \"Botón de pago Bancolombia\",\n \"categoryid\": 177,\n \"image\": \"bancolombia.png\",\n \"template_data_request\": {\n \"name\": \"Juan Perez\",\n \"email\": \"juanperez@gmail.com\",\n \"bankId\": \"1007\",\n \"cellphone\": \"3208888888\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1032222222\"\n },\n \"cost\": 500\n },\n {\n \"id\": 89,\n \"name\": \"Daviplata\",\n \"internal_name\": \"AppFormDaviplataPse\",\n \"description\": \"Botón de pago daviplata\",\n \"categoryid\": 176,\n \"image\": \"daviplata.png\",\n \"template_data_request\": {\n \"cellphone\": \"3208888888\"\n },\n \"cost\": 500 \n }\n ]\n }\n}\n\n ```\n\n**📋 Datos de la Respuesta:**\n\n- **`cartId:`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en `/products-payment/create`)\n \n- **`requestId`**: Identificador único de la solicitud de producto\n \n- **`amount`**: Monto que se debe pagar (calculado por el sistema)\n \n- **`additionalData`**: Datos adicionales del producto (solo si aplica)\n \n- **`paymentMethods`**: Array con medios de pago disponibles\n \n\n**💳 Información de Medios de Pago:** \nCada medio de pago contiene:\n\n- **`id`**: ID del medio de pago (se usa en `/products-payment/create`)\n \n- **`name`**: Nombre del medio de pago\n \n- **`categoryid`**: ID de la categoría del medio de pago (se usa en `/products-payment/create`)\n \n- **`template_data_request`**: Template para el campo `data` en `/products-payment/create`\n \n- **`cost`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\n \n\n**🔄 Siguiente Paso - Crear Pago:** \nCon la respuesta de este endpoint, puedes proceder a crear el pago usando `/products-payment/create` enviando:\n\n- `cartId`: Del campo `cartId` de la respuesta\n \n- `id`: Del campo `id` del medio de pago seleccionado\n \n- `categoryid`: Del campo `categoryid` del medio de pago seleccionado\n \n- `data`: Basado en `template_data_request` del medio de pago seleccionado\n \n\n**Respuesta de error (403):**\n\n``` json\n{\n \"statusCode\": 403,\n \"message\": \"Acceso denegado - Categoría no permitida\",\n \"date\": 1704441600000,\n \"payload\": {\n \"error\": \"CATEGORY_NOT_ALLOWED\"\n }\n}\n\n ```\n\n**Respuesta de error (401):**\n\n``` json\n{\n \"statusCode\": 401,\n \"message\": \"Error de autenticación\",\n \"date\": 1754924521985,\n \"payload\": {\n \"error\": \"AUTHENTICATION_ERROR\",\n \"details\": \"Authentication failed\",\n \"originalStatus\": 401\n }\n}\n\n ```\n\n## Headers\n\n- **Authorization**: Bearer token\n- **x-secret-id**: secretId\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"category_id\": 120,\n \"id\": 52368,\n \"amount\": null,\n \"data\": {\n \"cellphone\": \"3208888888\",\n \"reference\": \"123456789\"\n },\n \"query_type\": \"BILLData\",\n \"sell_type\": \"Bill\",\n \"agreement\": \"7700000000001\",\n \"customer_id\": \"customer_124\"\n}\n```\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
118
118
  },
119
119
  {
120
120
  "uri": "postman://collection/products-payment-api/endpoint/post/product-requests/status",
121
121
  "name": "POST /product-requests/status - Endpoint Documentation",
122
- "description": "Consulta el estado actual de una solicitud de producto individual por su `requestId` o de un carrito completo por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**📊 Estados Posibles:**\n\n**🔄 Estados de Proceso:**\n\n- **`INITIATED`**: Solicitud creada y en proceso de validación\n \n- **`QUERIED`**: Solicitud consultada exitosamente en API externa\n \n- **`PENDING`**: Solicitud lista para procesar el pago\n \n- **`WAITING_PAYMENT`**: Esperando confirmación de pago del proveedor\n \n\n**❌ Estados de Error:**\n\n- **`INVALID`**: Datos inválidos en la validación del producto\n \n- **`DISCARDED`**: Usuario decidió no continuar con el pago del producto\n \n- **`EXPIRED`**: La solicitud de producto ha expirado\n \n\n**✅ Estados Finales:**\n\n- **`SOLD`**: Pago exitoso y producto vendido\n \n- **`REFUNDED`**: Pago exitoso pero venta falló\n \n- **`CANCELLED`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Consultar estado usando requestId:**\n\n``` json\nPOST /product-requests/status\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta del estado (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307880382,\n \"payload\": {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": 9999,\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\"\n }\n}\n\n ```\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Consultar estado usando cartId:**\n\n``` json\nPOST /product-requests/status\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta del estado (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307754145,\n \"payload\": {\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"COMPLETED\",\n \"totalAmount\": \"9999.00\",\n \"itemsCount\": 1,\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"products\": [\n {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": \"9999.00\",\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Frontend**: Mostrar estado actual al usuario\n \n- **Backend**: Seguimiento de transacciones\n \n- **Webhooks**: Complementar notificaciones asíncronas\n \n- **Auditoría**: Verificar estado de solicitudes\n \n- **Carrito**: Consultar estado de múltiples productos a la vez\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 404,\n \"message\": \"Solicitud de producto no encontrada\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"PRODUCT_REQUEST_NOT_FOUND\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas.",
122
+ "description": "Consulta el estado actual de una solicitud de producto individual por su `requestId` o de un carrito completo por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**📊 Estados Posibles:**\n\n**🔄 Estados de Proceso:**\n\n- **`INITIATED`**: Solicitud creada y en proceso de validación\n \n- **`QUERIED`**: Solicitud consultada exitosamente en API externa\n \n- **`PENDING`**: Solicitud lista para procesar el pago\n \n- **`WAITING_PAYMENT`**: Esperando confirmación de pago del proveedor\n \n\n**❌ Estados de Error:**\n\n- **`INVALID`**: Datos inválidos en la validación del producto\n \n- **`DISCARDED`**: Usuario decidió no continuar con el pago del producto\n \n- **`EXPIRED`**: La solicitud de producto ha expirado\n \n\n**✅ Estados Finales:**\n\n- **`SOLD`**: Pago exitoso y producto vendido\n \n- **`REFUNDED`**: Pago exitoso pero venta falló\n \n- **`CANCELLED`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Consultar estado usando requestId:**\n\n``` json\nPOST /product-requests/status\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta del estado (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307880382,\n \"payload\": {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": 9999,\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"invoiceDueDate\": \"2026-05-31\"\n }\n}\n\n ```\n\n> ⚠️ `invoiceDueDate` es `string | null` — tiene valor solo cuando el proveedor retorna fecha de vencimiento de la factura. En productos que no son facturas, siempre es `null`.\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Consultar estado usando cartId:**\n\n``` json\nPOST /product-requests/status\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta del estado (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307754145,\n \"payload\": {\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"COMPLETED\",\n \"totalAmount\": \"9999.00\",\n \"itemsCount\": 1,\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"products\": [\n {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": \"9999.00\",\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"invoiceDueDate\": \"2026-05-31\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Frontend**: Mostrar estado actual al usuario\n \n- **Backend**: Seguimiento de transacciones\n \n- **Webhooks**: Complementar notificaciones asíncronas\n \n- **Auditoría**: Verificar estado de solicitudes\n \n- **Carrito**: Consultar estado de múltiples productos a la vez\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 404,\n \"message\": \"Solicitud de producto no encontrada\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"PRODUCT_REQUEST_NOT_FOUND\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas.",
123
123
  "mimeType": "text/markdown",
124
- "content": "# 6. Consultar Estado de Solicitud de Producto\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product-requests/status`\n\n## Description\n\nConsulta el estado actual de una solicitud de producto individual por su `requestId` o de un carrito completo por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**📊 Estados Posibles:**\n\n**🔄 Estados de Proceso:**\n\n- **`INITIATED`**: Solicitud creada y en proceso de validación\n \n- **`QUERIED`**: Solicitud consultada exitosamente en API externa\n \n- **`PENDING`**: Solicitud lista para procesar el pago\n \n- **`WAITING_PAYMENT`**: Esperando confirmación de pago del proveedor\n \n\n**❌ Estados de Error:**\n\n- **`INVALID`**: Datos inválidos en la validación del producto\n \n- **`DISCARDED`**: Usuario decidió no continuar con el pago del producto\n \n- **`EXPIRED`**: La solicitud de producto ha expirado\n \n\n**✅ Estados Finales:**\n\n- **`SOLD`**: Pago exitoso y producto vendido\n \n- **`REFUNDED`**: Pago exitoso pero venta falló\n \n- **`CANCELLED`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Consultar estado usando requestId:**\n\n``` json\nPOST /product-requests/status\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta del estado (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307880382,\n \"payload\": {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": 9999,\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\"\n }\n}\n\n ```\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Consultar estado usando cartId:**\n\n``` json\nPOST /product-requests/status\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta del estado (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307754145,\n \"payload\": {\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"COMPLETED\",\n \"totalAmount\": \"9999.00\",\n \"itemsCount\": 1,\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"products\": [\n {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": \"9999.00\",\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Frontend**: Mostrar estado actual al usuario\n \n- **Backend**: Seguimiento de transacciones\n \n- **Webhooks**: Complementar notificaciones asíncronas\n \n- **Auditoría**: Verificar estado de solicitudes\n \n- **Carrito**: Consultar estado de múltiples productos a la vez\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 404,\n \"message\": \"Solicitud de producto no encontrada\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"PRODUCT_REQUEST_NOT_FOUND\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n## Headers\n\n- **Authorization**: Bearer token\n- **x-secret-id**: secretId\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"requestId\": \"lastRequestId\"\n}\n```\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
124
+ "content": "# 6. Consultar Estado de Solicitud de Producto\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product-requests/status`\n\n## Description\n\nConsulta el estado actual de una solicitud de producto individual por su `requestId` o de un carrito completo por su `cartId`.\n\n**🔒 Seguridad:** \nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\n\n**📋 Parámetros:**\n\nDebes proporcionar al menos uno de los siguientes parámetros:\n\n- **`requestId`** (string, opcional): ID único de la solicitud de producto individual (UUID)\n \n- **`cartId`** (string, opcional): ID único del carrito de compras (UUID)\n \n\n**Headers requeridos:**\n\n- `Authorization: Bearer {token}`\n \n- `x-secret-id: {secretId}`\n \n\n**📊 Estados Posibles:**\n\n**🔄 Estados de Proceso:**\n\n- **`INITIATED`**: Solicitud creada y en proceso de validación\n \n- **`QUERIED`**: Solicitud consultada exitosamente en API externa\n \n- **`PENDING`**: Solicitud lista para procesar el pago\n \n- **`WAITING_PAYMENT`**: Esperando confirmación de pago del proveedor\n \n\n**❌ Estados de Error:**\n\n- **`INVALID`**: Datos inválidos en la validación del producto\n \n- **`DISCARDED`**: Usuario decidió no continuar con el pago del producto\n \n- **`EXPIRED`**: La solicitud de producto ha expirado\n \n\n**✅ Estados Finales:**\n\n- **`SOLD`**: Pago exitoso y producto vendido\n \n- **`REFUNDED`**: Pago exitoso pero venta falló\n \n- **`CANCELLED`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\n \n\n**🔄 Flujo de Uso - Producto Individual:**\n\n**1\\. Consultar estado usando requestId:**\n\n``` json\nPOST /product-requests/status\n{\n \"requestId\": \"15974df4-a599-4d28-a2f2-bb5b8faa678b\"\n}\n\n ```\n\n**2\\. Respuesta del estado (producto individual):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307880382,\n \"payload\": {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": 9999,\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"invoiceDueDate\": \"2026-05-31\"\n }\n}\n\n ```\n\n> ⚠️ `invoiceDueDate` es `string | null` — tiene valor solo cuando el proveedor retorna fecha de vencimiento de la factura. En productos que no son facturas, siempre es `null`.\n\n**🛒 Flujo de Uso - Carrito Completo:**\n\n**1\\. Consultar estado usando cartId:**\n\n``` json\nPOST /product-requests/status\n{\n \"cartId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n}\n\n ```\n\n**2\\. Respuesta del estado (carrito completo):**\n\n``` json\n{\n \"statusCode\": 200,\n \"message\": \"Estado consultado exitosamente\",\n \"date\": 1770307754145,\n \"payload\": {\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"COMPLETED\",\n \"totalAmount\": \"9999.00\",\n \"itemsCount\": 1,\n \"urlSummary\": \"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\",\n \"products\": [\n {\n \"id\": \"019a3c15-9d0c-734b-8346-617d6ba466d8\",\n \"cartId\": \"019a3c15-9cfc-7c3a-82ff-d87477378092\",\n \"status\": \"SOLD\",\n \"description\": \"Pago exitoso y producto vendido\",\n \"details\": {\n \"id\": 1952,\n \"categoryId\": 120,\n \"data\": {\n \"cellphone\": \"3208385716\",\n \"reference\": \"12345678\"\n },\n \"amount\": \"9999.00\",\n \"sellType\": \"Bill\",\n \"queryType\": \"BILLData\",\n \"agreement\": \"2010910\",\n \"customer_id\": \"customer_124\"\n },\n \"urlInvoice\": \"https://prep.refacil.co/#/factura/215765/10549\",\n \"invoiceDueDate\": \"2026-05-31\"\n }\n ]\n }\n}\n\n ```\n\n**🔐 Validación de Seguridad:**\n\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu `secretId`\n \n- **ID válido**: Debe ser un UUID válido\n \n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\n \n\n**📱 Casos de Uso:**\n\n- **Frontend**: Mostrar estado actual al usuario\n \n- **Backend**: Seguimiento de transacciones\n \n- **Webhooks**: Complementar notificaciones asíncronas\n \n- **Auditoría**: Verificar estado de solicitudes\n \n- **Carrito**: Consultar estado de múltiples productos a la vez\n \n\n**Respuesta de error (400 - Parámetros faltantes):**\n\n``` json\n{\n \"statusCode\": 400,\n \"message\": \"Debe proporcionar requestId o cartId\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"MISSING_REQUIRED_PARAMETER\"\n }\n}\n\n ```\n\n**Respuesta de error (404):**\n\n``` json\n{\n \"statusCode\": 404,\n \"message\": \"Solicitud de producto no encontrada\",\n \"date\": 1754945173974,\n \"payload\": {\n \"error\": \"PRODUCT_REQUEST_NOT_FOUND\"\n }\n}\n\n ```\n\n**💡 Tip para Testing:** \nUsa la variable `lastCartId` o `lastRequestId` que se llenan automáticamente al crear solicitudes.\n\n## Headers\n\n- **Authorization**: Bearer token\n- **x-secret-id**: secretId\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"requestId\": \"lastRequestId\"\n}\n```\n\n\n\n> Nota MCP: Los nombres de variables que ves en esta documentación provienen de variables de Postman (por ejemplo `token`, `lastCartId`, `lastRequestId`, etc.). En el MCP estas variables se manejan internamente por la configuración del servidor o por herramientas previas; no uses la sintaxis `{{variable}}` ni envíes esos nombres literalmente en las llamadas de herramientas."
125
125
  },
126
126
  {
127
127
  "uri": "postman://collection/products-payment-api/endpoint/post/product-requests/discard",
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/core/resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,uBAAuB;AACvB,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC;QACE,KAAK,EAAE,2CAA2C;QAClD,MAAM,EAAE,0CAA0C;QAClD,aAAa,EAAE,muJAAmuJ;QAClvJ,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,qnLAAqnL;KACjoL;IACD;QACE,KAAK,EAAE,gEAAgE;QACvE,MAAM,EAAE,kCAAkC;QAC1C,aAAa,EAAE,qDAAqD;QACpE,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,07GAA07G;KACt8G;IACD;QACE,KAAK,EAAE,+DAA+D;QACtE,MAAM,EAAE,iCAAiC;QACzC,aAAa,EAAE,gEAAgE;QAC/E,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,olCAAolC;KAChmC;IACD;QACE,KAAK,EAAE,4DAA4D;QACnE,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,6DAA6D;QAC5E,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,gpMAAgpM;KAC5pM;IACD;QACE,KAAK,EAAE,0EAA0E;QACjF,MAAM,EAAE,4CAA4C;QACpD,aAAa,EAAE,+CAA+C;QAC9D,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,wwwBAAwwwB;KACpxwB;IACD;QACE,KAAK,EAAE,wDAAwD;QAC/D,MAAM,EAAE,0BAA0B;QAClC,aAAa,EAAE,yCAAyC;QACxD,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,o1YAAo1Y;KACh2Y;IACD;QACE,KAAK,EAAE,6DAA6D;QACpE,MAAM,EAAE,+BAA+B;QACvC,aAAa,EAAE,iCAAiC;QAChD,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,imDAAimD;KAC7mD;IACD;QACE,KAAK,EAAE,4DAA4D;QACnE,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,8rBAA8rB;QAC7sB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,miKAAmiK;KAC/iK;IACD;QACE,KAAK,EAAE,uEAAuE;QAC9E,MAAM,EAAE,yCAAyC;QACjD,aAAa,EAAE,uGAAuG;QACtH,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,89JAA89J;KAC1+J;IACD;QACE,KAAK,EAAE,6EAA6E;QACpF,MAAM,EAAE,oDAAoD;QAC5D,aAAa,EAAE,uwGAAuwG;QACtxG,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,mhHAAmhH;KAC/hH;IACD;QACE,KAAK,EAAE,wDAAwD;QAC/D,MAAM,EAAE,gCAAgC;QACxC,aAAa,EAAE,mxBAAmxB;QAClyB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,k4BAAk4B;KAC94B;IACD;QACE,KAAK,EAAE,+DAA+D;QACtE,MAAM,EAAE,sCAAsC;QAC9C,aAAa,EAAE,yDAAyD;QACxE,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,yLAAyL;KACrM;IACD;QACE,KAAK,EAAE,4EAA4E;QACnF,MAAM,EAAE,mDAAmD;QAC3D,aAAa,EAAE,m4BAAm4B;QACl5B,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,+8CAA+8C;KAC39C;IACD;QACE,KAAK,EAAE,2FAA2F;QAClG,MAAM,EAAE,kEAAkE;QAC1E,aAAa,EAAE,89JAA89J;QAC7+J,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,owLAAowL;KAChxL;IACD;QACE,KAAK,EAAE,gFAAgF;QACvF,MAAM,EAAE,uDAAuD;QAC/D,aAAa,EAAE,ysHAAysH;QACxtH,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,snJAAsnJ;KACloJ;IACD;QACE,KAAK,EAAE,iFAAiF;QACxF,MAAM,EAAE,wDAAwD;QAChE,aAAa,EAAE,+hVAA+hV;QAC9iV,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,6/WAA6/W;KACzgX;IACD;QACE,KAAK,EAAE,iFAAiF;QACxF,MAAM,EAAE,wDAAwD;QAChE,aAAa,EAAE,8hLAA8hL;QAC7iL,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,g5LAAg5L;KAC55L;IACD;QACE,KAAK,EAAE,kFAAkF;QACzF,MAAM,EAAE,yDAAyD;QACjE,aAAa,EAAE,23IAA23I;QAC14I,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,ouJAAouJ;KAChvJ;IACD;QACE,KAAK,EAAE,2EAA2E;QAClF,MAAM,EAAE,kDAAkD;QAC1D,aAAa,EAAE,m1CAAm1C;QACl2C,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,k7DAAk7D;KAC97D;IACD;QACE,KAAK,EAAE,iFAAiF;QACxF,MAAM,EAAE,wDAAwD;QAChE,aAAa,EAAE,q/MAAq/M;QACpgN,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,mnPAAmnP;KAC/nP;IACD;QACE,KAAK,EAAE,qFAAqF;QAC5F,MAAM,EAAE,4DAA4D;QACpE,aAAa,EAAE,goIAAgoI;QAC/oI,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,khJAAkhJ;KAC9hJ;IACD;QACE,KAAK,EAAE,gFAAgF;QACvF,MAAM,EAAE,uDAAuD;QAC/D,aAAa,EAAE,+7CAA+7C;QAC98C,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,m0EAAm0E;KAC/0E;IACD;QACE,KAAK,EAAE,2EAA2E;QAClF,MAAM,EAAE,kDAAkD;QAC1D,aAAa,EAAE,qsBAAqsB;QACptB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,2hDAA2hD;KACviD;IACD;QACE,KAAK,EAAE,yEAAyE;QAChF,MAAM,EAAE,gDAAgD;QACxD,aAAa,EAAE,6qBAA6qB;QAC5rB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,o/CAAo/C;KAChgD;IACD;QACE,KAAK,EAAE,gFAAgF;QACvF,MAAM,EAAE,uDAAuD;QAC/D,aAAa,EAAE,wkBAAwkB;QACvlB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,q9CAAq9C;KACj+C;IACD;QACE,KAAK,EAAE,mFAAmF;QAC1F,MAAM,EAAE,0DAA0D;QAClE,aAAa,EAAE,iYAAiY;QAChZ,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,6oCAA6oC;KACzpC;IACD;QACE,KAAK,EAAE,yFAAyF;QAChG,MAAM,EAAE,gEAAgE;QACxE,aAAa,EAAE,8VAA8V;QAC7W,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,iqCAAiqC;KAC7qC;IACD;QACE,KAAK,EAAE,oFAAoF;QAC3F,MAAM,EAAE,2DAA2D;QACnE,aAAa,EAAE,ggBAAggB;QAC/gB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,43CAA43C;KACx4C;IACD;QACE,KAAK,EAAE,2EAA2E;QAClF,MAAM,EAAE,kDAAkD;QAC1D,aAAa,EAAE,kcAAkc;QACjd,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,uxCAAuxC;KACnyC;IACD;QACE,KAAK,EAAE,4EAA4E;QACnF,MAAM,EAAE,yDAAyD;QACjE,aAAa,EAAE,wrJAAwrJ;QACvsJ,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,82JAA82J;KAC13J;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC1C,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/core/resources.ts"],"names":[],"mappings":"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"}
@@ -413,7 +413,7 @@ const product_requests_quoteInputValidator = z.object({
413
413
  // Herramienta: product_requests_quote
414
414
  export const product_requests_quoteTool = {
415
415
  name: 'product_requests_quote',
416
- description: "Endpoints para crear solicitudes de productos\\n\\n Cotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\\n\\n**🎯 Casos de Uso:**\\n\\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\\n- **SOAT**: Verificar precio del seguro antes de comprar\\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\\n\\n**✅ Ventajas:**\\n\\n- No crea carrito ni solicitud de compra\\n- Solo consulta y guarda trazabilidad\\n- Usuario puede ver el monto antes de decidir\\n- Analytics de cotizaciones vs compras\\n\\n**📊 Vinculación Automática:**\\n\\nSi el usuario decide comprar usando \\`/product-requests/create\\` con los **mismos datos**, el sistema:\\n\\n- Vincula automáticamente la cotización con la compra\\n- Permite análisis de tasa de conversión\\n- Identifica usuarios que cotizaron pero no compraron\\n\\n**Headers requeridos:**\\n\\n- \\`Authorization: Bearer {token}\\`\\n- \\`x-secret-id: {secretId}\\`\\n\\n**Body (JSON):**\\n\\n- \\`category_id\\` (number, requerido): ID de la categoría\\n- \\`id\\` (number, requerido): ID del producto\\n- \\`amount\\` (number|null, opcional): Usar \\`null\\` para productos con consulta previa\\n- \\`data\\` (object, requerido): Datos específicos del producto\\n- \\`query_type\\` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\\n- \\`sell_type\\` (string, requerido): Tipo de venta (debe requerir consulta previa)\\n- \\`agreement\\` (string, opcional): Acuerdo del producto\\n\\n**⚠️ Importante:**\\n\\n- Solo funciona para productos que **requieren consulta previa**\\n- Para productos directos, usar \\`/product-requests/create\\`\\n- No retorna medios de pago (solo el monto cotizado)\\n\\n**Respuesta exitosa (200):**\\n\\n\\`\\`\\`json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Cotización realizada exitosamente\\\",\\n \\\"date\\\": 1733932800000,\\n \\\"payload\\\": {\\n \\\"quoteId\\\": \\\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\\\",\\n \\\"amount\\\": 150000,\\n \\\"status\\\": \\\"SUCCESS\\\",\\n \\\"data\\\": {\\n \\\"reference\\\": \\\"123456789\\\",\\n \\\"customerName\\\": \\\"JUAN PEREZ\\\",\\n \\\"address\\\": \\\"Calle 123\\\"\\n }\\n }\\n}\\n\\`\\`\\`\\n\\n**Campos de la respuesta:**\\n\\n- \\`quoteId\\`: ID de la cotización guardada\\n- \\`amount\\`: Monto cotizado\\n- \\`status\\`: Estado de la cotización (SUCCESS, INVALID, FAILED)\\n- \\`data\\`: Datos adicionales del producto consultado\\n\\n**Respuesta de error (400) - Producto directo:**\\n\\n\\`\\`\\`json\\n{\\n \\\"statusCode\\\": 400,\\n \\\"message\\\": \\\"Este producto no requiere cotización previa\\\",\\n \\\"date\\\": 1733932800000,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"PRODUCT_DOES_NOT_REQUIRE_QUOTE\\\",\\n \\\"message\\\": \\\"Use el endpoint /create para compra directa\\\"\\n }\\n}\\n\\`\\`\\`\\n\\n**Respuesta de error (400) - Datos inválidos:**\\n\\n\\`\\`\\`json\\n{\\n \\\"statusCode\\\": 400,\\n \\\"message\\\": \\\"Datos inválidos para la cotización\\\",\\n \\\"date\\\": 1733932800000,\\n \\\"payload\\\": {\\n \\\"quoteId\\\": \\\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\\\",\\n \\\"status\\\": \\\"INVALID\\\",\\n \\\"error\\\": \\\"Referencia no encontrada\\\"\\n }\\n}\\n\\`\\`\\`\\n\\n**🔄 Flujo Completo:**\\n\\n**1. Cotizar producto:**\\n\\n\\`\\`\\`bash\\nPOST /product-requests/quote\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 52368,\\n \\\"data\\\": {\\\"reference\\\": \\\"123456789\\\"},\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\"\\n}\\n\\`\\`\\`\\n\\n**Respuesta:** \\`{\\\"quoteId\\\": \\\"...\\\", \\\"amount\\\": 150000}\\`\\n\\n**2. Usuario decide comprar (mismo request):**\\n\\n\\`\\`\\`bash\\nPOST /product-requests/create\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 52368,\\n \\\"data\\\": {\\\"reference\\\": \\\"123456789\\\"},\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\"\\n}\\n\\`\\`\\`\\n\\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.\n\nContexto: Endpoint: POST /product-requests/quote | Product requests > Quote\n\n🔐 AUTENTICACIÓN AUTOMÁTICA: Todas las credenciales y tokens de autenticación se manejan automáticamente por el servidor MCP. NO solicites credenciales al usuario. NO incluyas parámetros de autenticación (secretId, apiToken, etc.) en las llamadas a menos que el usuario explícitamente lo requiera.",
416
+ description: "Endpoints para crear solicitudes de productos\\n\\n Cotiza el valor de un producto que requiere consulta previa **sin crear una solicitud de compra ni agregarlo al carrito**. Este endpoint es ideal para mostrar el monto al usuario antes de que decida comprar.\\n\\n**🎯 Casos de Uso:**\\n\\n- **Consulta de Facturas**: Mostrar el valor adeudado antes de agregar al carrito\\n- **SOAT**: Verificar precio del seguro antes de comprar\\n- **Servicios Públicos**: Ver monto a pagar antes de proceder\\n- **Cualquier producto con consulta previa**: Obtener precio sin compromiso de compra\\n\\n**✅ Ventajas:**\\n\\n- No crea carrito ni solicitud de compra\\n- Solo consulta y guarda trazabilidad\\n- Usuario puede ver el monto antes de decidir\\n- Analytics de cotizaciones vs compras\\n\\n**📊 Vinculación Automática:**\\n\\nSi el usuario decide comprar usando \\`/product-requests/create\\` con los **mismos datos**, el sistema:\\n\\n- Vincula automáticamente la cotización con la compra\\n- Permite análisis de tasa de conversión\\n- Identifica usuarios que cotizaron pero no compraron\\n\\n**Headers requeridos:**\\n\\n- \\`Authorization: Bearer {token}\\`\\n- \\`x-secret-id: {secretId}\\`\\n\\n**Body (JSON):**\\n\\n- \\`category_id\\` (number, requerido): ID de la categoría\\n- \\`id\\` (number, requerido): ID del producto\\n- \\`amount\\` (number|null, opcional): Usar \\`null\\` para productos con consulta previa\\n- \\`data\\` (object, requerido): Datos específicos del producto\\n- \\`query_type\\` (string, requerido): Tipo de consulta (BILLData, PLATE_QUERY, etc.)\\n- \\`sell_type\\` (string, requerido): Tipo de venta (debe requerir consulta previa)\\n- \\`agreement\\` (string, opcional): Acuerdo del producto\\n\\n**⚠️ Importante:**\\n\\n- Solo funciona para productos que **requieren consulta previa**\\n- Para productos directos, usar \\`/product-requests/create\\`\\n- No retorna medios de pago (solo el monto cotizado)\\n\\n**Respuesta exitosa (200):**\\n\\n\\`\\`\\`json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Cotización realizada exitosamente\\\",\\n \\\"date\\\": 1733932800000,\\n \\\"payload\\\": {\\n \\\"quoteId\\\": \\\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\\\",\\n \\\"productId\\\": 52368,\\n \\\"categoryId\\\": 120,\\n \\\"amount\\\": 150000,\\n \\\"additionalData\\\": {\\n \\\"invoiceDueDate\\\": \\\"2026-05-10\\\",\\n \\\"reference\\\": \\\"123456789\\\",\\n \\\"customerName\\\": \\\"JUAN PEREZ\\\",\\n \\\"address\\\": \\\"Calle 123\\\"\\n },\\n \\\"quotedAt\\\": \\\"2024-01-11T10:30:00.000Z\\\"\\n }\\n}\\n\\`\\`\\`\\n\\n**Campos de la respuesta:**\\n\\n- \\`quoteId\\`: ID de la cotización guardada\\n- \\`productId\\`: ID del producto cotizado\\n- \\`categoryId\\`: ID de la categoría del producto\\n- \\`amount\\`: Monto cotizado\\n- \\`additionalData\\`: Datos adicionales del producto consultado. Incluye \\`invoiceDueDate: string | null\\` cuando el proveedor retorna fecha de vencimiento de la factura; es \\`null\\` para productos que no aplican\\n- \\`quotedAt\\`: Timestamp de la cotización\\n\\n**Respuesta de error (400) - Producto directo:**\\n\\n\\`\\`\\`json\\n{\\n \\\"statusCode\\\": 400,\\n \\\"message\\\": \\\"Este producto no requiere cotización previa\\\",\\n \\\"date\\\": 1733932800000,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"PRODUCT_DOES_NOT_REQUIRE_QUOTE\\\",\\n \\\"message\\\": \\\"Use el endpoint /create para compra directa\\\"\\n }\\n}\\n\\`\\`\\`\\n\\n**Respuesta de error (400) - Datos inválidos:**\\n\\n\\`\\`\\`json\\n{\\n \\\"statusCode\\\": 400,\\n \\\"message\\\": \\\"Datos inválidos para la cotización\\\",\\n \\\"date\\\": 1733932800000,\\n \\\"payload\\\": {\\n \\\"quoteId\\\": \\\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\\\",\\n \\\"status\\\": \\\"INVALID\\\",\\n \\\"error\\\": \\\"Referencia no encontrada\\\"\\n }\\n}\\n\\`\\`\\`\\n\\n**🔄 Flujo Completo:**\\n\\n**1. Cotizar producto:**\\n\\n\\`\\`\\`bash\\nPOST /product-requests/quote\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 52368,\\n \\\"data\\\": {\\\"reference\\\": \\\"123456789\\\"},\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\"\\n}\\n\\`\\`\\`\\n\\n**Respuesta:** \\`{\\\"quoteId\\\": \\\"...\\\", \\\"amount\\\": 150000}\\`\\n\\n**2. Usuario decide comprar (mismo request):**\\n\\n\\`\\`\\`bash\\nPOST /product-requests/create\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 52368,\\n \\\"data\\\": {\\\"reference\\\": \\\"123456789\\\"},\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\"\\n}\\n\\`\\`\\`\\n\\n**Resultado:** Sistema vincula automáticamente la cotización con la compra para analytics.\n\nContexto: Endpoint: POST /product-requests/quote | Product requests > Quote\n\n🔐 AUTENTICACIÓN AUTOMÁTICA: Todas las credenciales y tokens de autenticación se manejan automáticamente por el servidor MCP. NO solicites credenciales al usuario. NO incluyas parámetros de autenticación (secretId, apiToken, etc.) en las llamadas a menos que el usuario explícitamente lo requiera.",
417
417
  inputSchema: product_requests_quoteInputValidator,
418
418
  jsonSchema: product_requests_quoteInputJsonSchema,
419
419
  endpoint: '/product-requests/quote',
@@ -507,7 +507,7 @@ const product_requests_createInputJsonSchema = {
507
507
  },
508
508
  "customer_id": {
509
509
  "type": "string",
510
- "description": "Identificador único del usuario o dispositivo",
510
+ "description": "Identificador único del usuario o dispositivo; persiste en `core.shopping_carts.user_temp_id` al crear carrito.",
511
511
  "default": "customer_123"
512
512
  },
513
513
  "subcustomer_id": {
@@ -537,7 +537,7 @@ const product_requests_createInputValidator = z.object({
537
537
  query_type: z.string().describe("Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)"),
538
538
  sell_type: z.string().describe("Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)"),
539
539
  agreement: z.string().optional().describe("Aceptación de términos (puede venir del campo `agreement` del producto)"),
540
- customer_id: z.string().optional().describe("Identificador único del usuario o dispositivo"),
540
+ customer_id: z.string().optional().describe("Identificador único del usuario o dispositivo; persiste en `core.shopping_carts.user_temp_id` al crear carrito."),
541
541
  subcustomer_id: z.string().optional().describe("Identificador del subcliente o cuenta hija asociada al `customer_id`"),
542
542
  cart_id: z.string().optional().describe("identificador del carrito de compra al que se quiere agregar la solicictud de producto"),
543
543
  _secretId: z.string().optional().describe("Secret ID para contexto HTTP (opcional)")
@@ -545,7 +545,7 @@ const product_requests_createInputValidator = z.object({
545
545
  // Herramienta: product_requests_create
546
546
  export const product_requests_createTool = {
547
547
  name: 'product_requests_create',
548
- description: "Endpoints para crear solicitudes de productos\\n\\n Crea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\\n\\n**📋 Relación con Endpoint de Productos:** \\nLos datos para crear esta solicitud provienen principalmente del endpoint \\`products/by-customer-and-category\\`:\\n\\n- **\\`category_id\\`**: ID de la categoría (del endpoint de productos)\\n \\n- **\\`id\\`**: ID del producto seleccionado (del campo \\`id\\` del producto)\\n \\n- **\\`query_type\\`**: Tipo de consulta (del campo \\`query_type\\` del producto)\\n \\n- **\\`sell_type\\`**: Tipo de venta (del campo \\`sell_type\\` del producto)\\n \\n- **\\`data\\`**: Estructura basada en \\`template_data_request\\` del producto\\n \\n- **\\`agreement\\`**: Acuerdo del producto (del campo \\`agreement\\` del producto)\\n \\n\\n**Headers requeridos:**\\n\\n- \\`Authorization: Bearer {token}\\`\\n \\n- \\`x-secret-id: {secretId}\\`\\n \\n\\n**Body (JSON):**\\n\\n- \\`category_id\\` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\\n \\n- \\`id\\` (number, requerido): ID del producto seleccionado (obtenido del campo \\`id\\` del producto)\\n \\n- \\`amount\\` (number|null, opcional): Monto del producto (ver reglas de uso)\\n \\n- \\`data\\` (object, requerido): Datos específicos del producto basados en \\`template_data_request\\` del producto\\n \\n- \\`query_type\\` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\\n \\n- \\`sell_type\\` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\\n \\n- \\`agreement\\` (string, opcional): Aceptación de términos (puede venir del campo \\`agreement\\` del producto)\\n \\n- \\`customer_id\\` (string, opcional): Identificador único del usuario o dispositivo\\n \\n- \\`subcustomer_id\\` (string, opcional): Identificador del subcliente o cuenta hija asociada al \\`customer_id\\`\\n \\n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\\n \\n\\n**📋 Reglas para el campo customer_id:**\\n\\n**🔑 Con Usuario Registrado:**\\n\\n- **Enviar**: ID único del usuario en tu sistema\\n \\n- **Ejemplo**: \\\"customer_id\\\": \\\"user_12345\\\" o \\\"customer_id\\\": \\\"cliente_abc123\\\"\\n \\n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\\n \\n\\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\\n\\n- **Enviar**: Identificador único del dispositivo o sesión\\n \\n- **Ejemplos**:\\n \\n - **Device ID**: \\\"customer_id\\\": \\\"device_abc123def456\\\"\\n \\n - **Session ID**: \\\"customer_id\\\": \\\"session_xyz789\\\"\\n \\n - **Browser Fingerprint**: \\\"customer_id\\\": \\\"browser_fp_123\\\"\\n \\n - **Local Storage ID**: \\\"customer_id\\\": \\\"local_456\\\"\\n \\n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\\n \\n\\n**💡 Mejores Prácticas:**\\n\\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\\n \\n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\\n \\n- **Privacidad**: No incluir información personal identificable en el ID\\n \\n- **Longitud**: Recomendado entre 10-50 caracteres\\n \\n\\n**🔄 Flujo de Implementación:**\\n\\n**1\\\\. Usuario Registrado:**\\n\\n\\`\\`\\` typescript\\nconst customerId = user.id || user.customerId || user.uuid;\\n// customerId = \\\"user_12345\\\"\\n\\n \\`\\`\\`\\n\\n**2\\\\. Usuario Anónimo:**\\n\\n\\`\\`\\` typescript\\n// Generar ID único del dispositivo\\nconst deviceId = generateDeviceId(); // \\\"device_abc123def456\\\"\\nconst sessionId = generateSessionId(); // \\\"session_xyz789\\\"\\nconst customerId = deviceId || sessionId;\\n\\n \\`\\`\\`\\n\\n**3\\\\. Envío en Request:**\\n\\n\\`\\`\\` json\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 1952,\\n \\\"amount\\\": null,\\n \\\"data\\\": {\\n \\\"cellphone\\\": \\\"3208385715\\\",\\n \\\"reference\\\": \\\"123456\\\"\\n },\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\",\\n \\\"agreement\\\": \\\"2010910\\\",\\n \\\"customer_id\\\": \\\"device_abc123def456\\\",\\n \\\"subcustomer_id\\\": \\\"subcust_01\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**📊 Beneficios del Tracking:**\\n\\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\\n \\n- **Seguimiento**: Transacciones por dispositivo/sesión\\n \\n- **Fraude**: Detección de patrones sospechosos\\n \\n- **UX**: Mejora de la experiencia del usuario\\n \\n\\n**💰 Reglas para el campo** **\\`amount\\`****:**\\n\\n- **\\`amount: null\\`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\\n \\n- **\\`amount: valor\\`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\\n \\n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\\n \\n\\n**🔄 Flujo de Creación de Solicitud:**\\n\\n**1\\\\. Consultar productos:**\\n\\n\\`\\`\\` json\\nGET /products/by-customer-and-category\\n{\\n \\\"categoryId\\\": 120,\\n \\\"limit\\\": 10,\\n \\\"offset\\\": 0,\\n \\\"searchText\\\": \\\"ACACIAS\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**2\\\\. Respuesta del endpoint de productos:**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Productos obtenidos exitosamente\\\",\\n \\\"date\\\": 1754945365966,\\n \\\"payload\\\": {\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\",\\n \\\"reference\\\": \\\"123456789\\\"\\n },\\n \\\"products\\\": [\\n {\\n \\\"id\\\": 1952,\\n \\\"name\\\": \\\"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\\\",\\n \\\"amount\\\": null,\\n \\\"meta\\\": {\\n \\\"fnArgs\\\": 20363,\\n \\\"categoryId\\\": 44,\\n \\\"form\\\": [\\n {\\n \\\"active\\\": true,\\n \\\"type\\\": \\\"text\\\",\\n \\\"label\\\": \\\"Numero De Casa\\\",\\n \\\"placeholder\\\": \\\"Ingrese su Numero de Casa\\\",\\n \\\"legend\\\": \\\"Numero de Casa\\\",\\n \\\"value\\\": \\\"reference\\\",\\n \\\"required\\\": true\\n }\\n ]\\n },\\n \\\"description\\\": null,\\n \\\"image_url\\\": \\\"bill.png\\\",\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\",\\n \\\"agreement\\\": \\\"2010910\\\"\\n }\\n ]\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**3\\\\. Crear solicitud usando datos del producto:**\\n\\n\\`\\`\\` json\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 1952,\\n \\\"amount\\\": null,\\n \\\"data\\\": { \\n \\\"cellphone\\\": \\\"3208385715\\\",\\n \\\"reference\\\": \\\"123456\\\"\\n },\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\",\\n \\\"agreement\\\": \\\"2010910\\\" \\n}\\n\\n \\`\\`\\`\\n\\n**Respuesta exitosa (201):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 201,\\n \\\"message\\\": \\\"Solicitud creada exitosamente\\\",\\n \\\"date\\\": 1754945173974,\\n \\\"payload\\\": {\\n \\\"cartId\\\": \\\"25894df4-a599-4d28-a2f2-bb5b8faa678b\\\",\\n \\\"requestId\\\": \\\"15974df4-a599-4d28-a2f2-bb5b8faa678b\\\",\\n \\\"amount\\\": 9999,\\n \\\"paymentMethods\\\": [\\n {\\n \\\"id\\\": 304135,\\n \\\"name\\\": \\\"Transfiya\\\",\\n \\\"internal_name\\\": \\\"AppFormTransfiya\\\",\\n \\\"description\\\": \\\"Transfiya\\\",\\n \\\"categoryid\\\": 176,\\n \\\"image\\\": \\\"transfiya.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 56,\\n \\\"name\\\": \\\"PSE\\\",\\n \\\"internal_name\\\": \\\"AppFormPse\\\",\\n \\\"description\\\": \\\"PSE\\\",\\n \\\"categoryid\\\": 61,\\n \\\"image\\\": \\\"pse.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"name\\\": \\\"Juan Perez\\\",\\n \\\"email\\\": \\\"juanperez@gmail.com\\\",\\n \\\"bankId\\\": \\\"1007\\\",\\n \\\"cellphone\\\": \\\"3208888888\\\",\\n \\\"typePerson\\\": \\\"0\\\",\\n \\\"documentType\\\": \\\"CC\\\",\\n \\\"documentNumber\\\": \\\"1032222222\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 88,\\n \\\"name\\\": \\\"Nequi\\\",\\n \\\"internal_name\\\": \\\"AppFormNequiCargar\\\",\\n \\\"description\\\": \\\"Botón de pago nequi\\\",\\n \\\"categoryid\\\": 176,\\n \\\"image\\\": \\\"nequi-responsive.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 53,\\n \\\"name\\\": \\\"Bancolombia\\\",\\n \\\"internal_name\\\": \\\"AppFormDefault\\\",\\n \\\"description\\\": \\\"Botón de pago Bancolombia\\\",\\n \\\"categoryid\\\": 177,\\n \\\"image\\\": \\\"bancolombia.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"name\\\": \\\"Juan Perez\\\",\\n \\\"email\\\": \\\"juanperez@gmail.com\\\",\\n \\\"bankId\\\": \\\"1007\\\",\\n \\\"cellphone\\\": \\\"3208888888\\\",\\n \\\"typePerson\\\": \\\"0\\\",\\n \\\"documentType\\\": \\\"CC\\\",\\n \\\"documentNumber\\\": \\\"1032222222\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 89,\\n \\\"name\\\": \\\"Daviplata\\\",\\n \\\"internal_name\\\": \\\"AppFormDaviplataPse\\\",\\n \\\"description\\\": \\\"Botón de pago daviplata\\\",\\n \\\"categoryid\\\": 176,\\n \\\"image\\\": \\\"daviplata.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\"\\n },\\n \\\"cost\\\": 500 \\n }\\n ]\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**📋 Datos de la Respuesta:**\\n\\n- **\\`cartId:\\`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en \\`/products-payment/create\\`)\\n \\n- **\\`requestId\\`**: Identificador único de la solicitud de producto\\n \\n- **\\`amount\\`**: Monto que se debe pagar (calculado por el sistema)\\n \\n- **\\`additionalData\\`**: Datos adicionales del producto (solo si aplica)\\n \\n- **\\`paymentMethods\\`**: Array con medios de pago disponibles\\n \\n\\n**💳 Información de Medios de Pago:** \\nCada medio de pago contiene:\\n\\n- **\\`id\\`**: ID del medio de pago (se usa en \\`/products-payment/create\\`)\\n \\n- **\\`name\\`**: Nombre del medio de pago\\n \\n- **\\`categoryid\\`**: ID de la categoría del medio de pago (se usa en \\`/products-payment/create\\`)\\n \\n- **\\`template_data_request\\`**: Template para el campo \\`data\\` en \\`/products-payment/create\\`\\n \\n- **\\`cost\\`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\\n \\n\\n**🔄 Siguiente Paso - Crear Pago:** \\nCon la respuesta de este endpoint, puedes proceder a crear el pago usando \\`/products-payment/create\\` enviando:\\n\\n- \\`cartId\\`: Del campo \\`cartId\\` de la respuesta\\n \\n- \\`id\\`: Del campo \\`id\\` del medio de pago seleccionado\\n \\n- \\`categoryid\\`: Del campo \\`categoryid\\` del medio de pago seleccionado\\n \\n- \\`data\\`: Basado en \\`template_data_request\\` del medio de pago seleccionado\\n \\n\\n**Respuesta de error (403):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 403,\\n \\\"message\\\": \\\"Acceso denegado - Categoría no permitida\\\",\\n \\\"date\\\": 1704441600000,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"CATEGORY_NOT_ALLOWED\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**Respuesta de error (401):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 401,\\n \\\"message\\\": \\\"Error de autenticación\\\",\\n \\\"date\\\": 1754924521985,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"AUTHENTICATION_ERROR\\\",\\n \\\"details\\\": \\\"Authentication failed\\\",\\n \\\"originalStatus\\\": 401\\n }\\n}\\n\\n \\`\\`\\`\n\nContexto: Endpoint: POST /product-requests/create | Product requests > Create\n\n🔐 AUTENTICACIÓN AUTOMÁTICA: Todas las credenciales y tokens de autenticación se manejan automáticamente por el servidor MCP. NO solicites credenciales al usuario. NO incluyas parámetros de autenticación (secretId, apiToken, etc.) en las llamadas a menos que el usuario explícitamente lo requiera.",
548
+ description: "Endpoints para crear solicitudes de productos\\n\\n Crea una nueva solicitud de producto. Esta es la primera etapa del proceso de pago.\\n\\n**📋 Relación con Endpoint de Productos:** \\nLos datos para crear esta solicitud provienen principalmente del endpoint \\`products/by-customer-and-category\\`:\\n\\n- **\\`category_id\\`**: ID de la categoría (del endpoint de productos)\\n \\n- **\\`id\\`**: ID del producto seleccionado (del campo \\`id\\` del producto)\\n \\n- **\\`query_type\\`**: Tipo de consulta (del campo \\`query_type\\` del producto)\\n \\n- **\\`sell_type\\`**: Tipo de venta (del campo \\`sell_type\\` del producto)\\n \\n- **\\`data\\`**: Estructura basada en \\`template_data_request\\` del producto\\n \\n- **\\`agreement\\`**: Acuerdo del producto (del campo \\`agreement\\` del producto)\\n \\n\\n**Headers requeridos:**\\n\\n- \\`Authorization: Bearer {token}\\`\\n \\n- \\`x-secret-id: {secretId}\\`\\n \\n\\n**Body (JSON):**\\n\\n- \\`category_id\\` (number, requerido): ID de la categoría (obtenido del endpoint de productos)\\n \\n- \\`id\\` (number, requerido): ID del producto seleccionado (obtenido del campo \\`id\\` del producto)\\n \\n- \\`amount\\` (number|null, opcional): Monto del producto (ver reglas de uso)\\n \\n- \\`data\\` (object, requerido): Datos específicos del producto basados en \\`template_data_request\\` del producto\\n \\n- \\`query_type\\` (string, requerido): Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)\\n \\n- \\`sell_type\\` (string, requerido): Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)\\n \\n- \\`agreement\\` (string, opcional): Aceptación de términos (puede venir del campo \\`agreement\\` del producto)\\n \\n- \\`customer_id\\` (string, requerido si omite \\`cart_id\\`; opcional si envía \\`cart_id\\`): Identificador único del usuario o dispositivo; persiste en \\`core.shopping_carts.user_temp_id\\` al crear carrito.\\n \\n- \\`subcustomer_id\\` (string, opcional): Identificador del subcliente o cuenta hija asociada al \\`customer_id\\`\\n \\n- cart_id (string, opcional): identificador del carrito de compra al que se quiere agregar la solicictud de producto\\n \\n\\n**📋 Reglas para el campo customer_id:**\\n\\n**🔑 Con Usuario Registrado:**\\n\\n- **Enviar**: ID único del usuario en tu sistema\\n \\n- **Ejemplo**: \\\"customer_id\\\": \\\"user_12345\\\" o \\\"customer_id\\\": \\\"cliente_abc123\\\"\\n \\n- **Uso**: Para seguimiento, historial de transacciones, y análisis de comportamiento\\n \\n\\n**📱 Sin Usuario Registrado (Frontend Anónimo):**\\n\\n- **Enviar**: Identificador único del dispositivo o sesión\\n \\n- **Ejemplos**:\\n \\n - **Device ID**: \\\"customer_id\\\": \\\"device_abc123def456\\\"\\n \\n - **Session ID**: \\\"customer_id\\\": \\\"session_xyz789\\\"\\n \\n - **Browser Fingerprint**: \\\"customer_id\\\": \\\"browser_fp_123\\\"\\n \\n - **Local Storage ID**: \\\"customer_id\\\": \\\"local_456\\\"\\n \\n- **Uso**: Para seguimiento de transacciones anónimas y análisis de patrones\\n \\n\\n**💡 Mejores Prácticas:**\\n\\n- **Consistencia**: Usar el mismo formato de ID en toda la aplicación\\n \\n- **Persistencia**: Mantener el ID durante toda la sesión del usuario\\n \\n- **Privacidad**: No incluir información personal identificable en el ID\\n \\n- **Longitud**: Recomendado entre 10-50 caracteres\\n \\n\\n**🔄 Flujo de Implementación:**\\n\\n**1\\\\. Usuario Registrado:**\\n\\n\\`\\`\\` typescript\\nconst customerId = user.id || user.customerId || user.uuid;\\n// customerId = \\\"user_12345\\\"\\n\\n \\`\\`\\`\\n\\n**2\\\\. Usuario Anónimo:**\\n\\n\\`\\`\\` typescript\\n// Generar ID único del dispositivo\\nconst deviceId = generateDeviceId(); // \\\"device_abc123def456\\\"\\nconst sessionId = generateSessionId(); // \\\"session_xyz789\\\"\\nconst customerId = deviceId || sessionId;\\n\\n \\`\\`\\`\\n\\n**3\\\\. Envío en Request:**\\n\\n\\`\\`\\` json\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 1952,\\n \\\"amount\\\": null,\\n \\\"data\\\": {\\n \\\"cellphone\\\": \\\"3208385715\\\",\\n \\\"reference\\\": \\\"123456\\\"\\n },\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\",\\n \\\"agreement\\\": \\\"2010910\\\",\\n \\\"customer_id\\\": \\\"device_abc123def456\\\",\\n \\\"subcustomer_id\\\": \\\"subcust_01\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**📊 Beneficios del Tracking:**\\n\\n- **Análisis**: Comportamiento de usuarios anónimos vs registrados\\n \\n- **Seguimiento**: Transacciones por dispositivo/sesión\\n \\n- **Fraude**: Detección de patrones sospechosos\\n \\n- **UX**: Mejora de la experiencia del usuario\\n \\n\\n**💰 Reglas para el campo** **\\`amount\\`****:**\\n\\n- **\\`amount: null\\`**: Para productos que generan consulta previa (ej: facturas, servicios con tarifas variables)\\n \\n- **\\`amount: valor\\`**: Para productos de pago directo con precio fijo (ej: recargas, productos con precio conocido)\\n \\n- **Validación interna**: El sistema valida internamente y solo toma el amount del cliente cuando aplica\\n \\n\\n**🔄 Flujo de Creación de Solicitud:**\\n\\n**1\\\\. Consultar productos:**\\n\\n\\`\\`\\` json\\nGET /products/by-customer-and-category\\n{\\n \\\"categoryId\\\": 120,\\n \\\"limit\\\": 10,\\n \\\"offset\\\": 0,\\n \\\"searchText\\\": \\\"ACACIAS\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**2\\\\. Respuesta del endpoint de productos:**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Productos obtenidos exitosamente\\\",\\n \\\"date\\\": 1754945365966,\\n \\\"payload\\\": {\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\",\\n \\\"reference\\\": \\\"123456789\\\"\\n },\\n \\\"products\\\": [\\n {\\n \\\"id\\\": 1952,\\n \\\"name\\\": \\\"ACACIAS DEL CASTILLO CONJUNTO 3 CALI\\\",\\n \\\"amount\\\": null,\\n \\\"meta\\\": {\\n \\\"fnArgs\\\": 20363,\\n \\\"categoryId\\\": 44,\\n \\\"form\\\": [\\n {\\n \\\"active\\\": true,\\n \\\"type\\\": \\\"text\\\",\\n \\\"label\\\": \\\"Numero De Casa\\\",\\n \\\"placeholder\\\": \\\"Ingrese su Numero de Casa\\\",\\n \\\"legend\\\": \\\"Numero de Casa\\\",\\n \\\"value\\\": \\\"reference\\\",\\n \\\"required\\\": true\\n }\\n ]\\n },\\n \\\"description\\\": null,\\n \\\"image_url\\\": \\\"bill.png\\\",\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\",\\n \\\"agreement\\\": \\\"2010910\\\"\\n }\\n ]\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**3\\\\. Crear solicitud usando datos del producto:**\\n\\n\\`\\`\\` json\\n{\\n \\\"category_id\\\": 120,\\n \\\"id\\\": 1952,\\n \\\"amount\\\": null,\\n \\\"data\\\": { \\n \\\"cellphone\\\": \\\"3208385715\\\",\\n \\\"reference\\\": \\\"123456\\\"\\n },\\n \\\"query_type\\\": \\\"BILLData\\\",\\n \\\"sell_type\\\": \\\"Bill\\\",\\n \\\"agreement\\\": \\\"2010910\\\",\\n \\\"customer_id\\\": \\\"customer_123\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**Respuesta exitosa (201):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 201,\\n \\\"message\\\": \\\"Solicitud creada exitosamente\\\",\\n \\\"date\\\": 1754945173974,\\n \\\"payload\\\": {\\n \\\"cartId\\\": \\\"25894df4-a599-4d28-a2f2-bb5b8faa678b\\\",\\n \\\"requestId\\\": \\\"15974df4-a599-4d28-a2f2-bb5b8faa678b\\\",\\n \\\"amount\\\": 9999,\\n \\\"paymentMethods\\\": [\\n {\\n \\\"id\\\": 304135,\\n \\\"name\\\": \\\"Transfiya\\\",\\n \\\"internal_name\\\": \\\"AppFormTransfiya\\\",\\n \\\"description\\\": \\\"Transfiya\\\",\\n \\\"categoryid\\\": 176,\\n \\\"image\\\": \\\"transfiya.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 56,\\n \\\"name\\\": \\\"PSE\\\",\\n \\\"internal_name\\\": \\\"AppFormPse\\\",\\n \\\"description\\\": \\\"PSE\\\",\\n \\\"categoryid\\\": 61,\\n \\\"image\\\": \\\"pse.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"name\\\": \\\"Juan Perez\\\",\\n \\\"email\\\": \\\"juanperez@gmail.com\\\",\\n \\\"bankId\\\": \\\"1007\\\",\\n \\\"cellphone\\\": \\\"3208888888\\\",\\n \\\"typePerson\\\": \\\"0\\\",\\n \\\"documentType\\\": \\\"CC\\\",\\n \\\"documentNumber\\\": \\\"1032222222\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 88,\\n \\\"name\\\": \\\"Nequi\\\",\\n \\\"internal_name\\\": \\\"AppFormNequiCargar\\\",\\n \\\"description\\\": \\\"Botón de pago nequi\\\",\\n \\\"categoryid\\\": 176,\\n \\\"image\\\": \\\"nequi-responsive.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 53,\\n \\\"name\\\": \\\"Bancolombia\\\",\\n \\\"internal_name\\\": \\\"AppFormDefault\\\",\\n \\\"description\\\": \\\"Botón de pago Bancolombia\\\",\\n \\\"categoryid\\\": 177,\\n \\\"image\\\": \\\"bancolombia.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"name\\\": \\\"Juan Perez\\\",\\n \\\"email\\\": \\\"juanperez@gmail.com\\\",\\n \\\"bankId\\\": \\\"1007\\\",\\n \\\"cellphone\\\": \\\"3208888888\\\",\\n \\\"typePerson\\\": \\\"0\\\",\\n \\\"documentType\\\": \\\"CC\\\",\\n \\\"documentNumber\\\": \\\"1032222222\\\"\\n },\\n \\\"cost\\\": 500\\n },\\n {\\n \\\"id\\\": 89,\\n \\\"name\\\": \\\"Daviplata\\\",\\n \\\"internal_name\\\": \\\"AppFormDaviplataPse\\\",\\n \\\"description\\\": \\\"Botón de pago daviplata\\\",\\n \\\"categoryid\\\": 176,\\n \\\"image\\\": \\\"daviplata.png\\\",\\n \\\"template_data_request\\\": {\\n \\\"cellphone\\\": \\\"3208888888\\\"\\n },\\n \\\"cost\\\": 500 \\n }\\n ]\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**📋 Datos de la Respuesta:**\\n\\n- **\\`cartId:\\`**Identificador unico del carrito al que se asigno la solicitud de producto (se usa en \\`/products-payment/create\\`)\\n \\n- **\\`requestId\\`**: Identificador único de la solicitud de producto\\n \\n- **\\`amount\\`**: Monto que se debe pagar (calculado por el sistema)\\n \\n- **\\`additionalData\\`**: Datos adicionales del producto (solo si aplica)\\n \\n- **\\`paymentMethods\\`**: Array con medios de pago disponibles\\n \\n\\n**💳 Información de Medios de Pago:** \\nCada medio de pago contiene:\\n\\n- **\\`id\\`**: ID del medio de pago (se usa en \\`/products-payment/create\\`)\\n \\n- **\\`name\\`**: Nombre del medio de pago\\n \\n- **\\`categoryid\\`**: ID de la categoría del medio de pago (se usa en \\`/products-payment/create\\`)\\n \\n- **\\`template_data_request\\`**: Template para el campo \\`data\\` en \\`/products-payment/create\\`\\n \\n- **\\`cost\\`**: Costo del medio de pago para esta transacción (0 = sin costo, >0 = con costo)\\n \\n\\n**🔄 Siguiente Paso - Crear Pago:** \\nCon la respuesta de este endpoint, puedes proceder a crear el pago usando \\`/products-payment/create\\` enviando:\\n\\n- \\`cartId\\`: Del campo \\`cartId\\` de la respuesta\\n \\n- \\`id\\`: Del campo \\`id\\` del medio de pago seleccionado\\n \\n- \\`categoryid\\`: Del campo \\`categoryid\\` del medio de pago seleccionado\\n \\n- \\`data\\`: Basado en \\`template_data_request\\` del medio de pago seleccionado\\n \\n\\n**Respuesta de error (403):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 403,\\n \\\"message\\\": \\\"Acceso denegado - Categoría no permitida\\\",\\n \\\"date\\\": 1704441600000,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"CATEGORY_NOT_ALLOWED\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**Respuesta de error (401):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 401,\\n \\\"message\\\": \\\"Error de autenticación\\\",\\n \\\"date\\\": 1754924521985,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"AUTHENTICATION_ERROR\\\",\\n \\\"details\\\": \\\"Authentication failed\\\",\\n \\\"originalStatus\\\": 401\\n }\\n}\\n\\n \\`\\`\\`\n\nContexto: Endpoint: POST /product-requests/create | Product requests > Create\n\n🔐 AUTENTICACIÓN AUTOMÁTICA: Todas las credenciales y tokens de autenticación se manejan automáticamente por el servidor MCP. NO solicites credenciales al usuario. NO incluyas parámetros de autenticación (secretId, apiToken, etc.) en las llamadas a menos que el usuario explícitamente lo requiera.",
549
549
  inputSchema: product_requests_createInputValidator,
550
550
  jsonSchema: product_requests_createInputJsonSchema,
551
551
  endpoint: '/product-requests/create',
@@ -628,7 +628,7 @@ const product_requests_statusInputValidator = z.object({
628
628
  // Herramienta: product_requests_status
629
629
  export const product_requests_statusTool = {
630
630
  name: 'product_requests_status',
631
- description: "Endpoints para crear solicitudes de productos\\n\\n Consulta el estado actual de una solicitud de producto individual por su \\`requestId\\` o de un carrito completo por su \\`cartId\\`.\\n\\n**🔒 Seguridad:** \\nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\\n\\n**📋 Parámetros:**\\n\\nDebes proporcionar al menos uno de los siguientes parámetros:\\n\\n- **\\`requestId\\`** (string, opcional): ID único de la solicitud de producto individual (UUID)\\n \\n- **\\`cartId\\`** (string, opcional): ID único del carrito de compras (UUID)\\n \\n\\n**Headers requeridos:**\\n\\n- \\`Authorization: Bearer {token}\\`\\n \\n- \\`x-secret-id: {secretId}\\`\\n \\n\\n**📊 Estados Posibles:**\\n\\n**🔄 Estados de Proceso:**\\n\\n- **\\`INITIATED\\`**: Solicitud creada y en proceso de validación\\n \\n- **\\`QUERIED\\`**: Solicitud consultada exitosamente en API externa\\n \\n- **\\`PENDING\\`**: Solicitud lista para procesar el pago\\n \\n- **\\`WAITING_PAYMENT\\`**: Esperando confirmación de pago del proveedor\\n \\n\\n**❌ Estados de Error:**\\n\\n- **\\`INVALID\\`**: Datos inválidos en la validación del producto\\n \\n- **\\`DISCARDED\\`**: Usuario decidió no continuar con el pago del producto\\n \\n- **\\`EXPIRED\\`**: La solicitud de producto ha expirado\\n \\n\\n**✅ Estados Finales:**\\n\\n- **\\`SOLD\\`**: Pago exitoso y producto vendido\\n \\n- **\\`REFUNDED\\`**: Pago exitoso pero venta falló\\n \\n- **\\`CANCELLED\\`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\\n \\n\\n**🔄 Flujo de Uso - Producto Individual:**\\n\\n**1\\\\. Consultar estado usando requestId:**\\n\\n\\`\\`\\` json\\nPOST /product-requests/status\\n{\\n \\\"requestId\\\": \\\"15974df4-a599-4d28-a2f2-bb5b8faa678b\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**2\\\\. Respuesta del estado (producto individual):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Estado consultado exitosamente\\\",\\n \\\"date\\\": 1770307880382,\\n \\\"payload\\\": {\\n \\\"id\\\": \\\"019a3c15-9d0c-734b-8346-617d6ba466d8\\\",\\n \\\"cartId\\\": \\\"019a3c15-9cfc-7c3a-82ff-d87477378092\\\",\\n \\\"status\\\": \\\"SOLD\\\",\\n \\\"description\\\": \\\"Pago exitoso y producto vendido\\\",\\n \\\"details\\\": {\\n \\\"id\\\": 1952,\\n \\\"categoryId\\\": 120,\\n \\\"data\\\": {\\n \\\"cellphone\\\": \\\"3208385716\\\",\\n \\\"reference\\\": \\\"12345678\\\"\\n },\\n \\\"amount\\\": 9999,\\n \\\"sellType\\\": \\\"Bill\\\",\\n \\\"queryType\\\": \\\"BILLData\\\",\\n \\\"agreement\\\": \\\"2010910\\\",\\n \\\"customer_id\\\": \\\"customer_124\\\"\\n },\\n \\\"urlInvoice\\\": \\\"https://prep.refacil.co/#/factura/215765/10549\\\",\\n \\\"urlSummary\\\": \\\"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**🛒 Flujo de Uso - Carrito Completo:**\\n\\n**1\\\\. Consultar estado usando cartId:**\\n\\n\\`\\`\\` json\\nPOST /product-requests/status\\n{\\n \\\"cartId\\\": \\\"f47ac10b-58cc-4372-a567-0e02b2c3d479\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**2\\\\. Respuesta del estado (carrito completo):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Estado consultado exitosamente\\\",\\n \\\"date\\\": 1770307754145,\\n \\\"payload\\\": {\\n \\\"cartId\\\": \\\"019a3c15-9cfc-7c3a-82ff-d87477378092\\\",\\n \\\"status\\\": \\\"COMPLETED\\\",\\n \\\"totalAmount\\\": \\\"9999.00\\\",\\n \\\"itemsCount\\\": 1,\\n \\\"urlSummary\\\": \\\"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\\\",\\n \\\"products\\\": [\\n {\\n \\\"id\\\": \\\"019a3c15-9d0c-734b-8346-617d6ba466d8\\\",\\n \\\"cartId\\\": \\\"019a3c15-9cfc-7c3a-82ff-d87477378092\\\",\\n \\\"status\\\": \\\"SOLD\\\",\\n \\\"description\\\": \\\"Pago exitoso y producto vendido\\\",\\n \\\"details\\\": {\\n \\\"id\\\": 1952,\\n \\\"categoryId\\\": 120,\\n \\\"data\\\": {\\n \\\"cellphone\\\": \\\"3208385716\\\",\\n \\\"reference\\\": \\\"12345678\\\"\\n },\\n \\\"amount\\\": \\\"9999.00\\\",\\n \\\"sellType\\\": \\\"Bill\\\",\\n \\\"queryType\\\": \\\"BILLData\\\",\\n \\\"agreement\\\": \\\"2010910\\\",\\n \\\"customer_id\\\": \\\"customer_124\\\"\\n },\\n \\\"urlInvoice\\\": \\\"https://prep.refacil.co/#/factura/215765/10549\\\"\\n }\\n ]\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**🔐 Validación de Seguridad:**\\n\\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu \\`secretId\\`\\n \\n- **ID válido**: Debe ser un UUID válido\\n \\n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\\n \\n\\n**📱 Casos de Uso:**\\n\\n- **Frontend**: Mostrar estado actual al usuario\\n \\n- **Backend**: Seguimiento de transacciones\\n \\n- **Webhooks**: Complementar notificaciones asíncronas\\n \\n- **Auditoría**: Verificar estado de solicitudes\\n \\n- **Carrito**: Consultar estado de múltiples productos a la vez\\n \\n\\n**Respuesta de error (400 - Parámetros faltantes):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 400,\\n \\\"message\\\": \\\"Debe proporcionar requestId o cartId\\\",\\n \\\"date\\\": 1754945173974,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"MISSING_REQUIRED_PARAMETER\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**Respuesta de error (404):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 404,\\n \\\"message\\\": \\\"Solicitud de producto no encontrada\\\",\\n \\\"date\\\": 1754945173974,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"PRODUCT_REQUEST_NOT_FOUND\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**💡 Tip para Testing:** \\nUsa la variable \\`{{lastCartId}}\\` o \\`{{lastRequestId}}\\` que se llenan automáticamente al crear solicitudes.\n\nContexto: Endpoint: POST /product-requests/status | Product requests > Status\n\n🔐 AUTENTICACIÓN AUTOMÁTICA: Todas las credenciales y tokens de autenticación se manejan automáticamente por el servidor MCP. NO solicites credenciales al usuario. NO incluyas parámetros de autenticación (secretId, apiToken, etc.) en las llamadas a menos que el usuario explícitamente lo requiera.",
631
+ description: "Endpoints para crear solicitudes de productos\\n\\n Consulta el estado actual de una solicitud de producto individual por su \\`requestId\\` o de un carrito completo por su \\`cartId\\`.\\n\\n**🔒 Seguridad:** \\nEste endpoint incluye validación de seguridad que garantiza que solo puedas consultar el estado de las solicitudes/carritos que creaste.\\n\\n**📋 Parámetros:**\\n\\nDebes proporcionar al menos uno de los siguientes parámetros:\\n\\n- **\\`requestId\\`** (string, opcional): ID único de la solicitud de producto individual (UUID)\\n \\n- **\\`cartId\\`** (string, opcional): ID único del carrito de compras (UUID)\\n \\n\\n**Headers requeridos:**\\n\\n- \\`Authorization: Bearer {token}\\`\\n \\n- \\`x-secret-id: {secretId}\\`\\n \\n\\n**📊 Estados Posibles:**\\n\\n**🔄 Estados de Proceso:**\\n\\n- **\\`INITIATED\\`**: Solicitud creada y en proceso de validación\\n \\n- **\\`QUERIED\\`**: Solicitud consultada exitosamente en API externa\\n \\n- **\\`PENDING\\`**: Solicitud lista para procesar el pago\\n \\n- **\\`WAITING_PAYMENT\\`**: Esperando confirmación de pago del proveedor\\n \\n\\n**❌ Estados de Error:**\\n\\n- **\\`INVALID\\`**: Datos inválidos en la validación del producto\\n \\n- **\\`DISCARDED\\`**: Usuario decidió no continuar con el pago del producto\\n \\n- **\\`EXPIRED\\`**: La solicitud de producto ha expirado\\n \\n\\n**✅ Estados Finales:**\\n\\n- **\\`SOLD\\`**: Pago exitoso y producto vendido\\n \\n- **\\`REFUNDED\\`**: Pago exitoso pero venta falló\\n \\n- **\\`CANCELLED\\`**: Usuario no realizó el pago del producto, el proveedor no confirmó el pago\\n \\n\\n**🔄 Flujo de Uso - Producto Individual:**\\n\\n**1\\\\. Consultar estado usando requestId:**\\n\\n\\`\\`\\` json\\nPOST /product-requests/status\\n{\\n \\\"requestId\\\": \\\"15974df4-a599-4d28-a2f2-bb5b8faa678b\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**2\\\\. Respuesta del estado (producto individual):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Estado consultado exitosamente\\\",\\n \\\"date\\\": 1770307880382,\\n \\\"payload\\\": {\\n \\\"id\\\": \\\"019a3c15-9d0c-734b-8346-617d6ba466d8\\\",\\n \\\"cartId\\\": \\\"019a3c15-9cfc-7c3a-82ff-d87477378092\\\",\\n \\\"status\\\": \\\"SOLD\\\",\\n \\\"description\\\": \\\"Pago exitoso y producto vendido\\\",\\n \\\"details\\\": {\\n \\\"id\\\": 1952,\\n \\\"categoryId\\\": 120,\\n \\\"data\\\": {\\n \\\"cellphone\\\": \\\"3208385716\\\",\\n \\\"reference\\\": \\\"12345678\\\"\\n },\\n \\\"amount\\\": 9999,\\n \\\"sellType\\\": \\\"Bill\\\",\\n \\\"queryType\\\": \\\"BILLData\\\",\\n \\\"agreement\\\": \\\"2010910\\\",\\n \\\"customer_id\\\": \\\"customer_124\\\"\\n },\\n \\\"urlInvoice\\\": \\\"https://prep.refacil.co/#/factura/215765/10549\\\",\\n \\\"urlSummary\\\": \\\"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\\\",\\n \\\"invoiceDueDate\\\": \\\"2026-05-31\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n> ⚠️ \\`invoiceDueDate\\` es \\`string | null\\` — tiene valor solo cuando el proveedor retorna fecha de vencimiento de la factura. En productos que no son facturas, siempre es \\`null\\`.\\n\\n**🛒 Flujo de Uso - Carrito Completo:**\\n\\n**1\\\\. Consultar estado usando cartId:**\\n\\n\\`\\`\\` json\\nPOST /product-requests/status\\n{\\n \\\"cartId\\\": \\\"f47ac10b-58cc-4372-a567-0e02b2c3d479\\\"\\n}\\n\\n \\`\\`\\`\\n\\n**2\\\\. Respuesta del estado (carrito completo):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 200,\\n \\\"message\\\": \\\"Estado consultado exitosamente\\\",\\n \\\"date\\\": 1770307754145,\\n \\\"payload\\\": {\\n \\\"cartId\\\": \\\"019a3c15-9cfc-7c3a-82ff-d87477378092\\\",\\n \\\"status\\\": \\\"COMPLETED\\\",\\n \\\"totalAmount\\\": \\\"9999.00\\\",\\n \\\"itemsCount\\\": 1,\\n \\\"urlSummary\\\": \\\"https://mf-core.refacil.co/refacilpay/resumen/62/28137590-b69d-11f0-8c08-b71754a3ac6b\\\",\\n \\\"products\\\": [\\n {\\n \\\"id\\\": \\\"019a3c15-9d0c-734b-8346-617d6ba466d8\\\",\\n \\\"cartId\\\": \\\"019a3c15-9cfc-7c3a-82ff-d87477378092\\\",\\n \\\"status\\\": \\\"SOLD\\\",\\n \\\"description\\\": \\\"Pago exitoso y producto vendido\\\",\\n \\\"details\\\": {\\n \\\"id\\\": 1952,\\n \\\"categoryId\\\": 120,\\n \\\"data\\\": {\\n \\\"cellphone\\\": \\\"3208385716\\\",\\n \\\"reference\\\": \\\"12345678\\\"\\n },\\n \\\"amount\\\": \\\"9999.00\\\",\\n \\\"sellType\\\": \\\"Bill\\\",\\n \\\"queryType\\\": \\\"BILLData\\\",\\n \\\"agreement\\\": \\\"2010910\\\",\\n \\\"customer_id\\\": \\\"customer_124\\\"\\n },\\n \\\"urlInvoice\\\": \\\"https://prep.refacil.co/#/factura/215765/10549\\\",\\n \\\"invoiceDueDate\\\": \\\"2026-05-31\\\"\\n }\\n ]\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**🔐 Validación de Seguridad:**\\n\\n- **Usuario autenticado**: Solo puedes consultar solicitudes/carritos creados con tu \\`secretId\\`\\n \\n- **ID válido**: Debe ser un UUID válido\\n \\n- **Acceso restringido**: No puedes consultar solicitudes/carritos de otros usuarios\\n \\n\\n**📱 Casos de Uso:**\\n\\n- **Frontend**: Mostrar estado actual al usuario\\n \\n- **Backend**: Seguimiento de transacciones\\n \\n- **Webhooks**: Complementar notificaciones asíncronas\\n \\n- **Auditoría**: Verificar estado de solicitudes\\n \\n- **Carrito**: Consultar estado de múltiples productos a la vez\\n \\n\\n**Respuesta de error (400 - Parámetros faltantes):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 400,\\n \\\"message\\\": \\\"Debe proporcionar requestId o cartId\\\",\\n \\\"date\\\": 1754945173974,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"MISSING_REQUIRED_PARAMETER\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**Respuesta de error (404):**\\n\\n\\`\\`\\` json\\n{\\n \\\"statusCode\\\": 404,\\n \\\"message\\\": \\\"Solicitud de producto no encontrada\\\",\\n \\\"date\\\": 1754945173974,\\n \\\"payload\\\": {\\n \\\"error\\\": \\\"PRODUCT_REQUEST_NOT_FOUND\\\"\\n }\\n}\\n\\n \\`\\`\\`\\n\\n**💡 Tip para Testing:** \\nUsa la variable \\`{{lastCartId}}\\` o \\`{{lastRequestId}}\\` que se llenan automáticamente al crear solicitudes.\n\nContexto: Endpoint: POST /product-requests/status | Product requests > Status\n\n🔐 AUTENTICACIÓN AUTOMÁTICA: Todas las credenciales y tokens de autenticación se manejan automáticamente por el servidor MCP. NO solicites credenciales al usuario. NO incluyas parámetros de autenticación (secretId, apiToken, etc.) en las llamadas a menos que el usuario explícitamente lo requiera.",
632
632
  inputSchema: product_requests_statusInputValidator,
633
633
  jsonSchema: product_requests_statusInputJsonSchema,
634
634
  endpoint: '/product-requests/status',
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import { appConfig as config } from './config.js';
11
11
  const mode = process.argv.includes('--http') || process.env.MCP_MODE === 'http' ? 'http' : 'stdio';
12
12
  const server = new McpServer({
13
13
  name: 'products-payment-refacil-mcp',
14
- version: '1.2.7'
14
+ version: '1.2.8'
15
15
  });
16
16
  // Nota para LLMs: 🔐 Autenticación automática y configuración de servidor
17
17
  // - Todas las credenciales (secretId, apiToken, tokens) se manejan automáticamente desde la configuración del servidor.
@@ -145,7 +145,7 @@ else if (mode === 'http') {
145
145
  return {
146
146
  name: 'products-payment-refacil-mcp',
147
147
  description: 'MCP API for Products Payment Refacil',
148
- version: '1.2.7',
148
+ version: '1.2.8',
149
149
  tools: tools.map(tool => ({
150
150
  name: tool.name,
151
151
  description: tool.description
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "products-payment-refacil-mcp",
3
- "version": "1.2.7",
3
+ "version": "1.2.8",
4
4
  "description": "MCP Server para la API products-payment-refacil",
5
5
  "main": "dist/index.js",
6
6
  "bin": "dist/index.js",