products-payment-refacil-mcp 1.2.3 → 1.2.6

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
@@ -613,10 +613,10 @@ Esta respuesta contiene información clave que se debe usar para crear una solic
613
613
 
614
614
  | Name | Type | Description |
615
615
  | --- | --- | --- |
616
- | categoryId | number | Campo del body: categoryId |
617
- | limit | number | Campo del body: limit |
618
- | offset | number | Campo del body: offset |
619
- | searchText | string | Campo del body: searchText |
616
+ | categoryId * | number | ID de la categoría |
617
+ | limit | number | Número máximo de productos (default: 10) |
618
+ | offset | number | Número de productos a omitir (default: 0) |
619
+ | searchText | string | Texto para buscar en productos |
620
620
 
621
621
  ### `product_requests_quote`
622
622
 
@@ -759,13 +759,13 @@ POST /product-requests/create
759
759
 
760
760
  | Name | Type | Description |
761
761
  | --- | --- | --- |
762
- | category_id | number | Campo del body: category_id |
763
- | id | number | Campo del body: id |
764
- | amount | null | Campo del body: amount |
765
- | data | object | Campo del body: data |
766
- | query_type | null | Campo del body: query_type |
767
- | sell_type | string | Campo del body: sell_type |
768
- | agreement | string | Campo del body: agreement |
762
+ | category_id * | number | ID de la categoría |
763
+ | id * | number | ID del producto |
764
+ | amount | null | Usar `null` para productos con consulta previa |
765
+ | data * | object | Datos específicos del producto |
766
+ | query_type * | null | Tipo de consulta (BILLData, PLATE_QUERY, etc.) |
767
+ | sell_type * | string | Tipo de venta (debe requerir consulta previa) |
768
+ | agreement | string | Acuerdo del producto |
769
769
 
770
770
  ### `product_requests_create`
771
771
 
@@ -776,7 +776,7 @@ Endpoints para crear solicitudes de productos
776
776
  **📋 Relación con Endpoint de Productos:**
777
777
  Los datos para crear esta solicitud provienen principalmente del endpoint `products/by-customer-and-category`:
778
778
 
779
- - **`category_id`**: ID de la categoría (del endpoint de productos)
779
+ - **`category_id`**: Debe usar el mismo valor de `categoryId` enviado en la consulta a `products/by-customer-and-category`
780
780
 
781
781
  - **`id`**: ID del producto seleccionado (del campo `id` del producto)
782
782
 
@@ -798,7 +798,7 @@ Los datos para crear esta solicitud provienen principalmente del endpoint `produ
798
798
 
799
799
  **Body (JSON):**
800
800
 
801
- - `category_id` (number, requerido): ID de la categoría (obtenido del endpoint de productos)
801
+ - `category_id` (number, requerido): mismo valor de `categoryId` usado al consultar `products/by-customer-and-category`
802
802
 
803
803
  - `id` (number, requerido): ID del producto seleccionado (obtenido del campo `id` del producto)
804
804
 
@@ -949,7 +949,6 @@ GET /products/by-customer-and-category
949
949
  "amount": null,
950
950
  "meta": {
951
951
  "fnArgs": 20363,
952
- "categoryId": 44,
953
952
  "form": [
954
953
  {
955
954
  "active": true,
@@ -1155,15 +1154,15 @@ Con la respuesta de este endpoint, puedes proceder a crear el pago usando `/prod
1155
1154
 
1156
1155
  | Name | Type | Description |
1157
1156
  | --- | --- | --- |
1158
- | category_id | number | Campo del body: category_id |
1159
- | id | number | Campo del body: id |
1160
- | amount | null | Campo del body: amount |
1161
- | data | object | Campo del body: data |
1162
- | query_type | string | Campo del body: query_type |
1163
- | sell_type | string | Campo del body: sell_type |
1164
- | agreement | string | Campo del body: agreement |
1165
- | customer_id | string | Campo del body: customer_id |
1166
- | cart_id | string | Campo del body: cart_id |
1157
+ | category_id * | number | mismo valor de `categoryId` usado al consultar `products/by-customer-and-category` |
1158
+ | id * | number | ID del producto seleccionado (obtenido del campo `id` del producto) |
1159
+ | amount | null | Monto del producto (ver reglas de uso) |
1160
+ | data * | object | Datos específicos del producto basados en `template_data_request` del producto |
1161
+ | query_type * | string | Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.) |
1162
+ | sell_type * | string | Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST) |
1163
+ | agreement | string | Aceptación de términos (puede venir del campo `agreement` del producto) |
1164
+ | customer_id | string | Identificador único del usuario o dispositivo |
1165
+ | cart_id | string | identificador del carrito de compra al que se quiere agregar la solicictud de producto |
1167
1166
 
1168
1167
  ### `product_requests_status`
1169
1168
 
@@ -1897,12 +1896,12 @@ Los datos para crear este pago provienen de la respuesta del endpoint `product-r
1897
1896
 
1898
1897
  | Name | Type | Description |
1899
1898
  | --- | --- | --- |
1900
- | cartId | string | Campo del body: cartId |
1901
- | id | number | Campo del body: id |
1902
- | categoryid | number | Campo del body: categoryid |
1903
- | data | object | Campo del body: data |
1904
- | returnUrl | string | Campo del body: returnUrl |
1905
- | webhookUrl | string | Campo del body: webhookUrl |
1899
+ | cartId * | string | ID de la solicitud obtenido de `product-requests/create` |
1900
+ | id * | number | ID del medio de pago seleccionado |
1901
+ | categoryid * | number | ID de la categoría del medio de pago |
1902
+ | data * | object | Datos del pagador basados en `template_data_request` del medio de pago |
1903
+ | returnUrl | string | URL de retorno después del pago |
1904
+ | webhookUrl | string | URL para notificaciones de estado del pago |
1906
1905
 
1907
1906
  ### `products_payment_retry_sale`
1908
1907
 
@@ -2133,10 +2132,10 @@ Endpoints para crear reembolsos
2133
2132
 
2134
2133
  | Name | Type | Description |
2135
2134
  | --- | --- | --- |
2136
- | requestId | string | Campo del body: requestId |
2137
- | keyBreB | string | Campo del body: keyBreB |
2138
- | email | string | Campo del body: email |
2139
- | webhookUrl | string | Campo del body: webhookUrl |
2135
+ | requestId * | string | ID del request a reembolsar |
2136
+ | keyBreB * | string | Clave BreB del cliente (número de celular u otro identificador) |
2137
+ | email * | string | Email del cliente |
2138
+ | webhookUrl * | string | URL para notificaciones del reembolso |
2140
2139
 
2141
2140
  ### `docs_cli_web_documentation`
2142
2141
 
@@ -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- 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}\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 **uno** de los siguientes parámetros (no ambos obligatorios):\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 **uno** de los siguientes parámetros (no ambos obligatorios):\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 \"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`**: Debe usar el mismo valor de `categoryId` enviado en la consulta a `products/by-customer-and-category`\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): mismo valor de `categoryId` usado al consultar `products/by-customer-and-category`\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- 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}\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 \"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 **uno** de los siguientes parámetros (no ambos obligatorios):\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 **uno** de los siguientes parámetros (no ambos obligatorios):\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",
@@ -98,9 +98,9 @@ export const resources = [
98
98
  {
99
99
  "uri": "postman://collection/products-payment-api/endpoint/post/product-requests/create",
100
100
  "name": "POST /product-requests/create - Endpoint Documentation",
101
- "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- 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}\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 ```",
101
+ "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`**: Debe usar el mismo valor de `categoryId` enviado en la consulta a `products/by-customer-and-category`\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): mismo valor de `categoryId` usado al consultar `products/by-customer-and-category`\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- 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}\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 \"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 ```",
102
102
  "mimeType": "text/markdown",
103
- "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- 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}\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."
103
+ "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`**: Debe usar el mismo valor de `categoryId` enviado en la consulta a `products/by-customer-and-category`\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): mismo valor de `categoryId` usado al consultar `products/by-customer-and-category`\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- 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}\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 \"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."
104
104
  },
105
105
  {
106
106
  "uri": "postman://collection/products-payment-api/endpoint/post/product-requests/status",
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/core/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/core/resources.ts"],"names":[],"mappings":"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"}
@@ -228,32 +228,34 @@ const products_by_cus_and_categoryInputJsonSchema = {
228
228
  "properties": {
229
229
  "categoryId": {
230
230
  "type": "number",
231
- "description": "Campo del body: categoryId",
231
+ "description": "ID de la categoría",
232
232
  "default": 120
233
233
  },
234
234
  "limit": {
235
235
  "type": "number",
236
- "description": "Campo del body: limit",
236
+ "description": "Número máximo de productos (default: 10)",
237
237
  "default": 2
238
238
  },
239
239
  "offset": {
240
240
  "type": "number",
241
- "description": "Campo del body: offset",
241
+ "description": "Número de productos a omitir (default: 0)",
242
242
  "default": 0
243
243
  },
244
244
  "searchText": {
245
245
  "type": "string",
246
- "description": "Campo del body: searchText",
246
+ "description": "Texto para buscar en productos",
247
247
  "default": "conjunto"
248
248
  }
249
249
  },
250
- "required": []
250
+ "required": [
251
+ "categoryId"
252
+ ]
251
253
  };
252
254
  const products_by_cus_and_categoryInputValidator = z.object({
253
- categoryId: z.number().optional().describe("Campo del body: categoryId"),
254
- limit: z.number().optional().describe("Campo del body: limit"),
255
- offset: z.number().optional().describe("Campo del body: offset"),
256
- searchText: z.string().optional().describe("Campo del body: searchText"),
255
+ categoryId: z.number().describe("ID de la categoría"),
256
+ limit: z.number().optional().describe("Número máximo de productos (default: 10)"),
257
+ offset: z.number().optional().describe("Número de productos a omitir (default: 0)"),
258
+ searchText: z.string().optional().describe("Texto para buscar en productos"),
257
259
  _secretId: z.string().optional().describe("Secret ID para contexto HTTP (opcional)")
258
260
  });
259
261
  // Herramienta: products_by_cus_and_category
@@ -311,50 +313,56 @@ const product_requests_quoteInputJsonSchema = {
311
313
  "properties": {
312
314
  "category_id": {
313
315
  "type": "number",
314
- "description": "Campo del body: category_id",
316
+ "description": "ID de la categoría",
315
317
  "default": 17
316
318
  },
317
319
  "id": {
318
320
  "type": "number",
319
- "description": "Campo del body: id",
321
+ "description": "ID del producto",
320
322
  "default": 12345
321
323
  },
322
324
  "amount": {
323
325
  "type": "null",
324
- "description": "Campo del body: amount"
326
+ "description": "Usar `null` para productos con consulta previa"
325
327
  },
326
328
  "data": {
327
329
  "type": "object",
328
- "description": "Campo del body: data",
330
+ "description": "Datos específicos del producto",
329
331
  "default": {
330
332
  "cellphone": "3208888888"
331
333
  }
332
334
  },
333
335
  "query_type": {
334
336
  "type": "null",
335
- "description": "Campo del body: query_type"
337
+ "description": "Tipo de consulta (BILLData, PLATE_QUERY, etc.)"
336
338
  },
337
339
  "sell_type": {
338
340
  "type": "string",
339
- "description": "Campo del body: sell_type",
341
+ "description": "Tipo de venta (debe requerir consulta previa)",
340
342
  "default": "DIRECT"
341
343
  },
342
344
  "agreement": {
343
345
  "type": "string",
344
- "description": "Campo del body: agreement",
346
+ "description": "Acuerdo del producto",
345
347
  "default": "7700000000001"
346
348
  }
347
349
  },
348
- "required": []
350
+ "required": [
351
+ "category_id",
352
+ "id",
353
+ "data",
354
+ "query_type",
355
+ "sell_type"
356
+ ]
349
357
  };
350
358
  const product_requests_quoteInputValidator = z.object({
351
- category_id: z.number().optional().describe("Campo del body: category_id"),
352
- id: z.number().optional().describe("Campo del body: id"),
353
- amount: z.any().optional().describe("Campo del body: amount"),
354
- data: z.record(z.any()).optional().describe("Campo del body: data"),
355
- query_type: z.any().optional().describe("Campo del body: query_type"),
356
- sell_type: z.string().optional().describe("Campo del body: sell_type"),
357
- agreement: z.string().optional().describe("Campo del body: agreement"),
359
+ category_id: z.number().describe("ID de la categoría"),
360
+ id: z.number().describe("ID del producto"),
361
+ amount: z.any().optional().describe("Usar `null` para productos con consulta previa"),
362
+ data: z.record(z.any()).describe("Datos específicos del producto"),
363
+ query_type: z.any().describe("Tipo de consulta (BILLData, PLATE_QUERY, etc.)"),
364
+ sell_type: z.string().describe("Tipo de venta (debe requerir consulta previa)"),
365
+ agreement: z.string().optional().describe("Acuerdo del producto"),
358
366
  _secretId: z.string().optional().describe("Secret ID para contexto HTTP (opcional)")
359
367
  });
360
368
  // Herramienta: product_requests_quote
@@ -417,21 +425,21 @@ const product_requests_createInputJsonSchema = {
417
425
  "properties": {
418
426
  "category_id": {
419
427
  "type": "number",
420
- "description": "Campo del body: category_id",
428
+ "description": "mismo valor de `categoryId` usado al consultar `products/by-customer-and-category`",
421
429
  "default": 120
422
430
  },
423
431
  "id": {
424
432
  "type": "number",
425
- "description": "Campo del body: id",
433
+ "description": "ID del producto seleccionado (obtenido del campo `id` del producto)",
426
434
  "default": 1952
427
435
  },
428
436
  "amount": {
429
437
  "type": "null",
430
- "description": "Campo del body: amount"
438
+ "description": "Monto del producto (ver reglas de uso)"
431
439
  },
432
440
  "data": {
433
441
  "type": "object",
434
- "description": "Campo del body: data",
442
+ "description": "Datos específicos del producto basados en `template_data_request` del producto",
435
443
  "default": {
436
444
  "cellphone": "3208888888",
437
445
  "reference": "123456789"
@@ -439,48 +447,54 @@ const product_requests_createInputJsonSchema = {
439
447
  },
440
448
  "query_type": {
441
449
  "type": "string",
442
- "description": "Campo del body: query_type",
450
+ "description": "Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)",
443
451
  "default": "BILLData"
444
452
  },
445
453
  "sell_type": {
446
454
  "type": "string",
447
- "description": "Campo del body: sell_type",
455
+ "description": "Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)",
448
456
  "default": "Bill"
449
457
  },
450
458
  "agreement": {
451
459
  "type": "string",
452
- "description": "Campo del body: agreement",
460
+ "description": "Aceptación de términos (puede venir del campo `agreement` del producto)",
453
461
  "default": "2010910"
454
462
  },
455
463
  "customer_id": {
456
464
  "type": "string",
457
- "description": "Campo del body: customer_id",
465
+ "description": "Identificador único del usuario o dispositivo",
458
466
  "default": "customer_123"
459
467
  },
460
468
  "cart_id": {
461
469
  "type": "string",
462
- "description": "Campo del body: cart_id",
470
+ "description": "identificador del carrito de compra al que se quiere agregar la solicictud de producto",
463
471
  "default": "22d0b878-80f4-4f9b-af8f-5d09ec2cb823"
464
472
  }
465
473
  },
466
- "required": []
474
+ "required": [
475
+ "category_id",
476
+ "id",
477
+ "data",
478
+ "query_type",
479
+ "sell_type"
480
+ ]
467
481
  };
468
482
  const product_requests_createInputValidator = z.object({
469
- category_id: z.number().optional().describe("Campo del body: category_id"),
470
- id: z.number().optional().describe("Campo del body: id"),
471
- amount: z.any().optional().describe("Campo del body: amount"),
472
- data: z.record(z.any()).optional().describe("Campo del body: data"),
473
- query_type: z.string().optional().describe("Campo del body: query_type"),
474
- sell_type: z.string().optional().describe("Campo del body: sell_type"),
475
- agreement: z.string().optional().describe("Campo del body: agreement"),
476
- customer_id: z.string().optional().describe("Campo del body: customer_id"),
477
- cart_id: z.string().optional().describe("Campo del body: cart_id"),
483
+ category_id: z.number().describe("mismo valor de `categoryId` usado al consultar `products/by-customer-and-category`"),
484
+ id: z.number().describe("ID del producto seleccionado (obtenido del campo `id` del producto)"),
485
+ amount: z.any().optional().describe("Monto del producto (ver reglas de uso)"),
486
+ data: z.record(z.any()).describe("Datos específicos del producto basados en `template_data_request` del producto"),
487
+ query_type: z.string().describe("Tipo de consulta del producto (PHONE_QUERY, PLATE_QUERY, etc.)"),
488
+ sell_type: z.string().describe("Tipo de venta del producto (DIRECT_SALE, QUERY_FIRST)"),
489
+ agreement: z.string().optional().describe("Aceptación de términos (puede venir del campo `agreement` del producto)"),
490
+ customer_id: z.string().optional().describe("Identificador único del usuario o dispositivo"),
491
+ cart_id: z.string().optional().describe("identificador del carrito de compra al que se quiere agregar la solicictud de producto"),
478
492
  _secretId: z.string().optional().describe("Secret ID para contexto HTTP (opcional)")
479
493
  });
480
494
  // Herramienta: product_requests_create
481
495
  export const product_requests_createTool = {
482
496
  name: 'product_requests_create',
483
- 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- 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}\\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.",
497
+ 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\\`**: Debe usar el mismo valor de \\`categoryId\\` enviado en la consulta a \\`products/by-customer-and-category\\`\\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): mismo valor de \\`categoryId\\` usado al consultar \\`products/by-customer-and-category\\`\\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- 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}\\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 \\\"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.",
484
498
  inputSchema: product_requests_createInputValidator,
485
499
  jsonSchema: product_requests_createInputJsonSchema,
486
500
  endpoint: '/product-requests/create',
@@ -715,22 +729,22 @@ const products_payment_createInputJsonSchema = {
715
729
  "properties": {
716
730
  "cartId": {
717
731
  "type": "string",
718
- "description": "Campo del body: cartId",
732
+ "description": "ID de la solicitud obtenido de `product-requests/create`",
719
733
  "default": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
720
734
  },
721
735
  "id": {
722
736
  "type": "number",
723
- "description": "Campo del body: id",
737
+ "description": "ID del medio de pago seleccionado",
724
738
  "default": 56
725
739
  },
726
740
  "categoryid": {
727
741
  "type": "number",
728
- "description": "Campo del body: categoryid",
742
+ "description": "ID de la categoría del medio de pago",
729
743
  "default": 61
730
744
  },
731
745
  "data": {
732
746
  "type": "object",
733
- "description": "Campo del body: data",
747
+ "description": "Datos del pagador basados en `template_data_request` del medio de pago",
734
748
  "default": {
735
749
  "name": "Juan Perez",
736
750
  "email": "juanperez@gmail.com",
@@ -743,24 +757,29 @@ const products_payment_createInputJsonSchema = {
743
757
  },
744
758
  "returnUrl": {
745
759
  "type": "string",
746
- "description": "Campo del body: returnUrl",
760
+ "description": "URL de retorno después del pago",
747
761
  "default": "https://tu-app.com/success"
748
762
  },
749
763
  "webhookUrl": {
750
764
  "type": "string",
751
- "description": "Campo del body: webhookUrl",
765
+ "description": "URL para notificaciones de estado del pago",
752
766
  "default": "https://webhook.site/4083efe6-7809-40ac-bbaa-9271d4a0c853"
753
767
  }
754
768
  },
755
- "required": []
769
+ "required": [
770
+ "cartId",
771
+ "id",
772
+ "categoryid",
773
+ "data"
774
+ ]
756
775
  };
757
776
  const products_payment_createInputValidator = z.object({
758
- cartId: z.string().optional().describe("Campo del body: cartId"),
759
- id: z.number().optional().describe("Campo del body: id"),
760
- categoryid: z.number().optional().describe("Campo del body: categoryid"),
761
- data: z.record(z.any()).optional().describe("Campo del body: data"),
762
- returnUrl: z.string().optional().describe("Campo del body: returnUrl"),
763
- webhookUrl: z.string().optional().describe("Campo del body: webhookUrl"),
777
+ cartId: z.string().describe("ID de la solicitud obtenido de `product-requests/create`"),
778
+ id: z.number().describe("ID del medio de pago seleccionado"),
779
+ categoryid: z.number().describe("ID de la categoría del medio de pago"),
780
+ data: z.record(z.any()).describe("Datos del pagador basados en `template_data_request` del medio de pago"),
781
+ returnUrl: z.string().optional().describe("URL de retorno después del pago"),
782
+ webhookUrl: z.string().optional().describe("URL para notificaciones de estado del pago"),
764
783
  _secretId: z.string().optional().describe("Secret ID para contexto HTTP (opcional)")
765
784
  });
766
785
  // Herramienta: products_payment_create
@@ -889,32 +908,37 @@ const products_refund_createInputJsonSchema = {
889
908
  "properties": {
890
909
  "requestId": {
891
910
  "type": "string",
892
- "description": "Campo del body: requestId",
911
+ "description": "ID del request a reembolsar",
893
912
  "default": "0aaef286-867c-486d-bf98-3a16eeabad5c"
894
913
  },
895
914
  "keyBreB": {
896
915
  "type": "string",
897
- "description": "Campo del body: keyBreB",
916
+ "description": "Clave BreB del cliente (número de celular u otro identificador)",
898
917
  "default": "3051000002"
899
918
  },
900
919
  "email": {
901
920
  "type": "string",
902
- "description": "Campo del body: email",
921
+ "description": "Email del cliente",
903
922
  "default": "cliente@example.com"
904
923
  },
905
924
  "webhookUrl": {
906
925
  "type": "string",
907
- "description": "Campo del body: webhookUrl",
926
+ "description": "URL para notificaciones del reembolso",
908
927
  "default": "https://webhook.site/4083efe6-7809-40ac-bbaa-9271d4a0c853"
909
928
  }
910
929
  },
911
- "required": []
930
+ "required": [
931
+ "requestId",
932
+ "keyBreB",
933
+ "email",
934
+ "webhookUrl"
935
+ ]
912
936
  };
913
937
  const products_refund_createInputValidator = z.object({
914
- requestId: z.string().optional().describe("Campo del body: requestId"),
915
- keyBreB: z.string().optional().describe("Campo del body: keyBreB"),
916
- email: z.string().optional().describe("Campo del body: email"),
917
- webhookUrl: z.string().optional().describe("Campo del body: webhookUrl"),
938
+ requestId: z.string().describe("ID del request a reembolsar"),
939
+ keyBreB: z.string().describe("Clave BreB del cliente (número de celular u otro identificador)"),
940
+ email: z.string().describe("Email del cliente"),
941
+ webhookUrl: z.string().describe("URL para notificaciones del reembolso"),
918
942
  _secretId: z.string().optional().describe("Secret ID para contexto HTTP (opcional)")
919
943
  });
920
944
  // Herramienta: products_refund_create
@@ -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.3'
14
+ version: '1.2.6'
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.3',
148
+ version: '1.2.6',
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.3",
3
+ "version": "1.2.6",
4
4
  "description": "MCP Server para la API products-payment-refacil",
5
5
  "main": "dist/index.js",
6
6
  "bin": "dist/index.js",