refacil-commerce-mcp 1.0.7 → 1.0.9
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 +819 -2572
- package/dist/core/resources.js +73 -332
- package/dist/core/resources.js.map +1 -1
- package/dist/core/tools.d.ts +6 -44
- package/dist/core/tools.js +394 -3080
- package/dist/core/tools.js.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/core/resources.js
CHANGED
|
@@ -7,44 +7,44 @@ export const resources = [
|
|
|
7
7
|
{
|
|
8
8
|
"uri": "postman://collection/refacil-commerce-api",
|
|
9
9
|
"name": "Refacil Commerce API - API Documentation",
|
|
10
|
-
"description": "
|
|
10
|
+
"description": "#### **Balance consumption under a single generic merchant**\n\nInquiries and sales are managed from a single generic merchant. The merchant has an Administration Portal to view reports and make balance purchases through the channels enabled by Super Pagos.\n\nTo make sales, the merchant must have available balance in the Super Pagos portal.\n\n> You will be able to target the consumption of our services through our following Endpoint : \nQA: https://commerce-api.qa.refacil.co/ \nProduction: https://commerce-api.refacil.co/ \n \n> Note: It should be noted that for each environment only the beginning of the Url is modified, the subsequent address is the same for both environments in the services that you will consume. \n \n> **QA Environment Availability:** The QA environment is not available 24/7. It is available Monday through Friday from 7:00 AM to 10:00 PM (GMT-5). \n \n> API implementation credentials in test environment will be available throughout the integration and up to 30 days after certification in production.",
|
|
11
11
|
"mimeType": "text/markdown",
|
|
12
|
-
"content": "# Refacil Commerce API\n\
|
|
12
|
+
"content": "# Refacil Commerce API\n\n#### **Balance consumption under a single generic merchant**\n\nInquiries and sales are managed from a single generic merchant. The merchant has an Administration Portal to view reports and make balance purchases through the channels enabled by Super Pagos.\n\nTo make sales, the merchant must have available balance in the Super Pagos portal.\n\n> You will be able to target the consumption of our services through our following Endpoint : \nQA: https://commerce-api.qa.refacil.co/ \nProduction: https://commerce-api.refacil.co/ \n \n> Note: It should be noted that for each environment only the beginning of the Url is modified, the subsequent address is the same for both environments in the services that you will consume. \n \n> **QA Environment Availability:** The QA environment is not available 24/7. It is available Monday through Friday from 7:00 AM to 10:00 PM (GMT-5). \n \n> API implementation credentials in test environment will be available throughout the integration and up to 30 days after certification in production.\n\n## Overview\n\nThis API collection contains 1 main items.\n\n## Available Folders\n\n- **Commerce API**: #### **Balance consumption under a single generic merchant**\n\nInquiries and sales are managed from a...\n- **auth**\n- **products**\n- **sales**: Here you will find all the endpoints related to multi-product sales.\n\n**Note:** If you need informat...\n- **sell**: ### Description\n\nExecutes a sale or collection for any supported product.\n\nFor invoice products (`Bi...\n- **Bills**\n- **PROSEGUR GPS BGTA**\n- **Insurance**\n- **Axa**: Here you will find all the endpoints related to the sale of SOAT AXA COLPATRIA.\n\n**Note:** This prod...\n- **Previsora**: Here you will find all the endpoints related to the sale of SOAT PREVISORA.\n\n## Timeout Configuratio...\n- **Luck and Chance**: In accordance with Decree 0175 of February 14, 2025, issued by the Colombian Government, the collect...\n- **RushBet**\n- **Packages**\n- **Packages Claro**\n- **Recharges**\n- **DirectTV**\n- **Sale Pines**\n- **Pines**: Here you will find all the endpoints related to the sale of pins.\n\n**Note:** Sales related to pin pr...\n- **Netflix**\n- **DirectTV**\n- **Energy**\n- **EPM**\n- **ESSA**\n- **Transfiya**: Here you will find all the endpoints related to Transfiya correspondent selling.\n\n**Note:** The prod...\n- **collections**\n\n## Available Endpoints\n\nTotal endpoints: 32\n\n### Methods Distribution\n\n- POST: 27\n- GET: 5\n"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"uri": "postman://collection/refacil-commerce-api/folder/commerce-api",
|
|
16
16
|
"name": "Commerce API - Documentation",
|
|
17
|
-
"description": "
|
|
17
|
+
"description": "#### **Balance consumption under a single generic merchant**\n\nInquiries and sales are managed from a single generic merchant. The merchant has an Administration Portal to view reports and make balance purchases through the channels enabled by Super Pagos.\n\nTo make sales, the merchant must have available balance in the Super Pagos portal.\n\n> You will be able to target the consumption of our services through our following Endpoint : \nQA: https://commerce-api.qa.refacil.co/ \nProduction: https://commerce-api.refacil.co/ \n \n> Note: It should be noted that for each environment only the beginning of the Url is modified, the subsequent address is the same for both environments in the services that you will consume. \n \n> **QA Environment Availability:** The QA environment is not available 24/7. It is available Monday through Friday from 7:00 AM to 10:00 PM (GMT-5). \n \n> API implementation credentials in test environment will be available throughout the integration and up to 30 days after certification in production.",
|
|
18
18
|
"mimeType": "text/markdown",
|
|
19
|
-
"content": "# Commerce API\n\
|
|
19
|
+
"content": "# Commerce API\n\n#### **Balance consumption under a single generic merchant**\n\nInquiries and sales are managed from a single generic merchant. The merchant has an Administration Portal to view reports and make balance purchases through the channels enabled by Super Pagos.\n\nTo make sales, the merchant must have available balance in the Super Pagos portal.\n\n> You will be able to target the consumption of our services through our following Endpoint : \nQA: https://commerce-api.qa.refacil.co/ \nProduction: https://commerce-api.refacil.co/ \n \n> Note: It should be noted that for each environment only the beginning of the Url is modified, the subsequent address is the same for both environments in the services that you will consume. \n \n> **QA Environment Availability:** The QA environment is not available 24/7. It is available Monday through Friday from 7:00 AM to 10:00 PM (GMT-5). \n \n> API implementation credentials in test environment will be available throughout the integration and up to 30 days after certification in production.\n\n## Endpoints\n\n"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"uri": "postman://collection/refacil-commerce-api/folder/sales",
|
|
23
23
|
"name": "sales - Documentation",
|
|
24
|
-
"description": "Here you will find all the endpoints related to multi-product sales.\n\n**Note:** If you need information about parameterized commissions, you should consult your sales agent.",
|
|
24
|
+
"description": "Here you will find all the endpoints related to multi-product sales.\n\n**Note:** If you need information about parameterized commissions, you should consult your sales agent.\n\n---\n\n### Sell — Error Codes\n\nThe following error codes apply to all sell operations regardless of product type.\n\n---\n\n#### POST /sells/sell\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | `validators.productId.required` | `El campo productId es obligatorio.` | `productId` is absent |\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is not a number |\n| 400 | — | `data must be an object` | `data` is absent or not an object |\n| 400 | `validators.moveTmpBalance.isBoolean` | `El campo moveTmpBalance debe ser de tipo boolean.` | `moveTmpBalance` is present but not a boolean |\n| 400 | `validators.sellType.isString` / `validators.sellType.isNotEmpty` | `El campo sellType debe ser de tipo string` / `El campo sellType no puede estar vacío.` | `sellType` is present but invalid |\n| 400 | `validators.hash.isString` / `validators.hash.isNotEmpty` | `El campo hash debe ser de tipo string` / `El campo hash no puede estar vacío.` | `hash` is present but invalid |\n| 400 | `validators.webhookUrl.isString` / `validators.webhookUrl.isNotEmpty` | `El campo webhookUrl debe ser de tipo string` / `El campo webhookUrl no puede estar vacío.` | `webhookUrl` is present but invalid |\n| 400 | `validators.terminalId.isNumber` | `El ID de terminal debe ser un valor numérico.` | `terminalId` is present but not numeric |\n| 400 | `validators.commerceId.isNumber` | `El ID de comercio debe ser un valor numérico.` | `commerceId` is present but not numeric |\n| 400 | `validators._password.isString` | `El campo _password debe ser de tipo string` | `_password` is present but not a string |\n| 400 | — | `expiresIn must be a number` | `expiresIn` is present but not a number |\n| 404 | `product.not.found` / `products.errors.notFound` | `Producto no encontrado` | Product does not exist |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.userBalance` | `El usuario no cuenta con saldo para la transacción` | Insufficient balance |\n| 400 | `products.errors.transactionDuplicate` | `Transacción duplicada` | Duplicate transaction detected — do not retry |\n| 400 | `server.error.core` | `Solicitud duplicada. Por favor, inténtelo de nuevo.` | Request already in progress — retry after a few seconds |\n| 400 | `products.errors.blacklisted` | `Al parecer estás siendo victima de hurto, hemos bloqueado tu cuenta por seguridad` | Reference number is on a security blacklist — do not retry |\n| 400 | `AMOUNT_OUT_OF_RANGE` | `El monto debe ser mayor o igual a {min}` / `menor o igual a {max}` | Amount is outside the allowed range for the product |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n---\n\n#### GET /sells/sale/:saleId\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 404 | `server.notFound` | `Nada encontrado` | Sale not found or does not belong to the authenticated user |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |",
|
|
25
25
|
"mimeType": "text/markdown",
|
|
26
|
-
"content": "# sales\n\nHere you will find all the endpoints related to multi-product sales.\n\n**Note:** If you need information about parameterized commissions, you should consult your sales agent.\n\n## Endpoints\n\n### get sale\n\n**Method**: `GET`\n\n**Path**: `/sells/sale/{saleId}`\n\n---\n\n## Description\n\nThis method allows you to obtain the details of a sale by providing the unique identifier of the sale.\n\n---\n\n## Request Schema\n\n- `saleId`: nique identifier of the sale. It can be found in the sell response as 'saleId', 'sellId', or 'codigo'.\n \n\n## Response Schema\n\n- `id`: Unique identifier of the sale. 'sellId', or 'codigo'.\n \n- `amount`: The amount of the sale.\n \n- `serviceNumber`: The number or reference associated to the sale, it depends on the product. .e.g.For SOAT insurance it will be the plate. For packages it will be the phone number.\n \n- `status`: The status of the sale.\n \n | status | definition |\n | --- | --- |\n | 0 | Failed |\n | 1 | Successful |\n | 9 | In progress |\n \n- `productId`: The product id associated to the sale.\n \n- `createdAt`: The created at date.\n \n- `transactionId`: For TransfiYa product, it is the provider transaction id.\n \n- `extra`: Extra data of the sale, It depends on the product. e.g. For SOAT insurance it will be the PDF url of the insurance policy. For pins it will be the pin.\n\n"
|
|
26
|
+
"content": "# sales\n\nHere you will find all the endpoints related to multi-product sales.\n\n**Note:** If you need information about parameterized commissions, you should consult your sales agent.\n\n---\n\n### Sell — Error Codes\n\nThe following error codes apply to all sell operations regardless of product type.\n\n---\n\n#### POST /sells/sell\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | `validators.productId.required` | `El campo productId es obligatorio.` | `productId` is absent |\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is not a number |\n| 400 | — | `data must be an object` | `data` is absent or not an object |\n| 400 | `validators.moveTmpBalance.isBoolean` | `El campo moveTmpBalance debe ser de tipo boolean.` | `moveTmpBalance` is present but not a boolean |\n| 400 | `validators.sellType.isString` / `validators.sellType.isNotEmpty` | `El campo sellType debe ser de tipo string` / `El campo sellType no puede estar vacío.` | `sellType` is present but invalid |\n| 400 | `validators.hash.isString` / `validators.hash.isNotEmpty` | `El campo hash debe ser de tipo string` / `El campo hash no puede estar vacío.` | `hash` is present but invalid |\n| 400 | `validators.webhookUrl.isString` / `validators.webhookUrl.isNotEmpty` | `El campo webhookUrl debe ser de tipo string` / `El campo webhookUrl no puede estar vacío.` | `webhookUrl` is present but invalid |\n| 400 | `validators.terminalId.isNumber` | `El ID de terminal debe ser un valor numérico.` | `terminalId` is present but not numeric |\n| 400 | `validators.commerceId.isNumber` | `El ID de comercio debe ser un valor numérico.` | `commerceId` is present but not numeric |\n| 400 | `validators._password.isString` | `El campo _password debe ser de tipo string` | `_password` is present but not a string |\n| 400 | — | `expiresIn must be a number` | `expiresIn` is present but not a number |\n| 404 | `product.not.found` / `products.errors.notFound` | `Producto no encontrado` | Product does not exist |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.userBalance` | `El usuario no cuenta con saldo para la transacción` | Insufficient balance |\n| 400 | `products.errors.transactionDuplicate` | `Transacción duplicada` | Duplicate transaction detected — do not retry |\n| 400 | `server.error.core` | `Solicitud duplicada. Por favor, inténtelo de nuevo.` | Request already in progress — retry after a few seconds |\n| 400 | `products.errors.blacklisted` | `Al parecer estás siendo victima de hurto, hemos bloqueado tu cuenta por seguridad` | Reference number is on a security blacklist — do not retry |\n| 400 | `AMOUNT_OUT_OF_RANGE` | `El monto debe ser mayor o igual a {min}` / `menor o igual a {max}` | Amount is outside the allowed range for the product |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n---\n\n#### GET /sells/sale/:saleId\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 404 | `server.notFound` | `Nada encontrado` | Sale not found or does not belong to the authenticated user |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n## Endpoints\n\n### get sale\n\n**Method**: `GET`\n\n**Path**: `/sells/sale/{saleId}`\n\n---\n\n## Description\n\nThis method allows you to obtain the details of a sale by providing the unique identifier of the sale.\n\n---\n\n## Request Schema\n\n- `saleId`: nique identifier of the sale. It can be found in the sell response as 'saleId', 'sellId', or 'codigo'.\n \n\n## Response Schema\n\n- `id`: Unique identifier of the sale. 'sellId', or 'codigo'.\n \n- `amount`: The amount of the sale.\n \n- `serviceNumber`: The number or reference associated to the sale, it depends on the product. .e.g.For SOAT insurance it will be the plate. For packages it will be the phone number.\n \n- `status`: The status of the sale.\n \n | status | definition |\n | --- | --- |\n | 0 | Failed |\n | 1 | Successful |\n | 9 | In progress |\n \n- `productId`: The product id associated to the sale.\n \n- `createdAt`: The created at date.\n \n- `transactionId`: For TransfiYa product, it is the provider transaction id.\n \n- `extra`: Extra data of the sale, It depends on the product. e.g. For SOAT insurance it will be the PDF url of the insurance policy. For pins it will be the pin.\n\n"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"uri": "postman://collection/refacil-commerce-api/folder/sell",
|
|
30
30
|
"name": "sell - Documentation",
|
|
31
|
-
"description": "
|
|
31
|
+
"description": "### Description\n\nExecutes a sale or collection for any supported product.\n\nFor invoice products (`Bills`), the `hash` and `hashEchoData` values returned by the preceding `/products/query` call must be included. For special products (Insurance, Packages, Recharges, etc.), refer to the specific request documentation within each subcategory.\n\n---\n\n### Request Body\n\n- `productId` (number) `required` - Product to sell.\n- `data` (object) `required` - Contextual sale data. The fields inside this object vary by product — refer to each product's specific request for the expected structure.\n - `reference` (string) - Invoice or payment reference. Used for bill products.\n - `cellphone` (string) - Destination phone number. Used for top-ups and some bill products.\n - `phone` (string) - Alternative destination phone field. Used by some top-up providers.\n - `plate` (string) - Vehicle plate. Used for SOAT products.\n - `amount` (number) - Requested amount. Used for products without a fixed amount.\n- `amount` (number) - Sale amount. Omit when the product has a fixed amount.\n- `sellType` (string) - Sale classification (`\"Bill\"`, `\"Topup\"`, etc.). Min length: 1 when sent.\n- `hash` (string) - Hash returned by the preceding query. Required for bill products. Min length: 1 when sent.\n- `moveTmpBalance` (boolean) - If `true`, instructs Movement to transfer temporary balance upon sale completion.\n- `webhookUrl` (string) - URL for post-sale notifications. Min length: 1 when sent.\n- `terminalId` (number) - Unique identifier of the PDV terminal processing the transaction. Enables special products for the selling user.\n- `commerceId` (number) - Commerce identifier. Used to attribute transactions to the correct business location when an integrator consolidates multiple commerces.\n- `_password` (string) - Second key required by certain products.\n- `expiresIn` (number) - Expiration time in seconds for webhook-based sales.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (object)\n - `date` (number) - Sale timestamp.\n - `sellId` (number) - Sale identifier in Movement.\n - `payload` (object)\n - `preBalance` (number) - Balance before the operation.\n - `posBalance` (number) - Balance after the operation.\n - `tmpBalance` (number) - Remaining temporary balance.\n - `debt` (number) - Outstanding debt, if applicable.\n - `billData` (object)\n - `fields` (array) - Receipt field objects.\n - `label` (string) - Field label.\n - `value` (any) - Value associated with the label.\n - `costs` (array) - Cost detail objects.\n - `messages` (array) - Additional message objects.\n - `stringInformation` (array) - Complementary legend strings.\n - `footerInformation` (array) - Footer information for the receipt.\n - `share` (object)\n - `cellphone` (string) - Phone number to share the transaction.\n - `message` (string) - Suggested text to share.",
|
|
32
32
|
"mimeType": "text/markdown",
|
|
33
|
-
"content": "# sell\n\
|
|
33
|
+
"content": "# sell\n\n### Description\n\nExecutes a sale or collection for any supported product.\n\nFor invoice products (`Bills`), the `hash` and `hashEchoData` values returned by the preceding `/products/query` call must be included. For special products (Insurance, Packages, Recharges, etc.), refer to the specific request documentation within each subcategory.\n\n---\n\n### Request Body\n\n- `productId` (number) `required` - Product to sell.\n- `data` (object) `required` - Contextual sale data. The fields inside this object vary by product — refer to each product's specific request for the expected structure.\n - `reference` (string) - Invoice or payment reference. Used for bill products.\n - `cellphone` (string) - Destination phone number. Used for top-ups and some bill products.\n - `phone` (string) - Alternative destination phone field. Used by some top-up providers.\n - `plate` (string) - Vehicle plate. Used for SOAT products.\n - `amount` (number) - Requested amount. Used for products without a fixed amount.\n- `amount` (number) - Sale amount. Omit when the product has a fixed amount.\n- `sellType` (string) - Sale classification (`\"Bill\"`, `\"Topup\"`, etc.). Min length: 1 when sent.\n- `hash` (string) - Hash returned by the preceding query. Required for bill products. Min length: 1 when sent.\n- `moveTmpBalance` (boolean) - If `true`, instructs Movement to transfer temporary balance upon sale completion.\n- `webhookUrl` (string) - URL for post-sale notifications. Min length: 1 when sent.\n- `terminalId` (number) - Unique identifier of the PDV terminal processing the transaction. Enables special products for the selling user.\n- `commerceId` (number) - Commerce identifier. Used to attribute transactions to the correct business location when an integrator consolidates multiple commerces.\n- `_password` (string) - Second key required by certain products.\n- `expiresIn` (number) - Expiration time in seconds for webhook-based sales.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (object)\n - `date` (number) - Sale timestamp.\n - `sellId` (number) - Sale identifier in Movement.\n - `payload` (object)\n - `preBalance` (number) - Balance before the operation.\n - `posBalance` (number) - Balance after the operation.\n - `tmpBalance` (number) - Remaining temporary balance.\n - `debt` (number) - Outstanding debt, if applicable.\n - `billData` (object)\n - `fields` (array) - Receipt field objects.\n - `label` (string) - Field label.\n - `value` (any) - Value associated with the label.\n - `costs` (array) - Cost detail objects.\n - `messages` (array) - Additional message objects.\n - `stringInformation` (array) - Complementary legend strings.\n - `footerInformation` (array) - Footer information for the receipt.\n - `share` (object)\n - `cellphone` (string) - Phone number to share the transaction.\n - `message` (string) - Suggested text to share.\n\n## Endpoints\n\n"
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
"uri": "postman://collection/refacil-commerce-api/folder/axa",
|
|
37
37
|
"name": "Axa - Documentation",
|
|
38
38
|
"description": "Here you will find all the endpoints related to the sale of SOAT AXA COLPATRIA.\n\n**Note:** This product includes an administrative cost for each sale made. For more information, please contact your commercial agent.\n\n**For AXA service testing:** It is required to indicate in the documentation that a test environment must be requested from the commercial agent at least 15 days in advance.\n\n## Timeout Configuration\n\nThe following timeout values are configured for AXA provider operations:\n\n| Operation | Min (seconds) | Max (seconds) | Timeout (seconds) |\n| --- | --- | --- | --- |\n| AXA | 0 | 15 | 50 |\n\n**Important:** These timeout values should be considered when implementing integrations with AXA COLPATRIA services to ensure proper error handling and user experience.",
|
|
39
39
|
"mimeType": "text/markdown",
|
|
40
|
-
"content": "# Axa\n\nHere you will find all the endpoints related to the sale of SOAT AXA COLPATRIA.\n\n**Note:** This product includes an administrative cost for each sale made. For more information, please contact your commercial agent.\n\n**For AXA service testing:** It is required to indicate in the documentation that a test environment must be requested from the commercial agent at least 15 days in advance.\n\n## Timeout Configuration\n\nThe following timeout values are configured for AXA provider operations:\n\n| Operation | Min (seconds) | Max (seconds) | Timeout (seconds) |\n| --- | --- | --- | --- |\n| AXA | 0 | 15 | 50 |\n\n**Important:** These timeout values should be considered when implementing integrations with AXA COLPATRIA services to ensure proper error handling and user experience.\n\n## Endpoints\n\n### query | AXA\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nBelow is an example of a request for vehicle SOAT insurance. The following necessary data must be provided: productId (in this case, 91), queryType (in this case SOATData), type of document, document number, vehicle plate, and phone number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, cifrateAmount, and hashEchoData.\n\nBelow are the valid document types for the consultation process:\n\n- CC: Cédula de ciudadanía\n \n- CE: Cédula de extranjería\n \n- NIT: Número de identificación tributaria\n \n- PS: Pasaporte\n \n- RC: Registro civil\n \n- TI: Tarjeta de identidad\n \n- CD: Carné diplomático\n \n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `docType`: (string, required) Specifies the type of document being used for identification.\n \n- `document`: (string, required) The document number for identification purposes.\n \n- `cellphone`: (string, required) The phone number associated with the query.\n \n- `license`: (string, optional) The license plate of the vehicle.\n\n### sell | AXA\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\nExample of a payment request for the AXA Colpatria product. The necessary information is provided, such as the productId (in this case, 91) and other relevant data, all attributes are mandatory.\n\n**Note:** \nIn order to sell this product, it is important to bear in mind that it is part of a special product. Therefore, before being able to use it, it is necessary to complete the entire product activation process. This can be achieved by using the following services: `/product/activation/....` \nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` service. The necessary data are as follows: `amount`, `cifrateAmount`, and `hashEchoData`.\n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `amount`: (number, required) Total amount of the sale.\n \n - `runt`: (number) Value for RUNT.\n \n - `prima`: (number) Prima value.\n \n - `contributions`: (number) Contributions.\n \n - `valueDiscountLaw`: (number) Value of law discount.\n \n - `valueDiscountTotal`: (number) Total discount value.\n \n - `valuePayDiscount`: (number) Amount to pay with discount.\n \n - `amountAdministrative`: (number) Administrative amount.\n \n - `amountTotal`: (number) Total amount.\n \n - `dateStart`: (string) Start date.\n \n - `dateEnd`: (string) End date.\n \n - `discount`: (number) Discount.\n \n - `license`: (string) Vehicle license plate.\n \n - `hashEchoData`: (string) Hash data.\n \n - `cifrateAmount`: (object) Encrypted amount.\n \n - `hash`: (string) Hash.\n \n - `hashEchoData`: (string) Hash data.\n \n - `userDetail`: (object, required) User details.\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `email`: (string) User's email.\n \n - `document`: (string, required) User's document number.\n \n - `docType`: (string, required) Type of user's document.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer. It is important to note that this step is mandatory, as it is a direct requirement from AXA Colpatria.\n\n"
|
|
40
|
+
"content": "# Axa\n\nHere you will find all the endpoints related to the sale of SOAT AXA COLPATRIA.\n\n**Note:** This product includes an administrative cost for each sale made. For more information, please contact your commercial agent.\n\n**For AXA service testing:** It is required to indicate in the documentation that a test environment must be requested from the commercial agent at least 15 days in advance.\n\n## Timeout Configuration\n\nThe following timeout values are configured for AXA provider operations:\n\n| Operation | Min (seconds) | Max (seconds) | Timeout (seconds) |\n| --- | --- | --- | --- |\n| AXA | 0 | 15 | 50 |\n\n**Important:** These timeout values should be considered when implementing integrations with AXA COLPATRIA services to ensure proper error handling and user experience.\n\n## Endpoints\n\n### query | AXA\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nBelow is an example of a request for vehicle SOAT insurance. The following necessary data must be provided: productId (in this case, 91), queryType (in this case SOATData), type of document, document number, vehicle plate, and phone number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, cifrateAmount, and hashEchoData.\n\nBelow are the valid document types for the consultation process:\n\n- CC: Cédula de ciudadanía\n \n- CE: Cédula de extranjería\n \n- NIT: Número de identificación tributaria\n \n- PS: Pasaporte\n \n- RC: Registro civil\n \n- TI: Tarjeta de identidad\n \n- CD: Carné diplomático\n \n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `docType`: (string, required) Specifies the type of document being used for identification.\n \n- `document`: (string, required) The document number for identification purposes.\n \n- `cellphone`: (string, required) The phone number associated with the query.\n \n- `license`: (string, optional) The license plate of the vehicle.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| queryType | \"SOATData\" |\n| productId | 91 |\n| docType | \"NIT\" |\n| document | \"819000939\" |\n| cellphone | \"3200000000\" |\n| license | \"NAC854\" |\n\n### sell | AXA\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\nExample of a payment request for the AXA Colpatria product. The necessary information is provided, such as the productId (in this case, 91) and other relevant data, all attributes are mandatory.\n\n**Note:** \nIn order to sell this product, it is important to bear in mind that it is part of a special product. Therefore, before being able to use it, it is necessary to complete the entire product activation process. This can be achieved by using the following services: `/product/activation/....` \nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` service. The necessary data are as follows: `amount`, `cifrateAmount`, and `hashEchoData`.\n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `amount`: (number, required) Total amount of the sale.\n \n - `runt`: (number) Value for RUNT.\n \n - `prima`: (number) Prima value.\n \n - `contributions`: (number) Contributions.\n \n - `valueDiscountLaw`: (number) Value of law discount.\n \n - `valueDiscountTotal`: (number) Total discount value.\n \n - `valuePayDiscount`: (number) Amount to pay with discount.\n \n - `amountAdministrative`: (number) Administrative amount.\n \n - `amountTotal`: (number) Total amount.\n \n - `dateStart`: (string) Start date.\n \n - `dateEnd`: (string) End date.\n \n - `discount`: (number) Discount.\n \n - `license`: (string) Vehicle license plate.\n \n - `hashEchoData`: (string) Hash data.\n \n - `cifrateAmount`: (object) Encrypted amount.\n \n - `hash`: (string) Hash.\n \n - `hashEchoData`: (string) Hash data.\n \n - `userDetail`: (object, required) User details.\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `email`: (string) User's email.\n \n - `document`: (string, required) User's document number.\n \n - `docType`: (string, required) Type of user's document.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer. It is important to note that this step is mandatory, as it is a direct requirement from AXA Colpatria.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 91 |\n| amount | 557400 |\n| data.amount.amount | 556400 |\n| data.amount.runt | 2100 |\n| data.amount.prima | 364700 |\n| data.amount.contributions | 189600 |\n| data.amount.valueDiscountLaw | 0 |\n| data.amount.valueDiscountTotal | 0 |\n| data.amount.valuePayDiscount | 556400 |\n| data.amount.amountAdministrative | 566 |\n| data.amount.amountTotal | 557400 |\n| data.amount.dateStart | \"2024-06-04\" |\n| data.amount.dateEnd | \"2025-06-03\" |\n| data.amount.discount | 0 |\n| data.license | \"EJV885\" |\n| data.hashEchoData | \"eyJpZFRyYW5zYWNjaW9uIjoiMmE2MDhjY2YtZjdiOS00ZGM1LTg2OTQtYTAyY2E0ODNkOWE4IiwiaWRDb3JyZWxhY2lvbiI6MTcxNzUzNDY0MTc1MH0=\" |\n| data.cifrateAmount.hash | \"eyJhbW91bnQiOjU1NzQwMH0=\" |\n| data.cifrateAmount.hashEchoData | \"ef3e40f13fa0430eb1dfa9a8e499e3a4ea81c42159b5ee3eccac88d8ef47198e32d28339fcf656704009a0b05802363b3016d921bcfd6aa8920558535aa75218\" |\n| data.userDetail.cellphone | \"3200000000\" |\n| data.userDetail.email | \"test@email.com\" |\n| data.userDetail.document | \"860002964\" |\n| data.userDetail.docType | \"NIT\" |\n\n"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"uri": "postman://collection/refacil-commerce-api/folder/previsora",
|
|
44
44
|
"name": "Previsora - Documentation",
|
|
45
45
|
"description": "Here you will find all the endpoints related to the sale of SOAT PREVISORA.\n\n## Timeout Configuration\n\nThe following timeout values are configured for PREVISORA provider operations:\n\n| Provider | Min (seconds) | Max (seconds) | Timeout (seconds) |\n| --- | --- | --- | --- |\n| PREVISORA | 0 | 300 | 300 |\n\n**Important:**\n\nBased on the current operation of the insurance company **PREVISORA**, the waiting time (timeout) for sales processing has been adjusted to **5 minutes (300 seconds)**. This change addresses the need to ensure that all transactions are processed correctly, even in scenarios where delays may occur.\n\nIn addition, the API guarantees up to **2 automatic retries** in case a timeout occurs during processing. Although this behavior is not common in the API solution, it has been implemented to ensure the continuity and success of sales operations.\n\nIt is recommended to take this configuration into account when implementing integrations with PREVISORA services, in order to ensure proper error handling and an optimal user experience.\n\n## Test Environment\n\n### Available Test Scenarios\n\nTo test error scenarios and different response types, the following vehicle license plates are available:\n\n#### Error Handling\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| All | TIM001 | Timeout | Simulates timeout scenario |\n| All | ERR400 | System Error | Ocurrió un error inesperado. Consulte con el Administrador del sistema |\n| All | ERR401 | Authentication Error | No ha sido posible autenticarse, el token es incorrecto o el usuario no se encuentra activo |\n\n#### Quote Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Quote | ABC123 | Success Standard | Success: Vehículo, camioneta, bus |\n| Quote | ABC124 | Success with Discount | Standard vehicle with discount applied |\n| Quote | ABC125 | Electric Vehicle | Electric car pricing |\n| Quote | ABC126 | Law Discount | Legal discount application |\n| Quote | ABC127 | Transit Authority Error | La placa no está asociada a algún organismo de tránsito |\n\n#### Issue Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Issue | ABC123 | Success Standard | Success: Vehículo, camioneta, bus |\n| Issue | ABC124 | Success with Discount | Successfully issued with discount |\n\n#### Consult Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Consult | ABC123 | Issued | Policy has been issued |\n| Consult | ABC124 | Not Issued | Policy has not been issued |\n\n### Usage Notes\n\n- **Test Plates**: Use the provided test plates to simulate different scenarios during development and testing\n \n- **Error Simulation**: TIM001 and ERR-prefixed plates are specifically designed to test error handling\n \n- **Success Flows**: ABC123 generally represents successful operations across different methods\n \n- **Edge Cases**: ABC124-ABC127 cover various business scenarios including discounts and restrictions\n \n- There is a complementary file containing additional test scenarios not listed in this documentation. You can access it here: [Additional Test Scenarios Folder](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)",
|
|
46
46
|
"mimeType": "text/markdown",
|
|
47
|
-
"content": "# Previsora\n\nHere you will find all the endpoints related to the sale of SOAT PREVISORA.\n\n## Timeout Configuration\n\nThe following timeout values are configured for PREVISORA provider operations:\n\n| Provider | Min (seconds) | Max (seconds) | Timeout (seconds) |\n| --- | --- | --- | --- |\n| PREVISORA | 0 | 300 | 300 |\n\n**Important:**\n\nBased on the current operation of the insurance company **PREVISORA**, the waiting time (timeout) for sales processing has been adjusted to **5 minutes (300 seconds)**. This change addresses the need to ensure that all transactions are processed correctly, even in scenarios where delays may occur.\n\nIn addition, the API guarantees up to **2 automatic retries** in case a timeout occurs during processing. Although this behavior is not common in the API solution, it has been implemented to ensure the continuity and success of sales operations.\n\nIt is recommended to take this configuration into account when implementing integrations with PREVISORA services, in order to ensure proper error handling and an optimal user experience.\n\n## Test Environment\n\n### Available Test Scenarios\n\nTo test error scenarios and different response types, the following vehicle license plates are available:\n\n#### Error Handling\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| All | TIM001 | Timeout | Simulates timeout scenario |\n| All | ERR400 | System Error | Ocurrió un error inesperado. Consulte con el Administrador del sistema |\n| All | ERR401 | Authentication Error | No ha sido posible autenticarse, el token es incorrecto o el usuario no se encuentra activo |\n\n#### Quote Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Quote | ABC123 | Success Standard | Success: Vehículo, camioneta, bus |\n| Quote | ABC124 | Success with Discount | Standard vehicle with discount applied |\n| Quote | ABC125 | Electric Vehicle | Electric car pricing |\n| Quote | ABC126 | Law Discount | Legal discount application |\n| Quote | ABC127 | Transit Authority Error | La placa no está asociada a algún organismo de tránsito |\n\n#### Issue Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Issue | ABC123 | Success Standard | Success: Vehículo, camioneta, bus |\n| Issue | ABC124 | Success with Discount | Successfully issued with discount |\n\n#### Consult Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Consult | ABC123 | Issued | Policy has been issued |\n| Consult | ABC124 | Not Issued | Policy has not been issued |\n\n### Usage Notes\n\n- **Test Plates**: Use the provided test plates to simulate different scenarios during development and testing\n \n- **Error Simulation**: TIM001 and ERR-prefixed plates are specifically designed to test error handling\n \n- **Success Flows**: ABC123 generally represents successful operations across different methods\n \n- **Edge Cases**: ABC124-ABC127 cover various business scenarios including discounts and restrictions\n \n- There is a complementary file containing additional test scenarios not listed in this documentation. You can access it here: [Additional Test Scenarios Folder](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n\n## Endpoints\n\n### query | Quote\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nThe following is an example of a SOAT insurance request for a vehicle. The following required data must be provided: productId (in this case, 1014006), queryType (in this case SOATFullData), document number and vehicle registration number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, vehDetail, and userDetail.\n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n\n- `documentType`: (number, required) Specifies the type of document. Allowed values:\n \n - `1`: CEDULA DE CIUDADANIA\n - `2`: CEDULA DE EXTRANJERIA\n - `3`: NIT\n - `4`: TARJETA DE IDENTIDAD\n \n- `document`: (string, required) The document number for identification purposes.\n \n Length validation rules based on `documentType`:\n \n - **For `documentType = 1` (CEDULA DE CIUDADANIA)**:\n - Minimum length: 7 numeric characters\n - Maximum length: 10 numeric characters\n \n - **For `documentType = 2` (CEDULA DE EXTRANJERIA)**:\n - Minimum length: 5 characters (alphanumeric allowed)\n - Maximum length: 15 characters (alphanumeric allowed)\n \n - **For `documentType = 3` (NIT)**:\n - Minimum length: 6 numeric characters (includes verification digit – VD)\n - Maximum length: 11 numeric characters (includes VD)\n - Must be sent **without hyphen (-)** and must include the verification digit.\n \n Additional rules based on length:\n - If length is 11, must start with \"1\" → (new CC + VD)\n - If length is 10, must start with \"8\" or \"9\" → (NIT + VD)\n - If length is 9 or less, can start with any digit → (old CC + VD)\n \n 💡 **VD (Verification Digit)**: A verification digit is a number mathematically calculated by DIAN (Dirección de Impuestos y Aduanas Nacionales) to validate that the NIT was entered correctly. It is included as part of the document number.\n \n - **For `documentType = 4` (TARJETA DE IDENTIDAD)**:\n - Minimum length: 10 numeric characters\n - Maximum length: 11 numeric characters\n \n \n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n### query | Consult\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n`Returns the information of the last policy issued for the license plate. If the policy is queried on days after its issuance, the service will not return the requested information. It is important to clarify that this endpoint does not retrieve failed sales in the system.`\n\n### Payload for Consult Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `queryType`: (string, required) Specifies the type of query to be performed, in this case have to be \\`SOATPolicy\\`.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n### sell | Previsora\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\n**Product restrictions**\n\n- Allows selling SOAT in the name of a person who is not the owner of the vehicle.\n \n- SOAT can be sold for a PRIVATE CAR.\n \n- SOAT can be sold for a PRIVATE MOTORCYCLE.\n \n- SOAT can be sold for a PUBLIC SERVICE VEHICLE.\n \n- SOAT cannot be sold to vehicles with 0 KM.\n \n- Sales hours are from 12:30 AM to 11:30 PM.\n \n- SOAT can be sold up to 30 days before its expiration.\n \n- The definition of the Administrative Cost and Commission for the sale of SOAT can be validated with your Refacil Commercial Advisor.\n \n- The insurance companies are directly responsible for sending the issued SOAT via email. The API provides a URL from the provider for downloading the SOAT.\n \n\nExample of a payment request for the Previsora product. The necessary information is provided, such as the productId (in this case, 1014006) and other relevant data, all attributes are mandatory.\n\n**Note:**\n\nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` Quote Service. The necessary data are as follows: `amount`, `vehDetail`, and `userDetail`.\n\nSome data obtained from the /products/query service may be null; however, this data is mandatory for the sale process and must be filled in.\n\nIn addition to the `userDetail` object, three additional attributes must be sent: `gender`, `RegimenTypeId`, and `RutId`.\n\nThe possible values for each of the aforementioned attributes are as follows:\n\n- `gender`:\n \n - M = Male\n \n - F = Female\n \n- `RegimenTypeId`:\n \n - 1 = Responsible for IVA\n \n - 2 = Not responsible for IVA\n \n- `RutId`:\n \n - 1 = Large taxpayer\n \n - 2 = Self-withholding agent\n \n - 3 = IVA withholding agent\n \n - 4 = Simple taxation regime\n \n - 5 = Not applicable\n \n - 6 = Large taxpayer-Self-withholding agent-IVA withholding agent\n \n - 7 = Self-withholding agent-IVA withholding agent\n \n - 8 = Large taxpayer-IVA withholding agent\n \n- `cityCode`: DANE code\n \n- `stateCode`: This field is populated based on the **state** sheet [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n- To check the values for the other parameters, please refer [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n\n## Field Validations\n\n### **Name and Last Name Format Requirements**\n\nThe validation rules for the `name` and `lastName` fields in the `userDetail` object depend on the person type:\n\n**For Natural Persons (Personas Naturales):**\n\n- Must contain only letters (uppercase and lowercase)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words (for compound names)\n \n- Minimum length of 3 characters\n \n- Does not allow numbers\n \n- Does not allow special characters such as `@`, `#`\n \n\n**For Legal Entities (Personas Jurídicas):**\n\n- Allows alphanumeric characters (letters and numbers)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words\n \n- Minimum length of 3 characters\n \n- Does not allow special characters such as `@`, `#`\n \n\n### Email Format Requirements\n\nThe `email` field must comply with strict validation rules to prevent errors during the issuance process:\n\n- Must contain only letters and numbers (no accents or special characters like á, é, etc.)\n \n- Allows only single separators: `.` (period), `_` (underscore), `-` (hyphen)\n \n- Cannot have consecutive separators (e.g., `..` or `--`)\n \n- Cannot start or end with separators\n \n- Domain must have at least 2 characters in the top-level domain (TLD)\n \n- Must not contain spaces or the `@` symbol except as the domain separator\n \n\n**Valid examples:**\n\n- `usuario@gmail.com`\n \n- `nombre.apellido@empresa.co`\n \n- `user_name@dominio.com`\n \n- `user-123@test.com.co`\n \n\n**Invalid examples:**\n\n- `usuario.@gmail.com` (separator at the end before @)\n \n- `user..name@domain.com` (consecutive separators)\n \n- `@domain.com` (missing local part)\n \n- `usuarioá@gmail.com` (contains accented characters)\n \n- `campohernández@gmail.com` (contains special characters with encoding issues)\n \n- `johndoe@---gmail.com` (multiple consecutive hyphens)\n \n\n### Address Format Requirements\n\nThe `address` field must comply with the following validation rules:\n\n### Validation Rules\n\n1. **Cannot start with numeric characters** - The first character after trimming cannot be a digit (0-9)\n2. **First character must be**:\n - A letter (uppercase or lowercase): `A-Z`, `a-z`\n - A vowel with Spanish acute accent: `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú`\n - The letter ñ/Ñ\n - The letter ü/Ü (with diaeresis)\n - A whitespace character (space, tab, etc.) — though after `trim()`, this is effectively not possible at the start\n3. **Subsequent characters (position 2 onwards) can be**:\n - All characters allowed for the first position, plus:\n - Digits: `0-9`\n - Special address characters: `#`, `-`, `.`, `,`\n\n### Allowed Characters Summary\n\n| Category | Characters |\n| --- | --- |\n| Letters (no accent) | `A-Z`, `a-z` |\n| Accented vowels | `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú` |\n| Special Spanish letters | `ñ`, `Ñ`, `ü`, `Ü` |\n| Digits (not at start) | `0-9` |\n| Whitespace | Space, tab, etc. |\n| Address symbols | `#`, `-`, `.`, `,` |\n\n### NOT Allowed Characters\n\n| Category | Examples |\n| --- | --- |\n| Other punctuation | `; : ! ? ¡ ¿ \" ' ( ) [ ] { }` |\n| Mathematical/monetary | `+ * / % = < > ^ ~ € $ @ &` |\n| Underscore and separators | `_ | \\` |\n| Other accented letters | `ç`, `ã`, `õ`, `ô`, `ä`, `ö`, `ê`, `â`, `î`, `û` |\n| Non-Latin alphabets | Cyrillic, Greek, Arabic, Chinese, etc. |\n| Emojis | 🙂 😁 🏠 |\n\n### Valid Examples\n\n- `Calle 123 #45-67`\n- `Carrera 7 Bis #8-24`\n- `Avenida Principal, Casa 5`\n- `Avenida Pérez Galdós`\n- `Av. Simón Bolívar 123`\n- `Cl 10 Sur #45-20`\n- `Urbanización La Ñora, Bloque 3`\n\n### Invalid Examples\n\n| Address | Reason |\n| --- | --- |\n| `123 Calle Principal` | Starts with a number |\n| `Calle @Principal` | Contains `@` (not allowed) |\n| `Dirección <>` | Contains angle brackets |\n| `Calle_45 #12-34` | Contains underscore `_` |\n| `Calle 5 #12-34!` | Contains exclamation mark `!` |\n| `Rua São Paulo 10` | Contains `ã` (not in allowed accents) |\n| `Avenida (Frente al parque)` | Contains parentheses `()` |\n \n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n> **Note:** According to the provider's official documentation, the `name` and `lastName` fields are mandatory. \n \n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `license`: (string, required) License plate of the vehicle.\n \n - `productId`: (string, required) Product identification (empty in this example).\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `document`: (string, required) User's document number. For NIT, this field must include the verification digit and must be sent **without hyphen (-)**.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `TariffCode`: (string, required) Tariff code.\n \n - `InsurancePremium`: (number, required) Insurance premium.\n \n - `InsuranceTax`: (number, required) Insurance tax.\n \n - `InsuranceFine`: (number, required) Insurance fine.\n \n - `Total`: (number, required) Total.\n \n - `TotalWithDiscountAmount`: (number, required) Total with discount amount.\n \n - `DiscountAmount`: (number, required) Discount amount.\n \n - `ElectricDiscount`: (numbe, requiredr) Electric discount.\n \n - `PercentageElectricDiscount`: (number, required) Percentage electric discount.\n \n - `InsurancePremiumFormatted`: (string, required) Formatted insurance premium.\n \n - `InsuranceTaxFormatted`: (string, required) Formatted insurance tax.\n \n - `InsuranceFineFormatted`: (string, required) Formatted insurance fine.\n \n - `TotalFormatted`: (string, required) Formatted total.\n \n - `DiscountAmountFormatted`: (string, required) Formatted discount amount.\n \n - `TotalWithDiscountAmountFormatted`: (string, required) Formatted total with discount amount.\n \n - `createdAt`: (string, required) Creation date.\n \n - `dateStart`: (string, required) Start date.\n \n - `dateEnd`: (string, required) End date.\n \n - `amount`: (number, required) Amount.\n \n - `amountDiscount`: (number, required) Discount amount.\n \n - `amountOthers`: (number, required) Other amounts.\n \n - `amountTotal`: (number, required) Total amount.\n \n - `hash`: (string, required) Hash.\n \n - `runt`: (number, required) Value for RUNT.\n \n - `codeFasecolda`: (number, required) Fasecolda code.\n \n - `typeCost`: (number, required) Cost type.\n \n - `Law2161Discount`: (number, required) Law 2161 discount.\n \n - `discount`: (number, required) Discount.\n \n - `vehDetail`: (object) Vehicle details.\n \n - `vehicleLineId`: (number, required) Vehicle line ID.\n \n - `vehicleClassId`: (number, required) Vehicle class ID.\n \n - `vehicleClassMinistryId`: (number, required) Vehicle class ID (Ministry).\n \n - `serviceTypeId`: (number, required) Service type ID.\n \n - `vehicleBodyTypeId`: (number, required) Vehicle body type ID.\n \n - `vehicleDescription`: (string, required) Vehicle description.\n \n - `vehDescription`: (string, required) Vehicle description.\n \n - `queryId`: (string, required) Query ID.\n \n - `noSerie`: (string, required) Serial number.\n \n - `noMotor`: (string, required) Motor number. If this field is empty, it must be filled with the value from the VIN field.\n \n - `noChasis`: (string, required) Chassis number.\n \n - `cc`: (number, required) Cubic centimeters.\n \n - `type`: (string, required) Type.\n \n - `gas`: (string, required) Gas.\n \n - `year`: (number, required) Year.\n \n - `passengers`: (number, required) Passengers.\n \n - `brand`: (string, required) Brand.\n \n - `brandId`: (number, required) Brand ID.\n \n - `vin`: (string, required) Vehicle identification number (VIN).\n \n - `lineCode`: (string, required) Line code.\n \n - `service`: (string, required) Service.\n \n - `zone`: (string, required) Zone.\n \n - `weight`: (number, required) Weight.\n \n - `cityId`: (number, required) City ID.\n \n - `userDetail`: (object, required) User details.\n \n - `name`: (string) User's name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `lastName`: (string, required) User's last name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `docNumber`: (string, required) User's document number.\n \n - `cellphone`: (string) User's cellphone number. Must be a valid Colombian cellphone number starting with \"3\" followed by exactly 9 digits (e.g., \"3001234567\").\n \n - `email`: (string, required) User's email. Must be a valid email address format (e.g., \"[user@domain.com](https://mailto:user@domain.com)\").\n \n - `phone`: (string) User's phone.\n \n - `docType`: (number, required) User's document type.\n \n - `address`: (string, required) User's address.\n \n - `cityCode`: (integer, required) User's city code.\n \n - `stateCode`: (integer, required) User's state code.\n \n - `addressType`: (number, required) User's address type.\n \n - `typePerson`: (string) Type of person (e.g., 'F' for natural person, 'J' for legal person).\n \n - `gender`: (string) User's gender.\n \n - `RegimenTypeId`: (string, required) User's regime type ID.\n \n - `RutId`: (number, required) User's RUT ID.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\n`Note`: If the VIN data is not available, the API will use the chassis number as a replacement.\n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. **This response will be returned within a timeout of 120,000 milliseconds (2 minutes).** In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer.\n\n"
|
|
47
|
+
"content": "# Previsora\n\nHere you will find all the endpoints related to the sale of SOAT PREVISORA.\n\n## Timeout Configuration\n\nThe following timeout values are configured for PREVISORA provider operations:\n\n| Provider | Min (seconds) | Max (seconds) | Timeout (seconds) |\n| --- | --- | --- | --- |\n| PREVISORA | 0 | 300 | 300 |\n\n**Important:**\n\nBased on the current operation of the insurance company **PREVISORA**, the waiting time (timeout) for sales processing has been adjusted to **5 minutes (300 seconds)**. This change addresses the need to ensure that all transactions are processed correctly, even in scenarios where delays may occur.\n\nIn addition, the API guarantees up to **2 automatic retries** in case a timeout occurs during processing. Although this behavior is not common in the API solution, it has been implemented to ensure the continuity and success of sales operations.\n\nIt is recommended to take this configuration into account when implementing integrations with PREVISORA services, in order to ensure proper error handling and an optimal user experience.\n\n## Test Environment\n\n### Available Test Scenarios\n\nTo test error scenarios and different response types, the following vehicle license plates are available:\n\n#### Error Handling\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| All | TIM001 | Timeout | Simulates timeout scenario |\n| All | ERR400 | System Error | Ocurrió un error inesperado. Consulte con el Administrador del sistema |\n| All | ERR401 | Authentication Error | No ha sido posible autenticarse, el token es incorrecto o el usuario no se encuentra activo |\n\n#### Quote Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Quote | ABC123 | Success Standard | Success: Vehículo, camioneta, bus |\n| Quote | ABC124 | Success with Discount | Standard vehicle with discount applied |\n| Quote | ABC125 | Electric Vehicle | Electric car pricing |\n| Quote | ABC126 | Law Discount | Legal discount application |\n| Quote | ABC127 | Transit Authority Error | La placa no está asociada a algún organismo de tránsito |\n\n#### Issue Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Issue | ABC123 | Success Standard | Success: Vehículo, camioneta, bus |\n| Issue | ABC124 | Success with Discount | Successfully issued with discount |\n\n#### Consult Operations\n\n| Method | Plate | Scenario | Description |\n| --- | --- | --- | --- |\n| Consult | ABC123 | Issued | Policy has been issued |\n| Consult | ABC124 | Not Issued | Policy has not been issued |\n\n### Usage Notes\n\n- **Test Plates**: Use the provided test plates to simulate different scenarios during development and testing\n \n- **Error Simulation**: TIM001 and ERR-prefixed plates are specifically designed to test error handling\n \n- **Success Flows**: ABC123 generally represents successful operations across different methods\n \n- **Edge Cases**: ABC124-ABC127 cover various business scenarios including discounts and restrictions\n \n- There is a complementary file containing additional test scenarios not listed in this documentation. You can access it here: [Additional Test Scenarios Folder](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n\n## Endpoints\n\n### query | Quote\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nThe following is an example of a SOAT insurance request for a vehicle. The following required data must be provided: productId (in this case, 1014006), queryType (in this case SOATFullData), document number and vehicle registration number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, vehDetail, and userDetail.\n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n\n- `documentType`: (number, required) Specifies the type of document. Allowed values:\n \n - `1`: CEDULA DE CIUDADANIA\n - `2`: CEDULA DE EXTRANJERIA\n - `3`: NIT\n - `4`: TARJETA DE IDENTIDAD\n \n- `document`: (string, required) The document number for identification purposes.\n \n Length validation rules based on `documentType`:\n \n - **For `documentType = 1` (CEDULA DE CIUDADANIA)**:\n - Minimum length: 7 numeric characters\n - Maximum length: 10 numeric characters\n \n - **For `documentType = 2` (CEDULA DE EXTRANJERIA)**:\n - Minimum length: 5 characters (alphanumeric allowed)\n - Maximum length: 15 characters (alphanumeric allowed)\n \n - **For `documentType = 3` (NIT)**:\n - Minimum length: 6 numeric characters (includes verification digit – VD)\n - Maximum length: 11 numeric characters (includes VD)\n - Must be sent **without hyphen (-)** and must include the verification digit.\n \n Additional rules based on length:\n - If length is 11, must start with \"1\" → (new CC + VD)\n - If length is 10, must start with \"8\" or \"9\" → (NIT + VD)\n - If length is 9 or less, can start with any digit → (old CC + VD)\n \n 💡 **VD (Verification Digit)**: A verification digit is a number mathematically calculated by DIAN (Dirección de Impuestos y Aduanas Nacionales) to validate that the NIT was entered correctly. It is included as part of the document number.\n \n - **For `documentType = 4` (TARJETA DE IDENTIDAD)**:\n - Minimum length: 10 numeric characters\n - Maximum length: 11 numeric characters\n \n \n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n### query | Consult\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n`Returns the information of the last policy issued for the license plate. If the policy is queried on days after its issuance, the service will not return the requested information. It is important to clarify that this endpoint does not retrieve failed sales in the system.`\n\n### Payload for Consult Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `queryType`: (string, required) Specifies the type of query to be performed, in this case have to be \\`SOATPolicy\\`.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n### sell | Previsora\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\n**Product restrictions**\n\n- Allows selling SOAT in the name of a person who is not the owner of the vehicle.\n \n- SOAT can be sold for a PRIVATE CAR.\n \n- SOAT can be sold for a PRIVATE MOTORCYCLE.\n \n- SOAT can be sold for a PUBLIC SERVICE VEHICLE.\n \n- SOAT cannot be sold to vehicles with 0 KM.\n \n- Sales hours are from 12:30 AM to 11:30 PM.\n \n- SOAT can be sold up to 30 days before its expiration.\n \n- The definition of the Administrative Cost and Commission for the sale of SOAT can be validated with your Refacil Commercial Advisor.\n \n- The insurance companies are directly responsible for sending the issued SOAT via email. The API provides a URL from the provider for downloading the SOAT.\n \n\nExample of a payment request for the Previsora product. The necessary information is provided, such as the productId (in this case, 1014006) and other relevant data, all attributes are mandatory.\n\n**Note:**\n\nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` Quote Service. The necessary data are as follows: `amount`, `vehDetail`, and `userDetail`.\n\nSome data obtained from the /products/query service may be null; however, this data is mandatory for the sale process and must be filled in.\n\nIn addition to the `userDetail` object, three additional attributes must be sent: `gender`, `RegimenTypeId`, and `RutId`.\n\nThe possible values for each of the aforementioned attributes are as follows:\n\n- `gender`:\n \n - M = Male\n \n - F = Female\n \n- `RegimenTypeId`:\n \n - 1 = Responsible for IVA\n \n - 2 = Not responsible for IVA\n \n- `RutId`:\n \n - 1 = Large taxpayer\n \n - 2 = Self-withholding agent\n \n - 3 = IVA withholding agent\n \n - 4 = Simple taxation regime\n \n - 5 = Not applicable\n \n - 6 = Large taxpayer-Self-withholding agent-IVA withholding agent\n \n - 7 = Self-withholding agent-IVA withholding agent\n \n - 8 = Large taxpayer-IVA withholding agent\n \n- `cityCode`: DANE code\n \n- `stateCode`: This field is populated based on the **state** sheet [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n- To check the values for the other parameters, please refer [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n\n## Field Validations\n\n### **Name and Last Name Format Requirements**\n\nThe validation rules for the `name` and `lastName` fields in the `userDetail` object depend on the person type:\n\n**For Natural Persons (Personas Naturales):**\n\n- Must contain only letters (uppercase and lowercase)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words (for compound names)\n \n- Minimum length of 3 characters\n \n- Does not allow numbers\n \n- Does not allow special characters such as `@`, `#`\n \n\n**For Legal Entities (Personas Jurídicas):**\n\n- Allows alphanumeric characters (letters and numbers)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words\n \n- Minimum length of 3 characters\n \n- Does not allow special characters such as `@`, `#`\n \n\n### Email Format Requirements\n\nThe `email` field must comply with strict validation rules to prevent errors during the issuance process:\n\n- Must contain only letters and numbers (no accents or special characters like á, é, etc.)\n \n- Allows only single separators: `.` (period), `_` (underscore), `-` (hyphen)\n \n- Cannot have consecutive separators (e.g., `..` or `--`)\n \n- Cannot start or end with separators\n \n- Domain must have at least 2 characters in the top-level domain (TLD)\n \n- Must not contain spaces or the `@` symbol except as the domain separator\n \n\n**Valid examples:**\n\n- `usuario@gmail.com`\n \n- `nombre.apellido@empresa.co`\n \n- `user_name@dominio.com`\n \n- `user-123@test.com.co`\n \n\n**Invalid examples:**\n\n- `usuario.@gmail.com` (separator at the end before @)\n \n- `user..name@domain.com` (consecutive separators)\n \n- `@domain.com` (missing local part)\n \n- `usuarioá@gmail.com` (contains accented characters)\n \n- `campohernández@gmail.com` (contains special characters with encoding issues)\n \n- `johndoe@---gmail.com` (multiple consecutive hyphens)\n \n\n### Address Format Requirements\n\nThe `address` field must comply with the following validation rules:\n\n### Validation Rules\n\n1. **Cannot start with numeric characters** - The first character after trimming cannot be a digit (0-9)\n2. **First character must be**:\n - A letter (uppercase or lowercase): `A-Z`, `a-z`\n - A vowel with Spanish acute accent: `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú`\n - The letter ñ/Ñ\n - The letter ü/Ü (with diaeresis)\n - A whitespace character (space, tab, etc.) — though after `trim()`, this is effectively not possible at the start\n3. **Subsequent characters (position 2 onwards) can be**:\n - All characters allowed for the first position, plus:\n - Digits: `0-9`\n - Special address characters: `#`, `-`, `.`, `,`\n\n### Allowed Characters Summary\n\n| Category | Characters |\n| --- | --- |\n| Letters (no accent) | `A-Z`, `a-z` |\n| Accented vowels | `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú` |\n| Special Spanish letters | `ñ`, `Ñ`, `ü`, `Ü` |\n| Digits (not at start) | `0-9` |\n| Whitespace | Space, tab, etc. |\n| Address symbols | `#`, `-`, `.`, `,` |\n\n### NOT Allowed Characters\n\n| Category | Examples |\n| --- | --- |\n| Other punctuation | `; : ! ? ¡ ¿ \" ' ( ) [ ] { }` |\n| Mathematical/monetary | `+ * / % = < > ^ ~ € $ @ &` |\n| Underscore and separators | `_ | \\` |\n| Other accented letters | `ç`, `ã`, `õ`, `ô`, `ä`, `ö`, `ê`, `â`, `î`, `û` |\n| Non-Latin alphabets | Cyrillic, Greek, Arabic, Chinese, etc. |\n| Emojis | 🙂 😁 🏠 |\n\n### Valid Examples\n\n- `Calle 123 #45-67`\n- `Carrera 7 Bis #8-24`\n- `Avenida Principal, Casa 5`\n- `Avenida Pérez Galdós`\n- `Av. Simón Bolívar 123`\n- `Cl 10 Sur #45-20`\n- `Urbanización La Ñora, Bloque 3`\n\n### Invalid Examples\n\n| Address | Reason |\n| --- | --- |\n| `123 Calle Principal` | Starts with a number |\n| `Calle @Principal` | Contains `@` (not allowed) |\n| `Dirección <>` | Contains angle brackets |\n| `Calle_45 #12-34` | Contains underscore `_` |\n| `Calle 5 #12-34!` | Contains exclamation mark `!` |\n| `Rua São Paulo 10` | Contains `ã` (not in allowed accents) |\n| `Avenida (Frente al parque)` | Contains parentheses `()` |\n \n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n> **Note:** According to the provider's official documentation, the `name` and `lastName` fields are mandatory. \n \n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `license`: (string, required) License plate of the vehicle.\n \n - `productId`: (string, required) Product identification (empty in this example).\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `document`: (string, required) User's document number. For NIT, this field must include the verification digit and must be sent **without hyphen (-)**.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `TariffCode`: (string, required) Tariff code.\n \n - `InsurancePremium`: (number, required) Insurance premium.\n \n - `InsuranceTax`: (number, required) Insurance tax.\n \n - `InsuranceFine`: (number, required) Insurance fine.\n \n - `Total`: (number, required) Total.\n \n - `TotalWithDiscountAmount`: (number, required) Total with discount amount.\n \n - `DiscountAmount`: (number, required) Discount amount.\n \n - `ElectricDiscount`: (numbe, requiredr) Electric discount.\n \n - `PercentageElectricDiscount`: (number, required) Percentage electric discount.\n \n - `InsurancePremiumFormatted`: (string, required) Formatted insurance premium.\n \n - `InsuranceTaxFormatted`: (string, required) Formatted insurance tax.\n \n - `InsuranceFineFormatted`: (string, required) Formatted insurance fine.\n \n - `TotalFormatted`: (string, required) Formatted total.\n \n - `DiscountAmountFormatted`: (string, required) Formatted discount amount.\n \n - `TotalWithDiscountAmountFormatted`: (string, required) Formatted total with discount amount.\n \n - `createdAt`: (string, required) Creation date.\n \n - `dateStart`: (string, required) Start date.\n \n - `dateEnd`: (string, required) End date.\n \n - `amount`: (number, required) Amount.\n \n - `amountDiscount`: (number, required) Discount amount.\n \n - `amountOthers`: (number, required) Other amounts.\n \n - `amountTotal`: (number, required) Total amount.\n \n - `hash`: (string, required) Hash.\n \n - `runt`: (number, required) Value for RUNT.\n \n - `codeFasecolda`: (number, required) Fasecolda code.\n \n - `typeCost`: (number, required) Cost type.\n \n - `Law2161Discount`: (number, required) Law 2161 discount.\n \n - `discount`: (number, required) Discount.\n \n - `vehDetail`: (object) Vehicle details.\n \n - `vehicleLineId`: (number, required) Vehicle line ID.\n \n - `vehicleClassId`: (number, required) Vehicle class ID. Defined by the SAME provider (SOAT – RUNT classification). Valid values:\n \n | Value | Description |\n | --- | --- |\n | 1 | MOTOS |\n | 2 | CAMPEROS O CAMIONETAS |\n | 3 | CARGA O MIXTO |\n | 4 | OFICIALES, ESPECIALES, BOMBEROS, DIPLOMÁTICOS |\n | 5 | AUTOMÓVILES FAMILIARES |\n | 6 | VEHÍCULO PARA 6 O MÁS PASAJEROS |\n | 7 | AUTOS DE NEGOCIOS, TAXIS, ALQUILER, ENSEÑANZA |\n | 8 | BUSES O BUSETAS |\n | 9 | INTERMUNICIPAL |\n | 12 | MOTOCARRO |\n | 13 | CICLOMOTOR |\n \n - `vehicleClassMinistryId`: (number, required) Vehicle class ID (Ministry).\n \n - `serviceTypeId`: (number, required) Service type ID.\n \n - `vehicleBodyTypeId`: (number, required) Vehicle body type ID.\n \n - `vehicleDescription`: (string, required) Vehicle description.\n \n - `vehDescription`: (string, required) Vehicle description.\n \n - `queryId`: (string, required) Query ID.\n \n - `noSerie`: (string, required) Serial number.\n \n - `noMotor`: (string, required) Motor number. If this field is empty, it must be filled with the value from the VIN field.\n \n - `noChasis`: (string, required) Chassis number.\n \n - `cc`: (number, required) Cubic centimeters.\n \n - `type`: (string, required) Type.\n \n - `gas`: (string, required) Gas.\n \n - `year`: (number, required) Year.\n \n - `passengers`: (number, required) Passengers.\n \n - `brand`: (string, required) Brand.\n \n - `brandId`: (number, required) Brand ID.\n \n - `vin`: (string, required) Vehicle identification number (VIN).\n \n - `lineCode`: (string, required) Line code.\n \n - `service`: (string, required) Service.\n \n - `zone`: (string, required) Zone.\n \n - `weight`: (number, required) Weight.\n \n - `cityId`: (number, required) City ID.\n \n - `userDetail`: (object, required) User details.\n \n - `name`: (string) User's name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `lastName`: (string, required) User's last name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `docNumber`: (string, required) User's document number.\n \n - `cellphone`: (string) User's cellphone number. Must be a valid Colombian cellphone number starting with \"3\" followed by exactly 9 digits (e.g., \"3001234567\").\n \n - `email`: (string, required) User's email. Must be a valid email address format (e.g., \"[user@domain.com](https://mailto:user@domain.com)\").\n \n - `phone`: (string) User's phone.\n \n - `docType`: (number, required) User's document type.\n \n - `address`: (string, required) User's address.\n \n - `cityCode`: (integer, required) User's city code.\n \n - `stateCode`: (integer, required) User's state code.\n \n - `addressType`: (number, required) User's address type.\n \n - `typePerson`: (string) Type of person (e.g., 'F' for natural person, 'J' for legal person).\n \n - `gender`: (string) User's gender.\n \n - `RegimenTypeId`: (string, required) User's regime type ID.\n \n - `RutId`: (number, required) User's RUT ID.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\n`Note`: If the VIN data is not available, the API will use the chassis number as a replacement.\n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. **This response will be returned within a timeout of 120,000 milliseconds (2 minutes).** In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer.\n\n"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"uri": "postman://collection/refacil-commerce-api/folder/luck-and-chance",
|
|
@@ -65,483 +65,224 @@ export const resources = [
|
|
|
65
65
|
"name": "Transfiya - Documentation",
|
|
66
66
|
"description": "Here you will find all the endpoints related to Transfiya correspondent selling.\n\n**Note:** The products associated with Transfiya Correspondent Sales have an administrative cost for each sale made. For more information, please contact your sales agent.\n\n## Webhook\n\nTo sell productos assicieated with Transfiya in mandatory implemnt the webhook. Throught the webhook the status of the transaction is notified. The webhook is a local Refacil proxy that forward the notifications requests to the final webhook.\n\n<img src=\"https://content.pstmn.io/cf2fe660-bd59-477e-8925-f9017ff37f6b/aW1hZ2UucG5n\" width=\"617\" height=\"398\">\n\n### Authentication\n\nThe JWT is generated with a public and private key. Refacil will provide a public key to validate the JWT. Here is an example to validate the JWT:\n\n``` typescript\nimport { verify } from 'jsonwebtoken';\nasync validateJwt(token: string): Promise<any> {\n const publicKey = 'the public key provided by Refacil...';\n try {\n const decoded = verify(token, publicKey, {\n algorithms: ['RS256'],\n });\n return {\n valid: true,\n message: 'Token is valid.',\n data: decoded,\n }; \n } catch (error) {\n if (error.name === 'JsonWebTokenError') {\n throw new ForbiddenException('Invalid token.');\n } else {\n throw new UnauthorizedException('Token verification failed.');\n }\n }\n}\n\n ```\n\n### Webhook request body\n\n``` json\n{\n \"saleId\": 438927666,\n \"status\": 0,\n \"transfiyaStatus\": \"PENDING\",\n \"reversed\": true,\n \"errorCode\": \"130\"\n}\n\n ```\n\n| **Parameter** | **Description** |\n| --- | --- |\n| `saleId` | ID of the sale returned by the sale request |\n| `status` | Indicates the status of the sale: <br>`0`: Failed <br>`1`: Successful <br>`9`: Pending |\n| `transfiyaStatus` | The TransfiYa status, see the details below |\n| `reversed` | This parameter is only used in deposits transactions. <br> <br>A boolean indicating if the balance was refunded to the POC: <br>`true`: Refunded <br>`false`: Not refunded <br> <br>When reversed is false, the balance was not refunded, and you should contact customer service using the contact details provided by your commercial agent |\n| `errorCode` | The error code of the transaction, see the list below |\n\n### Webhook request example\n\n``` bash\ncurl --location --globoff 'https://acme.refacil.local/transfiYaNotifications' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"saleId\": 438927666,\n \"status\": 0,\n \"transfiyaStatus\": \"REJECTED\",\n \"reversed\": true,\n \"errorCode\": \"TFYA302\"\n }'\n\n ```\n\n## TransfiYa Status\n\n| **transfiyaStatus** | **Withdrawal transaction status** | **Deposits transaction status** | Description |\n| --- | --- | --- | --- |\n| `CREATED` | `9`: Pending | `1`: Successful | Transfer is received and queued for processing. |\n| `PENDING` | `9`: Pending | `1`: Successful | Transfer is valid and is waiting for the target to accept it. |\n| `ACCEPTED` | `9`: Pending | `1`: Successful | Transfer has been accepted by the target, and payment is pending in the target bank. |\n| `COMPLETED` | `1`: Successful | `1`: Successful | The payment is valid and completely processed, visible in the receiving bank account. |\n| `REJECTED` | `0`: Failed | `1`: Successful | Payment was rejected. |\n| `ERROR` | `0`: Failed | `1`: Successful | An error occurred during payment. |\n\n### Transfer state machine\n\n<img src=\"https://content.pstmn.io/89f89557-2e1b-44c2-8dcb-d9e7d2f32c54/aW1hZ2UucG5n\" width=\"293\" height=\"380\">\n\n## Error Codes\n\n| Code | Description |\n| --- | --- |\n| TFYA307 | Cuenta inactiva |\n| TFYA309 | La cuenta no existe |\n| TFYA310 | La cuenta no está habilitada |\n| TFYA316 | Los datos transaccionales no son consistentes |\n| TFYA332 | Error bancario indefinido |",
|
|
67
67
|
"mimeType": "text/markdown",
|
|
68
|
-
"content": "# Transfiya\n\nHere you will find all the endpoints related to Transfiya correspondent selling.\n\n**Note:** The products associated with Transfiya Correspondent Sales have an administrative cost for each sale made. For more information, please contact your sales agent.\n\n## Webhook\n\nTo sell productos assicieated with Transfiya in mandatory implemnt the webhook. Throught the webhook the status of the transaction is notified. The webhook is a local Refacil proxy that forward the notifications requests to the final webhook.\n\n<img src=\"https://content.pstmn.io/cf2fe660-bd59-477e-8925-f9017ff37f6b/aW1hZ2UucG5n\" width=\"617\" height=\"398\">\n\n### Authentication\n\nThe JWT is generated with a public and private key. Refacil will provide a public key to validate the JWT. Here is an example to validate the JWT:\n\n``` typescript\nimport { verify } from 'jsonwebtoken';\nasync validateJwt(token: string): Promise<any> {\n const publicKey = 'the public key provided by Refacil...';\n try {\n const decoded = verify(token, publicKey, {\n algorithms: ['RS256'],\n });\n return {\n valid: true,\n message: 'Token is valid.',\n data: decoded,\n }; \n } catch (error) {\n if (error.name === 'JsonWebTokenError') {\n throw new ForbiddenException('Invalid token.');\n } else {\n throw new UnauthorizedException('Token verification failed.');\n }\n }\n}\n\n ```\n\n### Webhook request body\n\n``` json\n{\n \"saleId\": 438927666,\n \"status\": 0,\n \"transfiyaStatus\": \"PENDING\",\n \"reversed\": true,\n \"errorCode\": \"130\"\n}\n\n ```\n\n| **Parameter** | **Description** |\n| --- | --- |\n| `saleId` | ID of the sale returned by the sale request |\n| `status` | Indicates the status of the sale: <br>`0`: Failed <br>`1`: Successful <br>`9`: Pending |\n| `transfiyaStatus` | The TransfiYa status, see the details below |\n| `reversed` | This parameter is only used in deposits transactions. <br> <br>A boolean indicating if the balance was refunded to the POC: <br>`true`: Refunded <br>`false`: Not refunded <br> <br>When reversed is false, the balance was not refunded, and you should contact customer service using the contact details provided by your commercial agent |\n| `errorCode` | The error code of the transaction, see the list below |\n\n### Webhook request example\n\n``` bash\ncurl --location --globoff 'https://acme.refacil.local/transfiYaNotifications' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"saleId\": 438927666,\n \"status\": 0,\n \"transfiyaStatus\": \"REJECTED\",\n \"reversed\": true,\n \"errorCode\": \"TFYA302\"\n }'\n\n ```\n\n## TransfiYa Status\n\n| **transfiyaStatus** | **Withdrawal transaction status** | **Deposits transaction status** | Description |\n| --- | --- | --- | --- |\n| `CREATED` | `9`: Pending | `1`: Successful | Transfer is received and queued for processing. |\n| `PENDING` | `9`: Pending | `1`: Successful | Transfer is valid and is waiting for the target to accept it. |\n| `ACCEPTED` | `9`: Pending | `1`: Successful | Transfer has been accepted by the target, and payment is pending in the target bank. |\n| `COMPLETED` | `1`: Successful | `1`: Successful | The payment is valid and completely processed, visible in the receiving bank account. |\n| `REJECTED` | `0`: Failed | `1`: Successful | Payment was rejected. |\n| `ERROR` | `0`: Failed | `1`: Successful | An error occurred during payment. |\n\n### Transfer state machine\n\n<img src=\"https://content.pstmn.io/89f89557-2e1b-44c2-8dcb-d9e7d2f32c54/aW1hZ2UucG5n\" width=\"293\" height=\"380\">\n\n## Error Codes\n\n| Code | Description |\n| --- | --- |\n| TFYA307 | Cuenta inactiva |\n| TFYA309 | La cuenta no existe |\n| TFYA310 | La cuenta no está habilitada |\n| TFYA316 | Los datos transaccionales no son consistentes |\n| TFYA332 | Error bancario indefinido |\n\n## Endpoints\n\n### query\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n### Sell | Transfiya - Withdrawals\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n# Sucessful withdrawal process\n\n<img src=\"https://content.pstmn.io/73d6a308-4673-4a18-b603-56f04990312a/aW1hZ2UucG5n\" alt=\"Withdrawal%20secuence%20diagram\" width=\"844\" height=\"628\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User approves transaction:** The end-user approves the transaction through bank application.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user approves the transaction, **Transfiya** sends a notification to the **Refacil API** indicating the status of the transaction.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** of the transaction status, using a webhook mechanism. For each transaction state (in this case, PENDING), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Transaction processing (If completed):** If the transaction status changes to \"COMPLETED,\" the system processes the transaction by:\n\n- Adding balance to the user's account.\n \n- Processing commissions related to the transaction.\n \n\n# Failed withdrawal process\n\n<img src=\"https://content.pstmn.io/2205c66f-8681-40c4-8e40-50e6aa43d60f/aW1hZ2UucG5n\" width=\"767\" height=\"566\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User rejects the transaction:** The user rejects the transaction, causing the process to fail.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user rejects the transaction, **Transfiya** sends a notification back to the **Refacil API**, indicating that the transaction has been marked as failed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** using a webhook, providing details about the failed transaction.\n\n**Step 9: Transaction marked as failed:** If the transaction status changes to \"REJECTED,\" the transaction is officially marked as failed within the system.\n\n### Sell | Transfiya - Deposits\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\nFor deposits with the following numbers the following tests can be carried out.\n\nAutomatically approved: 3051000002\n\nAutomatically rejected: 3002491283\n\n## Sucessful deposit process\n\n<img src=\"https://content.pstmn.io/63835630-ee0d-4be2-952b-57c3d5c59ef6/aW1hZ2UucG5n\" alt=\"\" height=\"545\" width=\"763\">\n\n**Step 1: POC initiates a request:** The POC sends a request to the **Integrator** specifying a selected bank where the deposit should occur.\n\n**Step 2: Integrator sends request to Refacil API:** The **Integrator** forwards the deposit request to the **Refacil API** for processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create the transaction and process the deposit.\n\n**Step 4: Refacil API creates a successful transaction**: The **Refacil API** creates a successful transaction and debits the corresponding balance from the system.\n\n**Step 5: Transfiya validates and processes the transaction: Transfiya** validates the transaction and processes it successfully. It also makes sure that the transaction is ready for the deposit.\n\n**Step 6: Transfiya notifies and deposits to the selected bank: Transfiya** sends a notification that the deposit is successful and proceeds to deposit the amount to the selected bank account.\n\n**Step 7: Refacil API receives a notification from Transfiya: Transfiya** sends a notification back to the **Refacil API** indicating that the transaction has been successfully completed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the Integrator of the transaction status, using a webhook mechanism. For each transaction state (in this case, COMPLETED), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Process commissions:** If the transaction status changes to \"COMPLETED,\" The system processes commissions related to the transaction after the deposit is made.\n\n# Failed deposit process\n\n<img src=\"https://content.pstmn.io/52fc69a9-4395-4759-bae5-b13ec66cfe45/aW1hZ2UucG5n\" width=\"785\" height=\"574\">\n\n**Step 1: POC requests a deposit to a selected bank**: The **POC** initiates a deposit request to the **Integrator**, specifying the selected bank.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** sends the deposit request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends a request to Transfiya:** The **Refacil API** forwards the request to **Transfiya** to process the transaction.\n\n**Step 4: Refacil API creates a \"successful\" transaction and debits the balance:** At this stage, the **Refacil API** debits the balance, assuming the transaction will be successful, and awaits confirmation from **Transfiya**.\n\n**Step 5: Transfiya validates the transaction and marks it as failed:** **Transfiya** processes the transaction but finds an issue that causes the transaction to fail. It returns this failed status to the **Refacil API**.\n\n**Step 6: Refacil API notifies Integrator via webhook:** The Refacil API sends a webhook notification to the Integrator, informing them that the transaction has failed. The `errorCode` provides the reason for the failure, while the `reversed` field indicates whether the balance has been refunded.\n\n**Step 7: Handling the reversal:** If the `reversed` field is `false`, the system will need to manually create a ticket to refund the balance to the POC.\n\n**Step 8: Processing error and refund:** If the error is marked as reversed (`reversed: true`), two actions will be taken:\n\n- **Refund the balance**: The debited amount is returned to the user's account.\n \n- **No commission processing**: Since the transaction failed, no commissions are processed for this transaction.\n\n"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/admin/update-balance",
|
|
72
|
-
"name": "POST /admin/update-balance - Endpoint Documentation",
|
|
73
|
-
"description": "---\n\n### Description\n\nIt allows you to transfer funds from the main users money bag to the bag of the user who is being added. The token of the user who will be the beneficiary and the amount must be added.\n\n---\n\n### Request Body\n\n- userToken (string, required): The user token for which the balance will be updated\n \n- amount (number, required): Amount to be updated\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data.",
|
|
74
|
-
"mimeType": "text/markdown",
|
|
75
|
-
"content": "# update-balance\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/admin/update-balance`\n\n## Description\n\n---\n\n### Description\n\nIt allows you to transfer funds from the main users money bag to the bag of the user who is being added. The token of the user who will be the beneficiary and the amount must be added.\n\n---\n\n### Request Body\n\n- userToken (string, required): The user token for which the balance will be updated\n \n- amount (number, required): Amount to be updated\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"userToken\": \"MTcyNDY4NjE1MDY3OSQyYiQxMCRLeXZWVS9zdkF0ZzhPNTdoa1Z0dXVlME9mTHlVOWNacWREY1llUDIyL0k4N2hpazdKVmZFU***\",\n \"amount\": 500\n}\n```\n\n"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/admin/locations/states",
|
|
79
|
-
"name": "GET /admin/locations/states - Endpoint Documentation",
|
|
80
|
-
"description": "---\n\n### Description\n\nGet all states, then you can search cities by state id in the /locations/cities/{stateId} service\n\n---\n\n### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `items`: Array of objects containing the states",
|
|
81
|
-
"mimeType": "text/markdown",
|
|
82
|
-
"content": "# states\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/admin/locations/states`\n\n## Description\n\n---\n\n### Description\n\nGet all states, then you can search cities by state id in the /locations/cities/{stateId} service\n\n---\n\n### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `items`: Array of objects containing the states\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/admin/locations/cities",
|
|
86
|
-
"name": "GET /admin/locations/cities/:stateId - Endpoint Documentation",
|
|
87
|
-
"description": "---\n\n### Description\n\nGet all cities by state id\n\n---\n\n### Parameters Path\n\n- stateId (number, required): State Id\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `items`: Array of objects containing the cities by state id",
|
|
88
|
-
"mimeType": "text/markdown",
|
|
89
|
-
"content": "# cities\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/admin/locations/cities/:stateId`\n\n## Description\n\n---\n\n### Description\n\nGet all cities by state id\n\n---\n\n### Parameters Path\n\n- stateId (number, required): State Id\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `items`: Array of objects containing the cities by state id\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
68
|
+
"content": "# Transfiya\n\nHere you will find all the endpoints related to Transfiya correspondent selling.\n\n**Note:** The products associated with Transfiya Correspondent Sales have an administrative cost for each sale made. For more information, please contact your sales agent.\n\n## Webhook\n\nTo sell productos assicieated with Transfiya in mandatory implemnt the webhook. Throught the webhook the status of the transaction is notified. The webhook is a local Refacil proxy that forward the notifications requests to the final webhook.\n\n<img src=\"https://content.pstmn.io/cf2fe660-bd59-477e-8925-f9017ff37f6b/aW1hZ2UucG5n\" width=\"617\" height=\"398\">\n\n### Authentication\n\nThe JWT is generated with a public and private key. Refacil will provide a public key to validate the JWT. Here is an example to validate the JWT:\n\n``` typescript\nimport { verify } from 'jsonwebtoken';\nasync validateJwt(token: string): Promise<any> {\n const publicKey = 'the public key provided by Refacil...';\n try {\n const decoded = verify(token, publicKey, {\n algorithms: ['RS256'],\n });\n return {\n valid: true,\n message: 'Token is valid.',\n data: decoded,\n }; \n } catch (error) {\n if (error.name === 'JsonWebTokenError') {\n throw new ForbiddenException('Invalid token.');\n } else {\n throw new UnauthorizedException('Token verification failed.');\n }\n }\n}\n\n ```\n\n### Webhook request body\n\n``` json\n{\n \"saleId\": 438927666,\n \"status\": 0,\n \"transfiyaStatus\": \"PENDING\",\n \"reversed\": true,\n \"errorCode\": \"130\"\n}\n\n ```\n\n| **Parameter** | **Description** |\n| --- | --- |\n| `saleId` | ID of the sale returned by the sale request |\n| `status` | Indicates the status of the sale: <br>`0`: Failed <br>`1`: Successful <br>`9`: Pending |\n| `transfiyaStatus` | The TransfiYa status, see the details below |\n| `reversed` | This parameter is only used in deposits transactions. <br> <br>A boolean indicating if the balance was refunded to the POC: <br>`true`: Refunded <br>`false`: Not refunded <br> <br>When reversed is false, the balance was not refunded, and you should contact customer service using the contact details provided by your commercial agent |\n| `errorCode` | The error code of the transaction, see the list below |\n\n### Webhook request example\n\n``` bash\ncurl --location --globoff 'https://acme.refacil.local/transfiYaNotifications' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"saleId\": 438927666,\n \"status\": 0,\n \"transfiyaStatus\": \"REJECTED\",\n \"reversed\": true,\n \"errorCode\": \"TFYA302\"\n }'\n\n ```\n\n## TransfiYa Status\n\n| **transfiyaStatus** | **Withdrawal transaction status** | **Deposits transaction status** | Description |\n| --- | --- | --- | --- |\n| `CREATED` | `9`: Pending | `1`: Successful | Transfer is received and queued for processing. |\n| `PENDING` | `9`: Pending | `1`: Successful | Transfer is valid and is waiting for the target to accept it. |\n| `ACCEPTED` | `9`: Pending | `1`: Successful | Transfer has been accepted by the target, and payment is pending in the target bank. |\n| `COMPLETED` | `1`: Successful | `1`: Successful | The payment is valid and completely processed, visible in the receiving bank account. |\n| `REJECTED` | `0`: Failed | `1`: Successful | Payment was rejected. |\n| `ERROR` | `0`: Failed | `1`: Successful | An error occurred during payment. |\n\n### Transfer state machine\n\n<img src=\"https://content.pstmn.io/89f89557-2e1b-44c2-8dcb-d9e7d2f32c54/aW1hZ2UucG5n\" width=\"293\" height=\"380\">\n\n## Error Codes\n\n| Code | Description |\n| --- | --- |\n| TFYA307 | Cuenta inactiva |\n| TFYA309 | La cuenta no existe |\n| TFYA310 | La cuenta no está habilitada |\n| TFYA316 | Los datos transaccionales no son consistentes |\n| TFYA332 | Error bancario indefinido |\n\n## Endpoints\n\n### query\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n### Sell | Transfiya - Withdrawals\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n# Sucessful withdrawal process\n\n<img src=\"https://content.pstmn.io/73d6a308-4673-4a18-b603-56f04990312a/aW1hZ2UucG5n\" alt=\"Withdrawal%20secuence%20diagram\" width=\"844\" height=\"628\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User approves transaction:** The end-user approves the transaction through bank application.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user approves the transaction, **Transfiya** sends a notification to the **Refacil API** indicating the status of the transaction.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** of the transaction status, using a webhook mechanism. For each transaction state (in this case, PENDING), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Transaction processing (If completed):** If the transaction status changes to \"COMPLETED,\" the system processes the transaction by:\n\n- Adding balance to the user's account.\n \n- Processing commissions related to the transaction.\n \n\n# Failed withdrawal process\n\n<img src=\"https://content.pstmn.io/2205c66f-8681-40c4-8e40-50e6aa43d60f/aW1hZ2UucG5n\" width=\"767\" height=\"566\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User rejects the transaction:** The user rejects the transaction, causing the process to fail.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user rejects the transaction, **Transfiya** sends a notification back to the **Refacil API**, indicating that the transaction has been marked as failed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** using a webhook, providing details about the failed transaction.\n\n**Step 9: Transaction marked as failed:** If the transaction status changes to \"REJECTED,\" the transaction is officially marked as failed within the system.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the transaction amount in cents (required)\n \n- `webhookUrl`: String containing the URL to receive transaction status notifications (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `bankName`: String containing the target bank name (required)\n \n\n---\n\n### Test Phone Numbers\n\nUse the following phone numbers to simulate successful or failed withdrawal transactions in the testing environment:\n\n| Phone Number | Expected Result |\n|--------------|----------------|\n| 3051000090 | Successful |\n| 3051000080 | Failed |\n\n### Sell | Transfiya - Deposits\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\nFor deposits with the following numbers the following tests can be carried out.\n\nAutomatically approved: 3051000002\n\nAutomatically rejected: 3002491283\n\n## Sucessful deposit process\n\n<img src=\"https://content.pstmn.io/63835630-ee0d-4be2-952b-57c3d5c59ef6/aW1hZ2UucG5n\" alt=\"\" height=\"545\" width=\"763\">\n\n**Step 1: POC initiates a request:** The POC sends a request to the **Integrator** specifying a selected bank where the deposit should occur.\n\n**Step 2: Integrator sends request to Refacil API:** The **Integrator** forwards the deposit request to the **Refacil API** for processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create the transaction and process the deposit.\n\n**Step 4: Refacil API creates a successful transaction**: The **Refacil API** creates a successful transaction and debits the corresponding balance from the system.\n\n**Step 5: Transfiya validates and processes the transaction: Transfiya** validates the transaction and processes it successfully. It also makes sure that the transaction is ready for the deposit.\n\n**Step 6: Transfiya notifies and deposits to the selected bank: Transfiya** sends a notification that the deposit is successful and proceeds to deposit the amount to the selected bank account.\n\n**Step 7: Refacil API receives a notification from Transfiya: Transfiya** sends a notification back to the **Refacil API** indicating that the transaction has been successfully completed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the Integrator of the transaction status, using a webhook mechanism. For each transaction state (in this case, COMPLETED), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Process commissions:** If the transaction status changes to \"COMPLETED,\" The system processes commissions related to the transaction after the deposit is made.\n\n# Failed deposit process\n\n<img src=\"https://content.pstmn.io/52fc69a9-4395-4759-bae5-b13ec66cfe45/aW1hZ2UucG5n\" width=\"785\" height=\"574\">\n\n**Step 1: POC requests a deposit to a selected bank**: The **POC** initiates a deposit request to the **Integrator**, specifying the selected bank.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** sends the deposit request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends a request to Transfiya:** The **Refacil API** forwards the request to **Transfiya** to process the transaction.\n\n**Step 4: Refacil API creates a \"successful\" transaction and debits the balance:** At this stage, the **Refacil API** debits the balance, assuming the transaction will be successful, and awaits confirmation from **Transfiya**.\n\n**Step 5: Transfiya validates the transaction and marks it as failed:** **Transfiya** processes the transaction but finds an issue that causes the transaction to fail. It returns this failed status to the **Refacil API**.\n\n**Step 6: Refacil API notifies Integrator via webhook:** The Refacil API sends a webhook notification to the Integrator, informing them that the transaction has failed. The `errorCode` provides the reason for the failure, while the `reversed` field indicates whether the balance has been refunded.\n\n**Step 7: Handling the reversal:** If the `reversed` field is `false`, the system will need to manually create a ticket to refund the balance to the POC.\n\n**Step 8: Processing error and refund:** If the error is marked as reversed (`reversed: true`), two actions will be taken:\n\n- **Refund the balance**: The debited amount is returned to the user's account.\n \n- **No commission processing**: Since the transaction failed, no commissions are processed for this transaction.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the deposit amount in cents (required)\n \n- `webhookUrl`: String containing the URL to receive transaction status notifications (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `bankName`: String containing the target bank name for the deposit (required)\n \n\n---\n\n### Test Phone Numbers\n\nUse the following phone numbers to simulate successful or failed deposit transactions in the testing environment:\n\n| Phone Number | Expected Result |\n|--------------|----------------|\n| 3051000002 | Successful |\n| 3002491283 | Failed |\n\n"
|
|
90
69
|
},
|
|
91
70
|
{
|
|
92
71
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/auth/login-api",
|
|
93
72
|
"name": "POST /auth/login-api - Endpoint Documentation",
|
|
94
|
-
"description": "---\n\n# API Login\n\n---\n\n### Description\n\nAllows API users to log in using their credentials. This operation authenticates the
|
|
95
|
-
"mimeType": "text/markdown",
|
|
96
|
-
"content": "# login-api\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/auth/login-api`\n\n## Description\n\n---\n\n# API Login\n\n---\n\n### Description\n\nAllows API users to log in using their credentials. This operation authenticates the API user using the information provided in the request body. If the credentials are valid, an access token is issued, which must be included in subsequent requests to access protected resources on the platform. Make sure to include the token in the authorization header using the \"Bearer\" prefix in future requests. The response will include the token type (\"Bearer\") and the access token.\n\n---\n\n### Request Body\n\n- `username` (string) `required`\\- Username for authentication.\n \n- `secretKey` (string) `required`\\- Secret key for authentication\n \n- `saveSession` (boolean) - Flag that, if sent as `false`, allows the generated token to have an expiration of 12 hours.\n \n\n---\n\n### Response\n\n- `messageCode` (string) - Code for the message.\n \n- `message` (string) - The message from the response.\n \n- `data`\n \n - `tokenType` (string) - Type of the token (e.g., \"Bearer\").\n \n - `token` (string) - The access code. It will not expire, unless the `saveSession` field is sent with the value `false`.\n\n## Headers\n\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"username\": \"{{username}}\",\n \"secretKey\": \"{{secretKey}}\"\n}\n```\n\n"
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/commerce/register",
|
|
100
|
-
"name": "POST /commerce/register - Endpoint Documentation",
|
|
101
|
-
"description": "---\n\n### Register Commerce\n\n---\n\n#### Description\n\nRegisters a new commerce in the system using the information provided in the request body. This method returns a response that includes the unique identifier of the user associated with the commerce.\n\n---\n\n#### Request Body\n\n- `name` (string) `required`: Owner's name of the commerce.\n \n- `lastname` (string) `required`: Owner's last name of the commerce\n \n- `docType` (string)`required`: Document type of the commerce owner.\n \n- `docNumber` (string)`required`: Document number of the commerce owner.\n \n- expeditionDate (string): Expedition date of the document of the commerce owner. The date must have the following structure YYYY-MM-DD\n \n- `username` (string)`required`: Username of the commerce owner.\n \n- `cellphone` (string)`required`: Commerce owner's mobile phone number. Please enter a valid mobile phone number for Colombia. It must contain 10 digits and start with the prefix '3'.\n \n- `email` (string)`required`: Commerce owner's email.\n \n- `commerceType` (number): Identifier of the commerce type. To get valid values, consult the /base-info/commerce-types service. Make sure to provide a valid number for this field. This field is optional, and if not provided, it will default to \"1,\" which corresponds to the \"Store\" commerce type.\n \n- `commerceName` (string)`required`: The name of the commerce.\n \n- latitude (number): Latitude of the commerce location.\n \n- longitude (number): Longitude of the commerce location.\n \n- `address` (string)`required`: Commerce address. Since the field is of type string, the address can be provided in any standard format.\n \n- `cityName` (string)`required`: City name where the commerce is located. It is recommended to enter only valid city names. If no matches are found, 'Bogota' will be used as the default city.\n \n\n---\n\n#### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): An object containing the following fields:\n \n - `tokenType` (string): The type of token.\n \n - `token` (string): The token for authentication. It will not expire.\n \n - `userId` (number): The unique identifier of the user associated with the commerce.\n \n - `message` (string): A message related to the response.",
|
|
102
|
-
"mimeType": "text/markdown",
|
|
103
|
-
"content": "# register\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/commerce/register`\n\n## Description\n\n---\n\n### Register Commerce\n\n---\n\n#### Description\n\nRegisters a new commerce in the system using the information provided in the request body. This method returns a response that includes the unique identifier of the user associated with the commerce.\n\n---\n\n#### Request Body\n\n- `name` (string) `required`: Owner's name of the commerce.\n \n- `lastname` (string) `required`: Owner's last name of the commerce\n \n- `docType` (string)`required`: Document type of the commerce owner.\n \n- `docNumber` (string)`required`: Document number of the commerce owner.\n \n- expeditionDate (string): Expedition date of the document of the commerce owner. The date must have the following structure YYYY-MM-DD\n \n- `username` (string)`required`: Username of the commerce owner.\n \n- `cellphone` (string)`required`: Commerce owner's mobile phone number. Please enter a valid mobile phone number for Colombia. It must contain 10 digits and start with the prefix '3'.\n \n- `email` (string)`required`: Commerce owner's email.\n \n- `commerceType` (number): Identifier of the commerce type. To get valid values, consult the /base-info/commerce-types service. Make sure to provide a valid number for this field. This field is optional, and if not provided, it will default to \"1,\" which corresponds to the \"Store\" commerce type.\n \n- `commerceName` (string)`required`: The name of the commerce.\n \n- latitude (number): Latitude of the commerce location.\n \n- longitude (number): Longitude of the commerce location.\n \n- `address` (string)`required`: Commerce address. Since the field is of type string, the address can be provided in any standard format.\n \n- `cityName` (string)`required`: City name where the commerce is located. It is recommended to enter only valid city names. If no matches are found, 'Bogota' will be used as the default city.\n \n\n---\n\n#### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): An object containing the following fields:\n \n - `tokenType` (string): The type of token.\n \n - `token` (string): The token for authentication. It will not expire.\n \n - `userId` (number): The unique identifier of the user associated with the commerce.\n \n - `message` (string): A message related to the response.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"name\": \"Morty\",\n \"lastname\": \"Smithz\",\n \"docType\": \"CC\",\n \"docNumber\": \"1141455771\",\n \"username\": \"mortySmith12A2\",\n \"cellphone\": \"3200000120\",\n \"email\": \"mortySmiths2@gmail.com\",\n \"commerceType\": 1,\n \"commerceName\": \"Morty's Store 3\",\n \"address\": \"fake street 123\",\n \"cityName\": \"Bogota\",\n \"balance\": \"200\"\n}\n```\n\n"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/commerce/get-info",
|
|
107
|
-
"name": "POST /commerce/get-info - Endpoint Documentation",
|
|
108
|
-
"description": "---\n\n### Description\n\nRetrieve detailed information about a commerce using its identification. This operation requires sending an object in the request body with the \"userId\" property specifying the user ID. The response will include information about balances, additional data, and more. Balances include: \"tmpBalance\" (Earnings Bag), \"posBalance\" (Multiproduct Bag), and \"debt\" (Debt Bag).\n\n---\n\n### Request Body\n\n- userId (number, required): The user ID for which detailed information is to be retrieved.\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `additionalData`: Object containing user-related data (required)\n \n - `username`: String representing the username (required)\n \n - `token`: String representing the token. It will not expire. (required)\n \n - `balances`: Object containing balance-related data (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `posBalance`: Number representing the balance after the operation (required) \n debt: Number representing the debt amount (required)",
|
|
109
|
-
"mimeType": "text/markdown",
|
|
110
|
-
"content": "# get-info\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/commerce/get-info`\n\n## Description\n\n---\n\n### Description\n\nRetrieve detailed information about a commerce using its identification. This operation requires sending an object in the request body with the \"userId\" property specifying the user ID. The response will include information about balances, additional data, and more. Balances include: \"tmpBalance\" (Earnings Bag), \"posBalance\" (Multiproduct Bag), and \"debt\" (Debt Bag).\n\n---\n\n### Request Body\n\n- userId (number, required): The user ID for which detailed information is to be retrieved.\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `additionalData`: Object containing user-related data (required)\n \n - `username`: String representing the username (required)\n \n - `token`: String representing the token. It will not expire. (required)\n \n - `balances`: Object containing balance-related data (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `posBalance`: Number representing the balance after the operation (required) \n debt: Number representing the debt amount (required)\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"userId\": 348130\n}\n```\n\n"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/commerce/users",
|
|
114
|
-
"name": "GET /commerce/users - Endpoint Documentation",
|
|
115
|
-
"description": "---\n\n### Description\n\nRetrieve a list of users associated with a commerce using the token provided in the request header. This method supports pagination and search by name or user id.\n\n---\n\n### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `items`: Array of objects containing the users associated with the commerce",
|
|
116
|
-
"mimeType": "text/markdown",
|
|
117
|
-
"content": "# users\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/commerce/users`\n\n## Description\n\n---\n\n### Description\n\nRetrieve a list of users associated with a commerce using the token provided in the request header. This method supports pagination and search by name or user id.\n\n---\n\n### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `items`: Array of objects containing the users associated with the commerce\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/commerce/updatebalance",
|
|
121
|
-
"name": "POST /commerce/updateBalance - Endpoint Documentation",
|
|
122
|
-
"description": "---\n\n### Update Commerce Balance\n\n---\n\n#### Description\n\n**UpdateBalance:**\n\nThis service allows loading balance to the different merchants created, by deducting from the Parent Merchant’s balance pool. The transactions generated will be reflected in the reports assigned to the merchant within the portal provided by Super Pagos.\n\nThe required sending parameters are the token and ID, which were returned when the merchant was created.\n\n---\n\n#### Request Body Schema\n\n- `token` (string)`required`: Owner's balance of the commerce.\n \n- `balance` (number)`required`: Owner's balance of the commerce.\n \n\n---\n\n#### Response Body Schema\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.",
|
|
123
|
-
"mimeType": "text/markdown",
|
|
124
|
-
"content": "# updateBalance\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/commerce/updateBalance`\n\n## Description\n\n---\n\n### Update Commerce Balance\n\n---\n\n#### Description\n\n**UpdateBalance:**\n\nThis service allows loading balance to the different merchants created, by deducting from the Parent Merchant’s balance pool. The transactions generated will be reflected in the reports assigned to the merchant within the portal provided by Super Pagos.\n\nThe required sending parameters are the token and ID, which were returned when the merchant was created.\n\n---\n\n#### Request Body Schema\n\n- `token` (string)`required`: Owner's balance of the commerce.\n \n- `balance` (number)`required`: Owner's balance of the commerce.\n \n\n---\n\n#### Response Body Schema\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"token\": \"MTcyNDY4NjE1MDY3OSQyYiQxMCRLeXZWVS9zdkF0ZzhPNTdoa1Z0dXVlME9mTHlVOWNacWREY1llUDIyL0k4N2hpazdKVmZFUw==\",\n \"balance\": 1300\n}\n```\n\n"
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/base-info/commerce-types",
|
|
128
|
-
"name": "GET /base-info/commerce-types - Endpoint Documentation",
|
|
129
|
-
"description": "---\n\n### Retrieve Commerce Types\n\n---\n\n#### Description\n\nRetrieve the available commerce types in the application. This operation provides detailed information about the different types of commercial establishments that can operate on the platform.\n\n---\n\n#### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n#### Response Body\n\n- `message` (string): A message indicating the status of the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (array): An array containing the commerce types information.\n \n - `id` (number): The unique identifier for the commerce type.\n \n - `name` (string): The name of the commerce type.",
|
|
130
|
-
"mimeType": "text/markdown",
|
|
131
|
-
"content": "# commerce-types\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/base-info/commerce-types`\n\n## Description\n\n---\n\n### Retrieve Commerce Types\n\n---\n\n#### Description\n\nRetrieve the available commerce types in the application. This operation provides detailed information about the different types of commercial establishments that can operate on the platform.\n\n---\n\n#### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n#### Response Body\n\n- `message` (string): A message indicating the status of the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (array): An array containing the commerce types information.\n \n - `id` (number): The unique identifier for the commerce type.\n \n - `name` (string): The name of the commerce type.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/report/details",
|
|
135
|
-
"name": "GET /report/details - Endpoint Documentation",
|
|
136
|
-
"description": "---\n\n### Retrieve Commerce Report Details\n\n---\n\n#### Description\n\nGet details to build a report. This service is responsible for returning the necessary details to generate a report. To provide more context about the service, it will return an array of objects. Each object in this array will contain attributes that are essential for the construction of a report. These attributes may include, but are not limited to, type of report, the bag to consult, options to load in a select and other relevant data that are needed for a complete and detailed report. The use of this method will facilitate the generation of reports by providing all the necessary data in a structured and easy-to-use way.\n\n---\n\n#### Request Body\n\n- No request body is required for this GET request.\n \n\n---\n\n#### Response Body\n\n- `description` (string, optional): Description of the commerce report.\n \n- `form` (object):\n \n - `fields` (array):\n \n - `name` (string): Name of the field.\n \n - `type` (string): Type of the field.\n \n - `options` (array):\n \n - `label` (string): Label for the option.\n \n - `value` (null): Value of the option.\n \n - `label` (string): Label for the field.\n \n - `placeholder` (string): Placeholder for the field.\n \n - `required` (boolean): Indicates if the field is required.\n \n - `bag` (string): Bag information.\n \n - `typeReport` (string): Type of the report.\n \n- `endpoint` (string): The endpoint for the commerce report generate.",
|
|
137
|
-
"mimeType": "text/markdown",
|
|
138
|
-
"content": "# details\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/report/details`\n\n## Description\n\n---\n\n### Retrieve Commerce Report Details\n\n---\n\n#### Description\n\nGet details to build a report. This service is responsible for returning the necessary details to generate a report. To provide more context about the service, it will return an array of objects. Each object in this array will contain attributes that are essential for the construction of a report. These attributes may include, but are not limited to, type of report, the bag to consult, options to load in a select and other relevant data that are needed for a complete and detailed report. The use of this method will facilitate the generation of reports by providing all the necessary data in a structured and easy-to-use way.\n\n---\n\n#### Request Body\n\n- No request body is required for this GET request.\n \n\n---\n\n#### Response Body\n\n- `description` (string, optional): Description of the commerce report.\n \n- `form` (object):\n \n - `fields` (array):\n \n - `name` (string): Name of the field.\n \n - `type` (string): Type of the field.\n \n - `options` (array):\n \n - `label` (string): Label for the option.\n \n - `value` (null): Value of the option.\n \n - `label` (string): Label for the field.\n \n - `placeholder` (string): Placeholder for the field.\n \n - `required` (boolean): Indicates if the field is required.\n \n - `bag` (string): Bag information.\n \n - `typeReport` (string): Type of the report.\n \n- `endpoint` (string): The endpoint for the commerce report generate.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/report/generate",
|
|
142
|
-
"name": "POST /report/generate - Endpoint Documentation",
|
|
143
|
-
"description": "---\n\n### Sales report\n\n---\n\n#### Description\n\nThis service is responsible for generating different types of reports depending on the filters that are sent.\n\n#### Request Body\n\n- `filters` (object, `required`): Filters for the report\n \n - `dateStart` (string, `required`)\n \n - `dateEnd` (string, `required`)\n \n - `carrierId` (null, optional)\n \n - `number` (string, optional)\n \n - `status` (string, optional)\n \n - `bag` (string, optional)\n \n- `typeReport` (string, required): Type of the report\n \n\n---\n\n#### Response\n\n- `messageCode` (string)\n \n- `message` (string)\n \n- `data` (object)\n \n - `title` (string)\n \n - `header` (array of strings)\n \n - `data` (array of arrays)",
|
|
144
|
-
"mimeType": "text/markdown",
|
|
145
|
-
"content": "# generate - sales report\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/report/generate`\n\n## Description\n\n---\n\n### Sales report\n\n---\n\n#### Description\n\nThis service is responsible for generating different types of reports depending on the filters that are sent.\n\n#### Request Body\n\n- `filters` (object, `required`): Filters for the report\n \n - `dateStart` (string, `required`)\n \n - `dateEnd` (string, `required`)\n \n - `carrierId` (null, optional)\n \n - `number` (string, optional)\n \n - `status` (string, optional)\n \n - `bag` (string, optional)\n \n- `typeReport` (string, required): Type of the report\n \n\n---\n\n#### Response\n\n- `messageCode` (string)\n \n- `message` (string)\n \n- `data` (object)\n \n - `title` (string)\n \n - `header` (array of strings)\n \n - `data` (array of arrays)\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"filters\": {\n \"dateStart\": \"2024-01-29\",\n \"dateEnd\": \"2024-02-28\",\n \"carrierId\": null,\n \"number\": \"\",\n \"status\": \"approve\",\n \"bag\": \"posBalance\"\n },\n \"typeReport\": \"moves\"\n}\n```\n\n"
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/report/generate",
|
|
149
|
-
"name": "POST /report/generate - Endpoint Documentation",
|
|
150
|
-
"description": "---\n\n# Purchase report\n\n---\n\n### Description\n\nThis service is responsible for generating different types of reports depending on the filters that are sent.\n\n---\n\n## Request Body\n\n- `filters` (object, `required`): Filters for the report\n \n - `dateStart` (string, `required`): Start date for the report.\n \n - `dateEnd` (string, `required`): End date for the report.\n \n - `carrierId` (string, optional): ID of the carrier.\n \n - `number` (string, optional): Commerce number.\n \n - `status` (string, optional): Status of the commerce.\n \n - `bag` (string, optional): Bag information.\n \n- `typeReport` (string, `required`): Type of the report.\n \n\n---\n\n## Response\n\n- `messageCode` (string): Code for the message.\n \n- `message` (string): Details of the message.\n \n- `data` (object)\n \n - `title` (string): Title of the report.\n \n - `header` (array of strings): Headers for the report data.\n \n - `total` (number): Total count of the report data.\n \n - `data` (array of arrays): Report data.",
|
|
151
|
-
"mimeType": "text/markdown",
|
|
152
|
-
"content": "# generate - purchase report\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/report/generate`\n\n## Description\n\n---\n\n# Purchase report\n\n---\n\n### Description\n\nThis service is responsible for generating different types of reports depending on the filters that are sent.\n\n---\n\n## Request Body\n\n- `filters` (object, `required`): Filters for the report\n \n - `dateStart` (string, `required`): Start date for the report.\n \n - `dateEnd` (string, `required`): End date for the report.\n \n - `carrierId` (string, optional): ID of the carrier.\n \n - `number` (string, optional): Commerce number.\n \n - `status` (string, optional): Status of the commerce.\n \n - `bag` (string, optional): Bag information.\n \n- `typeReport` (string, `required`): Type of the report.\n \n\n---\n\n## Response\n\n- `messageCode` (string): Code for the message.\n \n- `message` (string): Details of the message.\n \n- `data` (object)\n \n - `title` (string): Title of the report.\n \n - `header` (array of strings): Headers for the report data.\n \n - `total` (number): Total count of the report data.\n \n - `data` (array of arrays): Report data.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"filters\": {\n \"dateStart\": \"2024-01-29\",\n \"dateEnd\": \"2024-02-28\",\n \"carrierId\": null,\n \"number\": \"\",\n \"status\": \"approve\",\n \"bag\": \"posBalance\"\n },\n \"typeReport\": \"buy\"\n}\n```\n\n"
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/report/generate",
|
|
156
|
-
"name": "POST /report/generate - Endpoint Documentation",
|
|
157
|
-
"description": "---\n\n### Statement report\n\n---\n\n#### Description\n\nThis endpoint allows you to generate a report with the specified filters and report type.\n\n---\n\n#### Request Body\n\n- Type: JSON\n \n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| filters | object, `required` | An object containing filter parameters like date range, carrier ID, number, status, and bag. |\n| typeReport | string, `required` | The type of report to be generated. |\n\n---\n\n#### Response\n\n- Type: JSON\n \n\n| Property | Type | Description |\n| --- | --- | --- |\n| messageCode | string | A code associated with the response message. |\n| message | string | A human-readable message providing information about the response. |\n| data | object | An object containing report title, header, and totals. |\n| title | string | The title of the report. |\n| header | array | An array containing report headers. |\n| totals | object | An object containing various total amounts for the report. |\n| data | array | An array containing report data. |\n\n**Note**: The actual data in the response may vary based on the report generated.",
|
|
158
|
-
"mimeType": "text/markdown",
|
|
159
|
-
"content": "# generate - statement report\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/report/generate`\n\n## Description\n\n---\n\n### Statement report\n\n---\n\n#### Description\n\nThis endpoint allows you to generate a report with the specified filters and report type.\n\n---\n\n#### Request Body\n\n- Type: JSON\n \n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| filters | object, `required` | An object containing filter parameters like date range, carrier ID, number, status, and bag. |\n| typeReport | string, `required` | The type of report to be generated. |\n\n---\n\n#### Response\n\n- Type: JSON\n \n\n| Property | Type | Description |\n| --- | --- | --- |\n| messageCode | string | A code associated with the response message. |\n| message | string | A human-readable message providing information about the response. |\n| data | object | An object containing report title, header, and totals. |\n| title | string | The title of the report. |\n| header | array | An array containing report headers. |\n| totals | object | An object containing various total amounts for the report. |\n| data | array | An array containing report data. |\n\n**Note**: The actual data in the response may vary based on the report generated.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"filters\": {\n \"dateStart\": \"2024-01-29\",\n \"dateEnd\": \"2024-02-28\",\n \"carrierId\": null,\n \"number\": \"\",\n \"status\": \"approve\",\n \"bag\": \"tmpBalance\"\n },\n \"typeReport\": \"statement\"\n}\n```\n\n"
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/report/generate",
|
|
163
|
-
"name": "POST /report/generate - Endpoint Documentation",
|
|
164
|
-
"description": "---\n\n### Payment report\n\n---\n\n#### Description\n\nThis service is responsible for generating different types of reports depending on the filters that are sent.\n\n---\n\n#### Request Body\n\n- Type: JSON\n \n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| filters | object, `required` | Object containing filter criteria including date range, carrier ID, number, status, and bag |\n| typeReport | string, `required` | Type of the report to be generated |\n\n#### Response\n\n- Type: JSON\n \n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| messageCode | string | Code for the message |\n| message | string | Details of the message |\n| data | object | Object containing title, header, and data array |",
|
|
73
|
+
"description": "---\n\n# API Login\n\n---\n\n### Description\n\nAllows API users to log in using their credentials. This operation authenticates the user with the information provided in the request body. If the credentials are valid, an access token is issued, which must be included in subsequent requests to access protected resources on the platform. The token must be sent in the `Authorization` header using the `Bearer` prefix. The response includes the token type (`Bearer`) and the access token.\n\n### Rate limiting\n\nTo prevent abuse and repeated attempts in a short period, this endpoint applies rate limiting:\n\n- **Per IP**: maximum **5 requests per minute** from the same IP address. \n- **Per user**: maximum **5 requests every 5 minutes** for the same user. \n- **Combined user + IP**: maximum **5 requests per minute** for the same user–IP combination.\n\nIf these limits are exceeded, the API will temporarily reject additional calls, effectively asking the client to **wait a moment before trying again**.\n\n---\n\n### Request Body\n\n- `username` (string) `required` - Username for authentication.\n \n- `secretKey` (string) `required` - Secret key for authentication\n \n- `saveSession` (boolean) - Flag that, if sent as `false`, allows the generated token to have an expiration of 12 hours.\n \n\n---\n\n### Response\n\n- `messageCode` (string) - Code for the message.\n \n- `message` (string) - The message from the response.\n \n- `data`\n \n - `tokenType` (string) - Type of the token (e.g., \"Bearer\").\n \n - `token` (string) - The access code. It will not expire, unless the `saveSession` field is sent with the value `false`.\n \n\n---\n\n### Error Codes\n\n> Only the first validation error is returned per request. Validation errors (400) come from the API layer; business errors (400) are returned by the authentication service. \n \n\n| HTTP | `errorCode` | Message | Condition |\n| --- | --- | --- | --- |\n| 400 | `validators.username.required` | `El campo username es obligatorio.` | `username` is absent |\n| 400 | `validators.username.isString` | `El campo username debe ser de tipo string` | `username` is not a string |\n| 400 | `validators.username.isNotEmpty` | `El campo username no puede estar vacío.` | `username` is empty or whitespace-only |\n| 400 | `validators.secretKey.required` | `El campo secretKey es obligatorio.` | `secretKey` is absent |\n| 400 | `validators.secretKey.isString` | `El campo secretKey debe ser de tipo string` | `secretKey` is not a string |\n| 400 | `validators.secretKey.isNotEmpty` | `El campo secretKey no puede estar vacío.` | `secretKey` is empty or whitespace-only |\n| 400 | — | `The saveSession field must be of type boolean.` | `saveSession` is present but not a boolean |\n| 400 | `auth.invalid` | `Credenciales inválidas` | User does not exist or incorrect password |\n| 400 | `user.blocked` | `Estás bloqueado` | User is blocked — do not retry; contact support (body may include `notify: true`) |\n| 400 | `auth.invalid.TimeOuthLoginFaild` | `No se ha superado el tiempo de bloqueo por intentos` | Account temporarily locked after failed login attempts. Body includes `code: 5002` and optionally `diferentTimes` (minutes remaining before unlock) |",
|
|
165
74
|
"mimeType": "text/markdown",
|
|
166
|
-
"content": "#
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/report/generate",
|
|
170
|
-
"name": "POST /report/generate - Endpoint Documentation",
|
|
171
|
-
"description": "---\n\n# Transfer report\n\n---\n\n## Description\n\nThis endpoint allows you to generate a report based on the specified filters.\n\n---\n\n## Request Body\n\n- `filters` (object, required): An object containing the filters for the report.\n \n - `dateStart` (string, required): The start date for the report.\n \n - `dateEnd` (string, required): The end date for the report.\n \n - `carrierId` (null): The ID of the carrier for the report.\n \n - `number` (string): The report number.\n \n - `status` (string): The status for the report.\n \n - `bag` (string): The bag for the report.\n \n- `typeReport` (string, required): The type of report to be generated.\n \n\n---\n\n## Response\n\n- `messageCode` (string): The code for the message.\n \n- `message` (string): The message related to the response.\n \n- `data` (object): An object containing the report data.\n \n - `title` (string): The title of the report.\n \n - `header` (array): An array containing the headers for the report data.\n \n - `data` (array): An array containing the report data.",
|
|
172
|
-
"mimeType": "text/markdown",
|
|
173
|
-
"content": "# generate - transfer report\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/report/generate`\n\n## Description\n\n---\n\n# Transfer report\n\n---\n\n## Description\n\nThis endpoint allows you to generate a report based on the specified filters.\n\n---\n\n## Request Body\n\n- `filters` (object, required): An object containing the filters for the report.\n \n - `dateStart` (string, required): The start date for the report.\n \n - `dateEnd` (string, required): The end date for the report.\n \n - `carrierId` (null): The ID of the carrier for the report.\n \n - `number` (string): The report number.\n \n - `status` (string): The status for the report.\n \n - `bag` (string): The bag for the report.\n \n- `typeReport` (string, required): The type of report to be generated.\n \n\n---\n\n## Response\n\n- `messageCode` (string): The code for the message.\n \n- `message` (string): The message related to the response.\n \n- `data` (object): An object containing the report data.\n \n - `title` (string): The title of the report.\n \n - `header` (array): An array containing the headers for the report data.\n \n - `data` (array): An array containing the report data.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"filters\": {\n \"dateStart\": \"2024-01-29\",\n \"dateEnd\": \"2024-02-28\",\n \"carrierId\": null,\n \"number\": \"\",\n \"status\": \"approve\",\n \"bag\": \"tmpBalance\"\n },\n \"typeReport\": \"transfers\"\n}\n```\n\n"
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/report/generate",
|
|
177
|
-
"name": "POST /report/generate - Endpoint Documentation",
|
|
178
|
-
"description": "---\n\n# Reverse report\n\n---\n\n## Description\n\nThis endpoint allows you to generate a report based on the specified filters.\n\n---\n\n## Request Body\n\n- `filters` (object, required): An object containing the filters for the report.\n \n - `dateStart` (string, required): The start date for the report.\n \n - `dateEnd` (string, required): The end date for the report.\n \n - `carrierId` (null): The ID of the carrier for the report.\n \n - `number` (string): The report number.\n \n - `status` (string): The status for the report.\n \n - `bag` (string): The bag for the report.\n \n- `typeReport` (string, required): The type of report to be generated.\n \n\n---\n\n## Response\n\n- `messageCode` (string): The code for the message.\n \n- `message` (string): The message related to the response.\n \n- `data` (object): An object containing the report data.\n \n - `title` (string): The title of the report.\n \n - `header` (array): An array containing the headers for the report data.\n \n - `data` (array): An array containing the report data.",
|
|
179
|
-
"mimeType": "text/markdown",
|
|
180
|
-
"content": "# generate - reverse report\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/report/generate`\n\n## Description\n\n---\n\n# Reverse report\n\n---\n\n## Description\n\nThis endpoint allows you to generate a report based on the specified filters.\n\n---\n\n## Request Body\n\n- `filters` (object, required): An object containing the filters for the report.\n \n - `dateStart` (string, required): The start date for the report.\n \n - `dateEnd` (string, required): The end date for the report.\n \n - `carrierId` (null): The ID of the carrier for the report.\n \n - `number` (string): The report number.\n \n - `status` (string): The status for the report.\n \n - `bag` (string): The bag for the report.\n \n- `typeReport` (string, required): The type of report to be generated.\n \n\n---\n\n## Response\n\n- `messageCode` (string): The code for the message.\n \n- `message` (string): The message related to the response.\n \n- `data` (object): An object containing the report data.\n \n - `title` (string): The title of the report.\n \n - `header` (array): An array containing the headers for the report data.\n \n - `data` (array): An array containing the report data.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"filters\": {\n \"dateStart\": \"2024-01-29\",\n \"dateEnd\": \"2024-02-28\",\n \"carrierId\": null,\n \"number\": \"\",\n \"status\": \"approve\",\n \"type\": \"1\",\n \"bag\": \"posBalance\"\n },\n \"typeReport\": \"reverse\"\n}\n```\n\n"
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/report/generate",
|
|
184
|
-
"name": "POST /report/generate - Endpoint Documentation",
|
|
185
|
-
"description": "---\n\n# Consumption report\n\n---\n\n## Description\n\nThis endpoint allows you to generate a report based on the specified filters.\n\n---\n\n## Request Body\n\n- `filters` (object, required): An object containing the filters for the report.\n \n - `dateStart` (string, required): The start date for the report.\n \n - `dateEnd` (string, required): The end date for the report.\n \n - `carrierId` (null): The ID of the carrier for the report.\n \n - `number` (string): The report number.\n \n - `status` (string): The status for the report.\n \n - `bag` (string): The bag for the report.\n \n- `typeReport` (string, required): The type of report to be generated.\n \n\n---\n\n## Response\n\n- `messageCode` (string): The code for the message.\n \n- `message` (string): The message related to the response.\n \n- `data` (object): An object containing the report data.\n \n - `title` (string): The title of the report.\n \n - `header` (array): An array containing the headers for the report data.\n \n - `data` (array): An array containing the report data.",
|
|
186
|
-
"mimeType": "text/markdown",
|
|
187
|
-
"content": "# generate - consumption report\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/report/generate`\n\n## Description\n\n---\n\n# Consumption report\n\n---\n\n## Description\n\nThis endpoint allows you to generate a report based on the specified filters.\n\n---\n\n## Request Body\n\n- `filters` (object, required): An object containing the filters for the report.\n \n - `dateStart` (string, required): The start date for the report.\n \n - `dateEnd` (string, required): The end date for the report.\n \n - `carrierId` (null): The ID of the carrier for the report.\n \n - `number` (string): The report number.\n \n - `status` (string): The status for the report.\n \n - `bag` (string): The bag for the report.\n \n- `typeReport` (string, required): The type of report to be generated.\n \n\n---\n\n## Response\n\n- `messageCode` (string): The code for the message.\n \n- `message` (string): The message related to the response.\n \n- `data` (object): An object containing the report data.\n \n - `title` (string): The title of the report.\n \n - `header` (array): An array containing the headers for the report data.\n \n - `data` (array): An array containing the report data.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"filters\": {\n \"dateStart\": \"2024-01-29\",\n \"dateEnd\": \"2024-02-28\",\n \"carrierId\": null,\n \"number\": \"\",\n \"status\": \"approve\",\n \"type\": \"1\",\n \"bag\": \"tmpBalance\"\n },\n \"typeReport\": \"consumed\"\n}\n```\n\n"
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
191
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
192
|
-
"description": "---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `cellphone` (string): The cellphone number.\n \n- `customerReference` (string, `required`): A reference to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object): An object containing the response data.\n \n - `message` (string): A message related to the response data.\n \n - `date` (number): The date related to the response data.\n \n - `payload` (object): An object containing the payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the generated resource.\n \n - `type` (string): The type of the generated resource.\n \n - `data` (string): Additional data related to the generated resource.\n \n - `status` (number): The status of the generated resource.",
|
|
193
|
-
"mimeType": "text/markdown",
|
|
194
|
-
"content": "# generate-resource | Transfiya\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `cellphone` (string): The cellphone number.\n \n- `customerReference` (string, `required`): A reference to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object): An object containing the response data.\n \n - `message` (string): A message related to the response data.\n \n - `date` (number): The date related to the response data.\n \n - `payload` (object): An object containing the payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the generated resource.\n \n - `type` (string): The type of the generated resource.\n \n - `data` (string): Additional data related to the generated resource.\n \n - `status` (number): The status of the generated resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 304133,\n \"amount\": 20000,\n \"moduleId\": 2,\n \"form\": {\n \"cellphone\": \"3015784242\"\n },\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
198
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
199
|
-
"description": "---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `cellphone` (string): The cellphone number.\n \n- `customerReference` (string, `required`): A reference to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): An object containing data related to the response.\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date associated with the data.\n \n - `payload` (object): An object containing the payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.",
|
|
200
|
-
"mimeType": "text/markdown",
|
|
201
|
-
"content": "# generate-resource | Nequi\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `cellphone` (string): The cellphone number.\n \n- `customerReference` (string, `required`): A reference to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): An object containing data related to the response.\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date associated with the data.\n \n - `payload` (object): An object containing the payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 118,\n \"amount\": 10000,\n \"moduleId\": 2,\n \"form\": {\n \"cellphone\": \"3203557641\"\n },\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
205
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
206
|
-
"description": "---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object):\n \n - `typePerson` (string): Type of person.\n \n - `documentType` (string): Type of document.\n \n - `documentNumber` (string): Document number.\n \n - `name` (string): Name of the customer.\n \n - `email` (string): Email of the customer.\n \n - `cellphone` (string): Cellphone number of the customer.\n \n- `customerReference` (string, `required`): Reference related to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object):\n \n - `message` (string): A message related to the data.\n \n - `date` (number): Date related to the data.\n \n - `payload` (object):\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): Reference of the resource.\n \n - `resourceId` (string): Identifier of the resource.\n \n - `expiresIn` (string): Expiration time of the resource.\n \n - `type` (string): Type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): Status of the resource.",
|
|
207
|
-
"mimeType": "text/markdown",
|
|
208
|
-
"content": "# generate-resource | Daviplata\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object):\n \n - `typePerson` (string): Type of person.\n \n - `documentType` (string): Type of document.\n \n - `documentNumber` (string): Document number.\n \n - `name` (string): Name of the customer.\n \n - `email` (string): Email of the customer.\n \n - `cellphone` (string): Cellphone number of the customer.\n \n- `customerReference` (string, `required`): Reference related to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object):\n \n - `message` (string): A message related to the data.\n \n - `date` (number): Date related to the data.\n \n - `payload` (object):\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): Reference of the resource.\n \n - `resourceId` (string): Identifier of the resource.\n \n - `expiresIn` (string): Expiration time of the resource.\n \n - `type` (string): Type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): Status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 148,\n \"amount\": 1000,\n \"moduleId\": 2,\n \"form\": {\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1023000000\",\n \"name\": \"John Wick\",\n \"email\": \"j.wick@refacil.com\",\n \"cellphone\": \"3100000000\"\n },\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
212
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
213
|
-
"description": "### Generate Payment Resource\n\n---\n\n#### Description\n\nCreates a payment resource in the system using the provided information.\n\n---\n\n#### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n- `customerReference` (string): Customer reference information.\n \n\n---\n\n#### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object): The response data.\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date related to the data.\n \n - `payload` (object): The payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The identifier of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.",
|
|
214
|
-
"mimeType": "text/markdown",
|
|
215
|
-
"content": "# generate-resource | Bancolombia\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n### Generate Payment Resource\n\n---\n\n#### Description\n\nCreates a payment resource in the system using the provided information.\n\n---\n\n#### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n- `customerReference` (string): Customer reference information.\n \n\n---\n\n#### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object): The response data.\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date related to the data.\n \n - `payload` (object): The payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The identifier of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 87,\n \"amount\": 1000,\n \"moduleId\": 2,\n \"form\": {},\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
219
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
220
|
-
"description": "---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `cellphone` (string): The cellphone number.\n \n- `customerReference` (string, `required`): A reference to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): An object containing data related to the response.\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date associated with the data.\n \n - `payload` (object): An object containing the payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.",
|
|
221
|
-
"mimeType": "text/markdown",
|
|
222
|
-
"content": "# generate-resource | Nequi\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `cellphone` (string): The cellphone number.\n \n- `customerReference` (string, `required`): A reference to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): An object containing data related to the response.\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date associated with the data.\n \n - `payload` (object): An object containing the payload data.\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 88,\n \"amount\": 10000,\n \"moduleId\": 5,\n \"form\": {\n \"cellphone\": \"3203557642\"\n },\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
226
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
227
|
-
"description": "---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object):\n \n - `typePerson` (string): Type of person.\n \n - `documentType` (string): Type of document.\n \n - `documentNumber` (string): Document number.\n \n - `name` (string): Name of the customer.\n \n - `email` (string): Email of the customer.\n \n - `cellphone` (string): Cellphone number of the customer.\n \n- `customerReference` (string, `required`): Reference related to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object):\n \n - `message` (string): A message related to the data.\n \n - `date` (number): Date related to the data.\n \n - `payload` (object):\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): Reference of the resource.\n \n - `resourceId` (string): Identifier of the resource.\n \n - `expiresIn` (string): Expiration time of the resource.\n \n - `type` (string): Type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): Status of the resource.",
|
|
228
|
-
"mimeType": "text/markdown",
|
|
229
|
-
"content": "# generate-resource | Daviplata\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object):\n \n - `typePerson` (string): Type of person.\n \n - `documentType` (string): Type of document.\n \n - `documentNumber` (string): Document number.\n \n - `name` (string): Name of the customer.\n \n - `email` (string): Email of the customer.\n \n - `cellphone` (string): Cellphone number of the customer.\n \n- `customerReference` (string, `required`): Reference related to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object):\n \n - `message` (string): A message related to the data.\n \n - `date` (number): Date related to the data.\n \n - `payload` (object):\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): Reference of the resource.\n \n - `resourceId` (string): Identifier of the resource.\n \n - `expiresIn` (string): Expiration time of the resource.\n \n - `type` (string): Type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): Status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 89,\n \"amount\": 1000,\n \"moduleId\": 5,\n \"form\": {\n \"documentType\": \"01\",\n \"documentNumber\": \"1023000000\",\n \"name\": \"John\",\n \"lastName\": \"Wick\",\n \"email\": \"j.wick@refacil.com\",\n \"cellphone\": \"3100000000\",\n \"bankId\": \"1551\"\n },\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
233
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
234
|
-
"description": "---\n\n### Generate Payment Resource\n\n---\n\n#### Description\n\nThis endpoint allows you to generate a payment resource in the system.\n\n---\n\n#### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `bankId` (string): The ID of the bank.\n \n - `typePerson` (string): The type of person.\n \n - `documentType` (string): The type of document.\n \n - `documentNumber` (string): The document number.\n \n - `name` (string): The name of the customer.\n \n - `email` (string): The email of the customer.\n \n - `cellphone` (string): The cellphone number of the customer.\n \n- `customerReference` (string, `required`): The reference for the customer.\n \n\n---\n\n#### Response\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object):\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date of the response.\n \n - `payload` (object):\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.",
|
|
235
|
-
"mimeType": "text/markdown",
|
|
236
|
-
"content": "# generate-resource | PSE\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Generate Payment Resource\n\n---\n\n#### Description\n\nThis endpoint allows you to generate a payment resource in the system.\n\n---\n\n#### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `form` (object): Optional form associated with the resource.\n \n - `bankId` (string): The ID of the bank.\n \n - `typePerson` (string): The type of person.\n \n - `documentType` (string): The type of document.\n \n - `documentNumber` (string): The document number.\n \n - `name` (string): The name of the customer.\n \n - `email` (string): The email of the customer.\n \n - `cellphone` (string): The cellphone number of the customer.\n \n- `customerReference` (string, `required`): The reference for the customer.\n \n\n---\n\n#### Response\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object):\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date of the response.\n \n - `payload` (object):\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 56,\n \"amount\": 50000,\n \"moduleId\": 5,\n \"form\": {\n \"bankId\": \"1022\",\n \"typePerson\": \"0\",\n \"documentType\": \"CC\",\n \"documentNumber\": \"1023000000\",\n \"name\": \"John Wick\",\n \"email\": \"j.wick@refacil.com\",\n \"cellphone\": \"3100000000\"\n },\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
240
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
241
|
-
"description": "---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `customerReference` (string, `required`): A reference related to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object)\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date related to the data.\n \n - `payload` (object)\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the generated resource.\n \n - `type` (string): The type of the generated resource.\n \n - `data` (string): Additional data related to the generated resource.\n \n - `status` (number): The status of the generated resource.",
|
|
242
|
-
"mimeType": "text/markdown",
|
|
243
|
-
"content": "# generate-resource | Bancolombia Directo al Banco\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `customerReference` (string, `required`): A reference related to the customer.\n \n\n---\n\n### Response Body\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code related to the message.\n \n- `data` (object)\n \n - `message` (string): A message related to the data.\n \n - `date` (number): The date related to the data.\n \n - `payload` (object)\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the generated resource.\n \n - `resourceId` (string): The identifier of the generated resource.\n \n - `expiresIn` (string): The expiration time of the generated resource.\n \n - `type` (string): The type of the generated resource.\n \n - `data` (string): Additional data related to the generated resource.\n \n - `status` (number): The status of the generated resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 53,\n \"amount\": 50000,\n \"moduleId\": 5,\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
247
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
248
|
-
"description": "---\n\n### Generate Payment Resource\n\n---\n\n#### Description\n\nGenerates a payment resource in the system using the information provided in the request body.\n\n---\n\n#### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `customerReference` (string, `required`): Reference to the customer.\n \n\n---\n\n#### Response\n\nThe response is a JSON object with the following properties:\n\n- `message` (string): A message, if any.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): The data object containing the following properties:\n \n - `message` (string): A message, if any.\n \n - `date` (number): The date associated with the response.\n \n - `payload` (object): The payload object containing the following properties:\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The identifier of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of resource.\n \n - `data` (string): Additional data associated with the resource.\n \n - `status` (number): The status of the resource.",
|
|
249
|
-
"mimeType": "text/markdown",
|
|
250
|
-
"content": "# generate-resource | Bancolombia Escanear QR\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Generate Payment Resource\n\n---\n\n#### Description\n\nGenerates a payment resource in the system using the information provided in the request body.\n\n---\n\n#### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `amount` (number, `required`): Amount of the resource to be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `customerReference` (string, `required`): Reference to the customer.\n \n\n---\n\n#### Response\n\nThe response is a JSON object with the following properties:\n\n- `message` (string): A message, if any.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object): The data object containing the following properties:\n \n - `message` (string): A message, if any.\n \n - `date` (number): The date associated with the response.\n \n - `payload` (object): The payload object containing the following properties:\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The identifier of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of resource.\n \n - `data` (string): Additional data associated with the resource.\n \n - `status` (number): The status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 54,\n \"amount\": 50000,\n \"moduleId\": 5,\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/payment/generate-resource",
|
|
254
|
-
"name": "POST /payment/generate-resource - Endpoint Documentation",
|
|
255
|
-
"description": "---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `customerReference` (string): The reference of the customer.\n \n\n---\n\n### Response\n\n- `message` (string): A message from the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object)\n \n - `message` (string): A message within the data object.\n \n - `date` (number): The date associated with the response.\n \n - `payload` (object)\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The identifier of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data associated with the resource.\n \n - `status` (number): The status of the resource.",
|
|
256
|
-
"mimeType": "text/markdown",
|
|
257
|
-
"content": "# generate-resource | Tarjeta de Recaudo\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/payment/generate-resource`\n\n## Description\n\n---\n\n### Description\n\nGenerates a payment resource in the system using the information provided in the request body. This method returns a response that includes details about the generated resource, such as the URL, reference, resource identifier, and expiration time.\n\n---\n\n### Request Body\n\n- `productId` (number, `required`): Identifier of the product for which the resource will be generated.\n \n- `moduleId` (number, `required`): Identifier of the module to which the generated resource will be associated.\n \n- `customerReference` (string): The reference of the customer.\n \n\n---\n\n### Response\n\n- `message` (string): A message from the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object)\n \n - `message` (string): A message within the data object.\n \n - `date` (number): The date associated with the response.\n \n - `payload` (object)\n \n - `url` (string): The URL of the generated resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The identifier of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data associated with the resource.\n \n - `status` (number): The status of the resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 90,\n \"moduleId\": 5,\n \"customerReference\": \"{{customerReference}}\"\n}\n```\n\n"
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/payment/get-resource",
|
|
261
|
-
"name": "GET /payment/get-resource/:customerReference - Endpoint Documentation",
|
|
262
|
-
"description": "---\n\n### Retrieve Payment Resource\n\n---\n\n#### Description\n\nRetrieve a payment resource in the system using the provided customer reference as a parameter. This method returns a response that includes details about the retrieved resource.\n\n---\n\n#### Request Body Schema\n\n- There is no request body for this GET request.\n \n\n---\n\n#### Response Body Schema\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object)\n \n - `payload` (object)\n \n - `url` (string): The URL associated with the resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The ID of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.\n \n\nThis method returns a response that includes details about the retrieved resource.",
|
|
263
|
-
"mimeType": "text/markdown",
|
|
264
|
-
"content": "# get-resource\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/payment/get-resource/:customerReference`\n\n## Description\n\n---\n\n### Retrieve Payment Resource\n\n---\n\n#### Description\n\nRetrieve a payment resource in the system using the provided customer reference as a parameter. This method returns a response that includes details about the retrieved resource.\n\n---\n\n#### Request Body Schema\n\n- There is no request body for this GET request.\n \n\n---\n\n#### Response Body Schema\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object)\n \n - `payload` (object)\n \n - `url` (string): The URL associated with the resource.\n \n - `reference` (string): The reference of the resource.\n \n - `resourceId` (string): The ID of the resource.\n \n - `expiresIn` (string): The expiration time of the resource.\n \n - `type` (string): The type of the resource.\n \n - `data` (string): Additional data related to the resource.\n \n - `status` (number): The status of the resource.\n \n\nThis method returns a response that includes details about the retrieved resource.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/payment/pse-banks",
|
|
268
|
-
"name": "GET /payment/pse-banks - Endpoint Documentation",
|
|
269
|
-
"description": "---\n\n### PSE Banks\n\n---\n\n#### Description\n\nThis service allows you to obtain the banks available to make PSE payments.\n\n---\n\n#### Request Body Schema\n\n- There is no request body for this GET request.\n \n\n---\n\n#### Response Body Schema\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object)\n \n - `banks`: An array of object with the banks information (id, name and image)",
|
|
270
|
-
"mimeType": "text/markdown",
|
|
271
|
-
"content": "# pse-banks\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/payment/pse-banks`\n\n## Description\n\n---\n\n### PSE Banks\n\n---\n\n#### Description\n\nThis service allows you to obtain the banks available to make PSE payments.\n\n---\n\n#### Request Body Schema\n\n- There is no request body for this GET request.\n \n\n---\n\n#### Response Body Schema\n\n- `message` (string): A message related to the response.\n \n- `messageCode` (string): A code associated with the message.\n \n- `data` (object)\n \n - `banks`: An array of object with the banks information (id, name and image)\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
75
|
+
"content": "# login-api\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/auth/login-api`\n\n## Description\n\n---\n\n# API Login\n\n---\n\n### Description\n\nAllows API users to log in using their credentials. This operation authenticates the user with the information provided in the request body. If the credentials are valid, an access token is issued, which must be included in subsequent requests to access protected resources on the platform. The token must be sent in the `Authorization` header using the `Bearer` prefix. The response includes the token type (`Bearer`) and the access token.\n\n### Rate limiting\n\nTo prevent abuse and repeated attempts in a short period, this endpoint applies rate limiting:\n\n- **Per IP**: maximum **5 requests per minute** from the same IP address. \n- **Per user**: maximum **5 requests every 5 minutes** for the same user. \n- **Combined user + IP**: maximum **5 requests per minute** for the same user–IP combination.\n\nIf these limits are exceeded, the API will temporarily reject additional calls, effectively asking the client to **wait a moment before trying again**.\n\n---\n\n### Request Body\n\n- `username` (string) `required` - Username for authentication.\n \n- `secretKey` (string) `required` - Secret key for authentication\n \n- `saveSession` (boolean) - Flag that, if sent as `false`, allows the generated token to have an expiration of 12 hours.\n \n\n---\n\n### Response\n\n- `messageCode` (string) - Code for the message.\n \n- `message` (string) - The message from the response.\n \n- `data`\n \n - `tokenType` (string) - Type of the token (e.g., \"Bearer\").\n \n - `token` (string) - The access code. It will not expire, unless the `saveSession` field is sent with the value `false`.\n \n\n---\n\n### Error Codes\n\n> Only the first validation error is returned per request. Validation errors (400) come from the API layer; business errors (400) are returned by the authentication service. \n \n\n| HTTP | `errorCode` | Message | Condition |\n| --- | --- | --- | --- |\n| 400 | `validators.username.required` | `El campo username es obligatorio.` | `username` is absent |\n| 400 | `validators.username.isString` | `El campo username debe ser de tipo string` | `username` is not a string |\n| 400 | `validators.username.isNotEmpty` | `El campo username no puede estar vacío.` | `username` is empty or whitespace-only |\n| 400 | `validators.secretKey.required` | `El campo secretKey es obligatorio.` | `secretKey` is absent |\n| 400 | `validators.secretKey.isString` | `El campo secretKey debe ser de tipo string` | `secretKey` is not a string |\n| 400 | `validators.secretKey.isNotEmpty` | `El campo secretKey no puede estar vacío.` | `secretKey` is empty or whitespace-only |\n| 400 | — | `The saveSession field must be of type boolean.` | `saveSession` is present but not a boolean |\n| 400 | `auth.invalid` | `Credenciales inválidas` | User does not exist or incorrect password |\n| 400 | `user.blocked` | `Estás bloqueado` | User is blocked — do not retry; contact support (body may include `notify: true`) |\n| 400 | `auth.invalid.TimeOuthLoginFaild` | `No se ha superado el tiempo de bloqueo por intentos` | Account temporarily locked after failed login attempts. Body includes `code: 5002` and optionally `diferentTimes` (minutes remaining before unlock) |\n\n## Headers\n\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"username\": \"username\",\n \"secretKey\": \"secretKey\"\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."
|
|
272
76
|
},
|
|
273
77
|
{
|
|
274
78
|
"uri": "postman://collection/refacil-commerce-api/endpoint/get/product/list",
|
|
275
79
|
"name": "GET /product/list - Endpoint Documentation",
|
|
276
|
-
"description": "---\n\n
|
|
80
|
+
"description": "---\n\n# Retrieve Product List\n\n---\n\n### Description\n\nReturns the catalog of products enabled for query and sale. Internally queries the products engine and filters internal categories (`bills`, `packages`). All products returned are available for use in subsequent query and sell operations.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (array)\n - `id` (number) - Product or agreement identifier.\n - `categoryId` (number) - Category the product belongs to.\n - `name` (string) - Commercial name.\n - `needValidation` (boolean) - Indicates if the product requires activation steps.\n - `moduleId` (number) - Associated module in core.\n - `maxFixedTip` (number) - Maximum fixed tip allowed.\n - `description` (string) - Description visible to the commerce.\n - `amount` (number) - Fixed amount, if applicable.\n - `sort` (number) - Suggested sort order in catalogs.\n - `meta` (object) - Additional metadata from the products engine.\n - `image` (string) - URL of the product image.\n - `status` (string) - Product status (`enabled` / `disabled`).\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when retrieving products — retry; if it persists, notify support |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |",
|
|
277
81
|
"mimeType": "text/markdown",
|
|
278
|
-
"content": "# list\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/list`\n\n## Description\n\n---\n\n
|
|
82
|
+
"content": "# list\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/list`\n\n## Description\n\n---\n\n# Retrieve Product List\n\n---\n\n### Description\n\nReturns the catalog of products enabled for query and sale. Internally queries the products engine and filters internal categories (`bills`, `packages`). All products returned are available for use in subsequent query and sell operations.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (array)\n - `id` (number) - Product or agreement identifier.\n - `categoryId` (number) - Category the product belongs to.\n - `name` (string) - Commercial name.\n - `needValidation` (boolean) - Indicates if the product requires activation steps.\n - `moduleId` (number) - Associated module in core.\n - `maxFixedTip` (number) - Maximum fixed tip allowed.\n - `description` (string) - Description visible to the commerce.\n - `amount` (number) - Fixed amount, if applicable.\n - `sort` (number) - Suggested sort order in catalogs.\n - `meta` (object) - Additional metadata from the products engine.\n - `image` (string) - URL of the product image.\n - `status` (string) - Product status (`enabled` / `disabled`).\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when retrieving products — retry; if it persists, notify support |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\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."
|
|
279
83
|
},
|
|
280
84
|
{
|
|
281
85
|
"uri": "postman://collection/refacil-commerce-api/endpoint/get/product/packages",
|
|
282
86
|
"name": "GET /product/packages - Endpoint Documentation",
|
|
283
|
-
"description": "---\n\n
|
|
87
|
+
"description": "---\n\n# Retrieve Available Packages\n\n---\n\n### Description\n\nReturns the list of configured packages (e.g., combos grouping several products). Useful for frontends that need to render hierarchies of categories → subcategories → products. Use this service to keep package data up to date.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (array)\n - `id` (number) - Package or root category identifier.\n - `name` (string) - Commercial name of the package.\n - `description` (string) - Functional description.\n - `internalName` (string) - Internal name used for filtering.\n - `categories` (array) - List of subcategories.\n - `id` (number) - Subcategory identifier.\n - `name` (string) - Subcategory name.\n - `description` (string) - Subcategory description.\n - `internalName` (string) - Internal name of the subcategory.\n - `products` (array) - Associated products (same structure as `/product/list`).\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Failure retrieving categories or products — retry; if it persists, notify support |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |",
|
|
284
88
|
"mimeType": "text/markdown",
|
|
285
|
-
"content": "# packages\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/packages`\n\n## Description\n\n---\n\n
|
|
89
|
+
"content": "# packages\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/packages`\n\n## Description\n\n---\n\n# Retrieve Available Packages\n\n---\n\n### Description\n\nReturns the list of configured packages (e.g., combos grouping several products). Useful for frontends that need to render hierarchies of categories → subcategories → products. Use this service to keep package data up to date.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (array)\n - `id` (number) - Package or root category identifier.\n - `name` (string) - Commercial name of the package.\n - `description` (string) - Functional description.\n - `internalName` (string) - Internal name used for filtering.\n - `categories` (array) - List of subcategories.\n - `id` (number) - Subcategory identifier.\n - `name` (string) - Subcategory name.\n - `description` (string) - Subcategory description.\n - `internalName` (string) - Internal name of the subcategory.\n - `products` (array) - Associated products (same structure as `/product/list`).\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Failure retrieving categories or products — retry; if it persists, notify support |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\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."
|
|
286
90
|
},
|
|
287
91
|
{
|
|
288
92
|
"uri": "postman://collection/refacil-commerce-api/endpoint/get/product/commissions",
|
|
289
93
|
"name": "GET /product/commissions - Endpoint Documentation",
|
|
290
|
-
"description": "---\n\n### Retrieve Product Commissions\n\n---\n\n#### Description\n\nRetrieve detailed information about the commissions associated with registered products.\n\n---\n\n#### Response\n\nThe response for this request is a JSON object with the following schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\"type\": \"string\"},\n \"messageCode\": {\"type\": \"string\"},\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\"type\": \"number\"},\n \"name\": {\"type\": \"string\"},\n \"image\": {\"type\": \"string\"},\n \"fixedCommission\": {\"type\": \"object\"},\n \"maxFixedCommission\": {\"type\": \"number\"},\n \"commission\": {\"type\": \"number\"},\n \"commissionType\": {\"type\": \"string\"},\n \"amount\": {\"type\": \"object\"},\n \"category\": {\"type\": \"string\"},\n \"key\": {\"type\": \"string\"},\n \"overdraft\": {\"type\": \"number\"}\n }\n }\n }\n }\n}\n\n
|
|
94
|
+
"description": "---\n\n### Retrieve Product Commissions\n\n---\n\n#### Description\n\nRetrieve detailed information about the commissions associated with registered products.\n\n---\n\n#### Response\n\nThe response for this request is a JSON object with the following schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\"type\": \"string\"},\n \"messageCode\": {\"type\": \"string\"},\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\"type\": \"number\"},\n \"name\": {\"type\": \"string\"},\n \"image\": {\"type\": \"string\"},\n \"fixedCommission\": {\"type\": \"object\"},\n \"maxFixedCommission\": {\"type\": \"number\"},\n \"commission\": {\"type\": \"number\"},\n \"commissionType\": {\"type\": \"string\"},\n \"amount\": {\"type\": \"object\"},\n \"category\": {\"type\": \"string\"},\n \"key\": {\"type\": \"string\"},\n \"overdraft\": {\"type\": \"number\"}\n }\n }\n }\n }\n}\n\n ```\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when retrieving commissions — retry; if it persists, notify support |",
|
|
291
95
|
"mimeType": "text/markdown",
|
|
292
|
-
"content": "# commissions\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/commissions`\n\n## Description\n\n---\n\n### Retrieve Product Commissions\n\n---\n\n#### Description\n\nRetrieve detailed information about the commissions associated with registered products.\n\n---\n\n#### Response\n\nThe response for this request is a JSON object with the following schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\"type\": \"string\"},\n \"messageCode\": {\"type\": \"string\"},\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\"type\": \"number\"},\n \"name\": {\"type\": \"string\"},\n \"image\": {\"type\": \"string\"},\n \"fixedCommission\": {\"type\": \"object\"},\n \"maxFixedCommission\": {\"type\": \"number\"},\n \"commission\": {\"type\": \"number\"},\n \"commissionType\": {\"type\": \"string\"},\n \"amount\": {\"type\": \"object\"},\n \"category\": {\"type\": \"string\"},\n \"key\": {\"type\": \"string\"},\n \"overdraft\": {\"type\": \"number\"}\n }\n }\n }\n }\n}\n\n ```\n\n## Headers\n\n- **Authorization**: Bearer
|
|
96
|
+
"content": "# commissions\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/commissions`\n\n## Description\n\n---\n\n### Retrieve Product Commissions\n\n---\n\n#### Description\n\nRetrieve detailed information about the commissions associated with registered products.\n\n---\n\n#### Response\n\nThe response for this request is a JSON object with the following schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\"type\": \"string\"},\n \"messageCode\": {\"type\": \"string\"},\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\"type\": \"number\"},\n \"name\": {\"type\": \"string\"},\n \"image\": {\"type\": \"string\"},\n \"fixedCommission\": {\"type\": \"object\"},\n \"maxFixedCommission\": {\"type\": \"number\"},\n \"commission\": {\"type\": \"number\"},\n \"commissionType\": {\"type\": \"string\"},\n \"amount\": {\"type\": \"object\"},\n \"category\": {\"type\": \"string\"},\n \"key\": {\"type\": \"string\"},\n \"overdraft\": {\"type\": \"number\"}\n }\n }\n }\n }\n}\n\n ```\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when retrieving commissions — retry; if it persists, notify support |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\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."
|
|
293
97
|
},
|
|
294
98
|
{
|
|
295
99
|
"uri": "postman://collection/refacil-commerce-api/endpoint/get/product/categories",
|
|
296
100
|
"name": "GET /product/categories - Endpoint Documentation",
|
|
297
|
-
"description": "---\n\n### Retrieve Product Categories\n\n---\n\n#### Description\n\nThis service provides detailed information on the categories and their subcategories.\n\n---\n\n#### Response\n\nThe response for this request can be documented as a JSON schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"messageCode\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"categories\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"categoryId\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"needValidation\": {\n \"type\": \"boolean\"\n },\n \"moduleId\": {\n \"type\": \"integer\"\n },\n \"maxFixedTip\": {\n \"type\": \"integer\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\"\n },\n \"sort\": {\n \"type\": \"integer\"\n },\n \"meta\": {\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"categoryId\",\n \"name\",\n \"needValidation\",\n \"moduleId\",\n \"maxFixedTip\",\n \"description\",\n \"amount\",\n \"sort\",\n \"meta\",\n \"image\",\n \"status\"\n ]\n }\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"products\"\n ]\n }\n },\n \"internalName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"categories\",\n \"internalName\"\n ]\n }\n }\n },\n \"required\": [\n \"message\",\n \"messageCode\",\n \"data\"\n ]\n}\n\n
|
|
101
|
+
"description": "---\n\n### Retrieve Product Categories\n\n---\n\n#### Description\n\nThis service provides detailed information on the categories and their subcategories.\n\n---\n\n#### Response\n\nThe response for this request can be documented as a JSON schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"messageCode\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"categories\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"categoryId\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"needValidation\": {\n \"type\": \"boolean\"\n },\n \"moduleId\": {\n \"type\": \"integer\"\n },\n \"maxFixedTip\": {\n \"type\": \"integer\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\"\n },\n \"sort\": {\n \"type\": \"integer\"\n },\n \"meta\": {\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"categoryId\",\n \"name\",\n \"needValidation\",\n \"moduleId\",\n \"maxFixedTip\",\n \"description\",\n \"amount\",\n \"sort\",\n \"meta\",\n \"image\",\n \"status\"\n ]\n }\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"products\"\n ]\n }\n },\n \"internalName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"categories\",\n \"internalName\"\n ]\n }\n }\n },\n \"required\": [\n \"message\",\n \"messageCode\",\n \"data\"\n ]\n}\n\n ```\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when retrieving categories — retry; if it persists, notify support |",
|
|
298
102
|
"mimeType": "text/markdown",
|
|
299
|
-
"content": "# categories\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/categories`\n\n## Description\n\n---\n\n### Retrieve Product Categories\n\n---\n\n#### Description\n\nThis service provides detailed information on the categories and their subcategories.\n\n---\n\n#### Response\n\nThe response for this request can be documented as a JSON schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"messageCode\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"categories\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"categoryId\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"needValidation\": {\n \"type\": \"boolean\"\n },\n \"moduleId\": {\n \"type\": \"integer\"\n },\n \"maxFixedTip\": {\n \"type\": \"integer\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\"\n },\n \"sort\": {\n \"type\": \"integer\"\n },\n \"meta\": {\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"categoryId\",\n \"name\",\n \"needValidation\",\n \"moduleId\",\n \"maxFixedTip\",\n \"description\",\n \"amount\",\n \"sort\",\n \"meta\",\n \"image\",\n \"status\"\n ]\n }\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"products\"\n ]\n }\n },\n \"internalName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"categories\",\n \"internalName\"\n ]\n }\n }\n },\n \"required\": [\n \"message\",\n \"messageCode\",\n \"data\"\n ]\n}\n\n ```\n\n## Headers\n\n- **Authorization**: Bearer
|
|
103
|
+
"content": "# categories\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/product/categories`\n\n## Description\n\n---\n\n### Retrieve Product Categories\n\n---\n\n#### Description\n\nThis service provides detailed information on the categories and their subcategories.\n\n---\n\n#### Response\n\nThe response for this request can be documented as a JSON schema:\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"messageCode\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"categories\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"integer\"\n },\n \"categoryId\": {\n \"type\": \"integer\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"needValidation\": {\n \"type\": \"boolean\"\n },\n \"moduleId\": {\n \"type\": \"integer\"\n },\n \"maxFixedTip\": {\n \"type\": \"integer\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\"\n },\n \"sort\": {\n \"type\": \"integer\"\n },\n \"meta\": {\n \"type\": \"object\"\n },\n \"image\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"categoryId\",\n \"name\",\n \"needValidation\",\n \"moduleId\",\n \"maxFixedTip\",\n \"description\",\n \"amount\",\n \"sort\",\n \"meta\",\n \"image\",\n \"status\"\n ]\n }\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"products\"\n ]\n }\n },\n \"internalName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"description\",\n \"categories\",\n \"internalName\"\n ]\n }\n }\n },\n \"required\": [\n \"message\",\n \"messageCode\",\n \"data\"\n ]\n}\n\n ```\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when retrieving categories — retry; if it persists, notify support |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\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."
|
|
300
104
|
},
|
|
301
105
|
{
|
|
302
106
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/search",
|
|
303
107
|
"name": "POST /product/search - Endpoint Documentation",
|
|
304
|
-
"description": "---\n\n### Search Product\n\n---\n\n#### Description\n\nAllows searching for invoice agreements on the platform using specific terms. Send the request body with the necessary parameters in the format specified by the SearchBody object. The operation returns results that match the provided search terms.\n\n---\n\n#### Request Body\n\n- The request body should be in JSON format with the following parameter:\n \n - `query`: The search term.\n \n\n---\n\n#### Response\n\nThe response will be a JSON object with the following properties:\n\n- `message`: A message related to the response.\n \n- `messageCode`: A code related to the message.\n \n- `data`: An array of objects containing product information with the following properties:\n \n - `id`: The ID of the product.\n \n - `name`: The name of the product.\n \n - `key`: The key of the product.\n \n - `productId`: The ID of the product.\n \n - `needsAmountInQuery:` Boolean value that indicates wheter the invoice value should be include in the query.\n \n - `form:` Array of objects that shows me the necessary references to consult the invoice. In case it arrives empty you must send a reference of preference.",
|
|
108
|
+
"description": "---\n\n### Search Product\n\n---\n\n#### Description\n\nAllows searching for invoice agreements on the platform using specific terms. Send the request body with the necessary parameters in the format specified by the SearchBody object. The operation returns results that match the provided search terms.\n\n---\n\n#### Request Body\n\n- The request body should be in JSON format with the following parameter:\n \n - `query`: The search term.\n \n\n---\n\n#### Response\n\nThe response will be a JSON object with the following properties:\n\n- `message`: A message related to the response.\n \n- `messageCode`: A code related to the message.\n \n- `data`: An array of objects containing product information with the following properties:\n \n - `id`: The ID of the product.\n \n - `name`: The name of the product.\n \n - `key`: The key of the product.\n \n - `productId`: The ID of the product.\n \n - `needsAmountInQuery:` Boolean value that indicates wheter the invoice value should be include in the query.\n \n - `form:` Array of objects that shows me the necessary references to consult the invoice. In case it arrives empty you must send a reference of preference.\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | `validators.query.required` | `El campo query es obligatorio.` | `query` field is absent from the request body |\n| 400 | `validators.query.isString` | `El campo query debe ser de tipo string` | `query` is not a string |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when searching products — retry; if it persists, notify support |",
|
|
305
109
|
"mimeType": "text/markdown",
|
|
306
|
-
"content": "# search\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/search`\n\n## Description\n\n---\n\n### Search Product\n\n---\n\n#### Description\n\nAllows searching for invoice agreements on the platform using specific terms. Send the request body with the necessary parameters in the format specified by the SearchBody object. The operation returns results that match the provided search terms.\n\n---\n\n#### Request Body\n\n- The request body should be in JSON format with the following parameter:\n \n - `query`: The search term.\n \n\n---\n\n#### Response\n\nThe response will be a JSON object with the following properties:\n\n- `message`: A message related to the response.\n \n- `messageCode`: A code related to the message.\n \n- `data`: An array of objects containing product information with the following properties:\n \n - `id`: The ID of the product.\n \n - `name`: The name of the product.\n \n - `key`: The key of the product.\n \n - `productId`: The ID of the product.\n \n - `needsAmountInQuery:` Boolean value that indicates wheter the invoice value should be include in the query.\n \n - `form:` Array of objects that shows me the necessary references to consult the invoice. In case it arrives empty you must send a reference of preference.\n\n## Headers\n\n- **Authorization**: Bearer
|
|
110
|
+
"content": "# search\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/search`\n\n## Description\n\n---\n\n### Search Product\n\n---\n\n#### Description\n\nAllows searching for invoice agreements on the platform using specific terms. Send the request body with the necessary parameters in the format specified by the SearchBody object. The operation returns results that match the provided search terms.\n\n---\n\n#### Request Body\n\n- The request body should be in JSON format with the following parameter:\n \n - `query`: The search term.\n \n\n---\n\n#### Response\n\nThe response will be a JSON object with the following properties:\n\n- `message`: A message related to the response.\n \n- `messageCode`: A code related to the message.\n \n- `data`: An array of objects containing product information with the following properties:\n \n - `id`: The ID of the product.\n \n - `name`: The name of the product.\n \n - `key`: The key of the product.\n \n - `productId`: The ID of the product.\n \n - `needsAmountInQuery:` Boolean value that indicates wheter the invoice value should be include in the query.\n \n - `form:` Array of objects that shows me the necessary references to consult the invoice. In case it arrives empty you must send a reference of preference.\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | `validators.query.required` | `El campo query es obligatorio.` | `query` field is absent from the request body |\n| 400 | `validators.query.isString` | `El campo query debe ser de tipo string` | `query` is not a string |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 404 | — | `Not Found` | Blocked route — verify the URL |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Database or service failure when searching products — retry; if it persists, notify support |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"query\": \"enel\"\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."
|
|
307
111
|
},
|
|
308
112
|
{
|
|
309
113
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
310
114
|
"name": "POST /product/query - Endpoint Documentation",
|
|
311
|
-
"description": "---\n\n### Description\n\
|
|
115
|
+
"description": "---\n\n# Query Product\n\n---\n\n### Description\n\nPerforms the pre-sale query to obtain invoice data, reference, hash, and amount. Communicates with the Movement service. The returned `hash` and `hashEchoData` values must be forwarded in the subsequent sell request when paying bills. If the response contains only one of the two hash fields, the API automatically mirrors it to the other.\n\nIt is important that when the request fails with the errorCode `product.errors.disabled` or similar indicating that the product is inactive, the agreements are consulted again using the search service.\n\n---\n\n### Request Body\n\n- `productId` (number) `required` - Identifier of the product to query.\n- `queryType` (string) `required` - Type of query expected by Movement (e.g., `BILLData`). Min length: 1.\n- `ownAgreementId` (number) - Identifier of the own agreement, if applicable.\n- `data` (object) - Specific provider data (reference, cellphone, etc.). Technically optional, but required by most products at the business level.\n - `reference` (string) - Invoice or reference number to query. Used for bill products.\n - `cellphone` (string) - Destination phone number. Used for top-ups and packages.\n - `plate` (string) - Vehicle plate. Used for SOAT products.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (object)\n - `amount` (number) - Calculated amount for the sale.\n - `productId` (number) - Identifier of the queried product.\n - `productName` (string) - Product name.\n - `reference` (string) - Reference to be forwarded in the sell request.\n - `hash` (string) - Hash generated by Movement. Mirror of `hashEchoData` if absent.\n - `hashEchoData` (string) - Mirror hash field. Mirror of `hash` if absent.\n - `amountEditable` (boolean) - Indicates if the amount can be modified at sell time.\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is absent or not numeric |\n| 400 | `validators.queryType.required` | `El campo queryType es obligatorio.` | `queryType` is absent |\n| 400 | `validators.queryType.isString` | `El campo queryType debe ser de tipo string` | `queryType` is not a string |\n| 400 | `validators.queryType.isNotEmpty` | `El campo queryType no puede estar vacío.` | `queryType` is empty or whitespace-only |\n| 400 | — | `data must be an object` | `data` is present but not an object |\n| 400 | — | `ownAgreementId must be a number` | `ownAgreementId` is present but not a number |\n| 404 | `products.errors.notFound` / `product.not.found` | `Producto no encontrado` | Product does not exist or is unavailable |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled — re-fetch agreements using the search service |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.metadata.invalid` | `Los metadatos del convenio no tienen un formato válido` | Agreement metadata is invalid |\n| 400 | `overdue.reference` | `Esta referencia ya se encuentra vencida.` | Reference is overdue — do not retry with same reference |\n| 400 | `closed.reference` | `Esta referencia ya se encuentra cerrada.` | Reference is closed |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |",
|
|
312
116
|
"mimeType": "text/markdown",
|
|
313
|
-
"content": "# query\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n### Description\n\
|
|
117
|
+
"content": "# query\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n# Query Product\n\n---\n\n### Description\n\nPerforms the pre-sale query to obtain invoice data, reference, hash, and amount. Communicates with the Movement service. The returned `hash` and `hashEchoData` values must be forwarded in the subsequent sell request when paying bills. If the response contains only one of the two hash fields, the API automatically mirrors it to the other.\n\nIt is important that when the request fails with the errorCode `product.errors.disabled` or similar indicating that the product is inactive, the agreements are consulted again using the search service.\n\n---\n\n### Request Body\n\n- `productId` (number) `required` - Identifier of the product to query.\n- `queryType` (string) `required` - Type of query expected by Movement (e.g., `BILLData`). Min length: 1.\n- `ownAgreementId` (number) - Identifier of the own agreement, if applicable.\n- `data` (object) - Specific provider data (reference, cellphone, etc.). Technically optional, but required by most products at the business level.\n - `reference` (string) - Invoice or reference number to query. Used for bill products.\n - `cellphone` (string) - Destination phone number. Used for top-ups and packages.\n - `plate` (string) - Vehicle plate. Used for SOAT products.\n\n---\n\n### Response\n\n- `messageCode` (string) - Response status code.\n- `message` (string) - Response message.\n- `data` (object)\n - `amount` (number) - Calculated amount for the sale.\n - `productId` (number) - Identifier of the queried product.\n - `productName` (string) - Product name.\n - `reference` (string) - Reference to be forwarded in the sell request.\n - `hash` (string) - Hash generated by Movement. Mirror of `hashEchoData` if absent.\n - `hashEchoData` (string) - Mirror hash field. Mirror of `hash` if absent.\n - `amountEditable` (boolean) - Indicates if the amount can be modified at sell time.\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is absent or not numeric |\n| 400 | `validators.queryType.required` | `El campo queryType es obligatorio.` | `queryType` is absent |\n| 400 | `validators.queryType.isString` | `El campo queryType debe ser de tipo string` | `queryType` is not a string |\n| 400 | `validators.queryType.isNotEmpty` | `El campo queryType no puede estar vacío.` | `queryType` is empty or whitespace-only |\n| 400 | — | `data must be an object` | `data` is present but not an object |\n| 400 | — | `ownAgreementId must be a number` | `ownAgreementId` is present but not a number |\n| 404 | `products.errors.notFound` / `product.not.found` | `Producto no encontrado` | Product does not exist or is unavailable |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled — re-fetch agreements using the search service |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.metadata.invalid` | `Los metadatos del convenio no tienen un formato válido` | Agreement metadata is invalid |\n| 400 | `overdue.reference` | `Esta referencia ya se encuentra vencida.` | Reference is overdue — do not retry with same reference |\n| 400 | `closed.reference` | `Esta referencia ya se encuentra cerrada.` | Reference is closed |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 52204,\n \"queryType\": \"BILLData\",\n \"ownAgreementId\": null,\n \"data\": {\n \"reference\": \"123456\"\n }\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."
|
|
314
118
|
},
|
|
315
119
|
{
|
|
316
120
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
317
121
|
"name": "POST /product/query - Endpoint Documentation",
|
|
318
122
|
"description": "---\n\n### Product Query\n\n---\n\n#### Description\n\nAllows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.\n\n---\n\n**Request Body:**\n\n- `productId` (integer, required): Identifier of the product to perform the query.\n \n- `queryType` (string, required): The type of query to be performed.\n \n- `ownAgreementId` (string, optional): Identifier of the own agreement, if applicable.\n \n- `data` (object, required): Additional data for the query in object format.\n \n - `reference` (string, required): The reference for the query data.\n \n\n---\n\n**Response JSON Schema:**\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"messageCode\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"integer\"\n },\n \"productId\": {\n \"type\": \"integer\"\n },\n \"productName\": {\n \"type\": \"string\"\n },\n \"reference\": {\n \"type\": \"string\"\n },\n \"hashEchoData\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"amountEditable\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n }\n }\n}\n\n ```",
|
|
319
123
|
"mimeType": "text/markdown",
|
|
320
|
-
"content": "# query | Claro Telefonia\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n### Product Query\n\n---\n\n#### Description\n\nAllows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.\n\n---\n\n**Request Body:**\n\n- `productId` (integer, required): Identifier of the product to perform the query.\n \n- `queryType` (string, required): The type of query to be performed.\n \n- `ownAgreementId` (string, optional): Identifier of the own agreement, if applicable.\n \n- `data` (object, required): Additional data for the query in object format.\n \n - `reference` (string, required): The reference for the query data.\n \n\n---\n\n**Response JSON Schema:**\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"messageCode\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"integer\"\n },\n \"productId\": {\n \"type\": \"integer\"\n },\n \"productName\": {\n \"type\": \"string\"\n },\n \"reference\": {\n \"type\": \"string\"\n },\n \"hashEchoData\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"amountEditable\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n }\n }\n}\n\n ```\n\n## Headers\n\n- **Authorization**: Bearer
|
|
124
|
+
"content": "# query | Claro Telefonia\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n### Product Query\n\n---\n\n#### Description\n\nAllows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.\n\n---\n\n**Request Body:**\n\n- `productId` (integer, required): Identifier of the product to perform the query.\n \n- `queryType` (string, required): The type of query to be performed.\n \n- `ownAgreementId` (string, optional): Identifier of the own agreement, if applicable.\n \n- `data` (object, required): Additional data for the query in object format.\n \n - `reference` (string, required): The reference for the query data.\n \n\n---\n\n**Response JSON Schema:**\n\n``` json\n{\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"messageCode\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"integer\"\n },\n \"productId\": {\n \"type\": \"integer\"\n },\n \"productName\": {\n \"type\": \"string\"\n },\n \"reference\": {\n \"type\": \"string\"\n },\n \"hashEchoData\": {\n \"type\": \"string\"\n },\n \"hash\": {\n \"type\": \"string\"\n },\n \"amountEditable\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n }\n }\n}\n\n ```\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 52683,\n \"queryType\": \"BILLData\",\n \"ownAgreementId\": null,\n \"data\": {\n \"reference\": \"123456\"\n }\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."
|
|
321
125
|
},
|
|
322
126
|
{
|
|
323
127
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
324
128
|
"name": "POST /product/query - Endpoint Documentation",
|
|
325
129
|
"description": "---\n\n### HTTP POST /product/query\n\n---\n\n#### Description\n\nAllows performing a custom query on the platform.\n\n---\n\n#### Request Body\n\n- raw (application/json)\n \n - productId (number, `required`): Identifier of the product to perform the query.\n \n - queryType (string. `required`): Additional data for the query in object format.\n \n - ownAgreementId (number, `optional`): Identifier of the own agreement, if applicable\n \n - data (object): Additional data for the query in object format.\n \n - reference (string): Reference data.\n \n\n---\n\n#### Response\n\nThe response will include the results of the query in case of success.\n\n#### Response Schema\n\n- message (string): The message from the response.\n \n- messageCode (string): The code related to the message.\n \n- data (object)\n \n - payload (object)\n \n - amount (number): The amount related to the query result.\n \n - productId (number): The ID of the product related to the query result.\n \n - productName (string): The name of the product related to the query result.\n \n - reference (string): The reference related to the query result.\n \n - hashEchoData (string): The echoed hash data.\n \n - hash (string): The hash data.\n \n - amountEditable (boolean): Indicates whether the amount is editable or not.\n \n- code (string): The code from the response.\n \n- errorCode (string): The error code from the response.\n \n- statusCode (number): The status code from the response.\n \n- timestamp (number): The timestamp of the response.",
|
|
326
130
|
"mimeType": "text/markdown",
|
|
327
|
-
"content": "# query | Acueducto de Bogota\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n### HTTP POST /product/query\n\n---\n\n#### Description\n\nAllows performing a custom query on the platform.\n\n---\n\n#### Request Body\n\n- raw (application/json)\n \n - productId (number, `required`): Identifier of the product to perform the query.\n \n - queryType (string. `required`): Additional data for the query in object format.\n \n - ownAgreementId (number, `optional`): Identifier of the own agreement, if applicable\n \n - data (object): Additional data for the query in object format.\n \n - reference (string): Reference data.\n \n\n---\n\n#### Response\n\nThe response will include the results of the query in case of success.\n\n#### Response Schema\n\n- message (string): The message from the response.\n \n- messageCode (string): The code related to the message.\n \n- data (object)\n \n - payload (object)\n \n - amount (number): The amount related to the query result.\n \n - productId (number): The ID of the product related to the query result.\n \n - productName (string): The name of the product related to the query result.\n \n - reference (string): The reference related to the query result.\n \n - hashEchoData (string): The echoed hash data.\n \n - hash (string): The hash data.\n \n - amountEditable (boolean): Indicates whether the amount is editable or not.\n \n- code (string): The code from the response.\n \n- errorCode (string): The error code from the response.\n \n- statusCode (number): The status code from the response.\n \n- timestamp (number): The timestamp of the response.\n\n## Headers\n\n- **Authorization**: Bearer
|
|
131
|
+
"content": "# query | Acueducto de Bogota\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n### HTTP POST /product/query\n\n---\n\n#### Description\n\nAllows performing a custom query on the platform.\n\n---\n\n#### Request Body\n\n- raw (application/json)\n \n - productId (number, `required`): Identifier of the product to perform the query.\n \n - queryType (string. `required`): Additional data for the query in object format.\n \n - ownAgreementId (number, `optional`): Identifier of the own agreement, if applicable\n \n - data (object): Additional data for the query in object format.\n \n - reference (string): Reference data.\n \n\n---\n\n#### Response\n\nThe response will include the results of the query in case of success.\n\n#### Response Schema\n\n- message (string): The message from the response.\n \n- messageCode (string): The code related to the message.\n \n- data (object)\n \n - payload (object)\n \n - amount (number): The amount related to the query result.\n \n - productId (number): The ID of the product related to the query result.\n \n - productName (string): The name of the product related to the query result.\n \n - reference (string): The reference related to the query result.\n \n - hashEchoData (string): The echoed hash data.\n \n - hash (string): The hash data.\n \n - amountEditable (boolean): Indicates whether the amount is editable or not.\n \n- code (string): The code from the response.\n \n- errorCode (string): The error code from the response.\n \n- statusCode (number): The status code from the response.\n \n- timestamp (number): The timestamp of the response.\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 52204,\n \"queryType\": \"BILLData\",\n \"ownAgreementId\": null,\n \"data\": {\n \"reference\": \"1234567\"\n }\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."
|
|
328
132
|
},
|
|
329
133
|
{
|
|
330
134
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
331
135
|
"name": "POST /product/query - Endpoint Documentation",
|
|
332
|
-
"description": "
|
|
333
|
-
"mimeType": "text/markdown",
|
|
334
|
-
"content": "# query | Convenio Vendo\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n### Description\n\nThis HTTP POST request is used to perform a custom query on the platform. The request body should be sent with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.\n\n---\n\n### Request Body Schema\n\n- productId (number) `required`: Identifier of the product to perform the query.\n \n- queryType (string) `required`: Type of query to be performed.\n \n- ownAgreementId (null): Identifier of the own agreement, if applicable.\n \n- data (object) `required`: Additional data for the query.\n \n - reference (string) `required`: Reference for the query.\n \n\n---\n\n### Response Body Schema\n\n- message (string): Response message.\n \n- messageCode (string): Code related to the response message.\n \n- data (object): Response data object.\n \n - payload (object): Payload data.\n \n - amount (number): Amount related to the product.\n \n - productId (number): ID of the product.\n \n - productName (string): Name of the product.\n \n - reference (string): Reference related to the query.\n \n - hashEchoData (string): Hash echo data.\n \n - hash (string): Hash value.\n \n - amountEditable (boolean): Indicates if the amount is editable.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 1100000,\n \"queryType\": \"BILLData\",\n \"ownAgreementId\": 562,\n \"data\": {\n \"reference\": \"betagdq\"\n }\n}\n```\n\n"
|
|
335
|
-
},
|
|
336
|
-
{
|
|
337
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/activation/validate-product-state",
|
|
338
|
-
"name": "POST /product/activation/validate-product-state - Endpoint Documentation",
|
|
339
|
-
"description": "---\n\n### Description\n\nAllows users to verify the activation status of a special product. The user making the request can determine the stage of their special product activation request. Below is a list of status codes along with their corresponding messages, indicating whether the request is pending review, approved, rejected, confirmed, managed by the affiliations area, or if the linking process for the product has already started. This information is useful for keeping the user informed about the progress of their request and for them to take necessary actions based on the current process status.\n\nThe following is a list of product status codes and their messages.\n\n```\n | id | name | message |\n |----|------------|-------------------------------------------------------------------------------------------------------|\n | P | PENDING | Your application is pending review |\n | A | APPROVED | Your application has been approved, we are waiting for the supplier to review your documents |\n | R | REJECTED | Your application has been rejected, please contact your advisor. |\n | M | MANAGEMENT | Your application is being handled by the linking area. |\n | C | CONFIRM | Your application is confirmed, you can now sell your product. |\n | S | STARTED | You have already tried to complete the linking process for this product, continue filling in the data |\n\n ```\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `categoryId`: Number representing the category identifier (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `status`: String representing the status\n \n - `state`: Boolean indicating the state\n \n - `message`: String containing an additional message\n \n - `stateCode`: String representing a state code",
|
|
340
|
-
"mimeType": "text/markdown",
|
|
341
|
-
"content": "# validate-product-state\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/activation/validate-product-state`\n\n## Description\n\n---\n\n### Description\n\nAllows users to verify the activation status of a special product. The user making the request can determine the stage of their special product activation request. Below is a list of status codes along with their corresponding messages, indicating whether the request is pending review, approved, rejected, confirmed, managed by the affiliations area, or if the linking process for the product has already started. This information is useful for keeping the user informed about the progress of their request and for them to take necessary actions based on the current process status.\n\nThe following is a list of product status codes and their messages.\n\n```\n | id | name | message |\n |----|------------|-------------------------------------------------------------------------------------------------------|\n | P | PENDING | Your application is pending review |\n | A | APPROVED | Your application has been approved, we are waiting for the supplier to review your documents |\n | R | REJECTED | Your application has been rejected, please contact your advisor. |\n | M | MANAGEMENT | Your application is being handled by the linking area. |\n | C | CONFIRM | Your application is confirmed, you can now sell your product. |\n | S | STARTED | You have already tried to complete the linking process for this product, continue filling in the data |\n\n ```\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `categoryId`: Number representing the category identifier (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `status`: String representing the status\n \n - `state`: Boolean indicating the state\n \n - `message`: String containing an additional message\n \n - `stateCode`: String representing a state code\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```\n/* {\r\n \"productId\": 1,\r\n \"categoryId\": 100\r\n} \r\n{\r\n \"productId\": 91,\r\n \"categoryId\": 76\r\n}*/\r\n\r\n{\r\n \"productId\": 91,\r\n \"categoryId\": 76\r\n} \n```\n\n"
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/activation/get-process-requirements",
|
|
345
|
-
"name": "POST /product/activation/get-process-requirements - Endpoint Documentation",
|
|
346
|
-
"description": "---\n\n## Description\n\nAllows retrieving all the necessary and mandatory requirements to complete the activation process of a special product. The requirements are divided into categories, each with a specific description. Each category contains a list of detailed requirements, such as personal data, merchant information, and additional documents. Requirements may include document uploads, information validation, or contract signing. These requirements are essential for the user to access the special product, and this method provides the necessary information for the user to successfully complete the activation process.\n\nIn the response for each requirement, you'll find the 'type' attribute. This attribute determines the type of data required to construct the form that the user must complete. Some common data types include:\n\n```\n | type | description |\n |-----------------------|-----------------------------------------------------------------------------------------------------|\n | text | For entering text information, such as names, surnames, etc. |\n | file | Allows uploading files, such as images or documents. |\n | select | Presents options for the user to choose from. |\n | downloadAndUpload | Provides a link to download one file and then upload another related file. |\n | securityQuestions | Provides security questions for authentication. |\n | checkboxLink | For accepting terms and conditions through a verification link. |\n | loanApplicationPolicy | Information and acceptance of the loan application policy. |\n | location | Allows the user to enter or select their location. |\n | metamap | Redirects the user to the Metamap process for identity validation. |\n | bankAccount | Provides the basic structure to build the form for a banking process. |\n | | It includes selecting the bank entity, entering the account number, and selecting the account type. |\n\n ```\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `categoryId`: Number representing the category identifier (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `id`: Number representing the identifier\n \n - `name`: String representing the name\n \n - `description`: String containing the description\n \n - `requirements`: Array of requirement objects\n \n - `id`: Number representing the requirement identifier\n \n - `name`: String representing the requirement name\n \n - `description`: String containing the requirement description\n \n - `form`: Object containing form data",
|
|
347
|
-
"mimeType": "text/markdown",
|
|
348
|
-
"content": "# get-process-requirements\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/activation/get-process-requirements`\n\n## Description\n\n---\n\n## Description\n\nAllows retrieving all the necessary and mandatory requirements to complete the activation process of a special product. The requirements are divided into categories, each with a specific description. Each category contains a list of detailed requirements, such as personal data, merchant information, and additional documents. Requirements may include document uploads, information validation, or contract signing. These requirements are essential for the user to access the special product, and this method provides the necessary information for the user to successfully complete the activation process.\n\nIn the response for each requirement, you'll find the 'type' attribute. This attribute determines the type of data required to construct the form that the user must complete. Some common data types include:\n\n```\n | type | description |\n |-----------------------|-----------------------------------------------------------------------------------------------------|\n | text | For entering text information, such as names, surnames, etc. |\n | file | Allows uploading files, such as images or documents. |\n | select | Presents options for the user to choose from. |\n | downloadAndUpload | Provides a link to download one file and then upload another related file. |\n | securityQuestions | Provides security questions for authentication. |\n | checkboxLink | For accepting terms and conditions through a verification link. |\n | loanApplicationPolicy | Information and acceptance of the loan application policy. |\n | location | Allows the user to enter or select their location. |\n | metamap | Redirects the user to the Metamap process for identity validation. |\n | bankAccount | Provides the basic structure to build the form for a banking process. |\n | | It includes selecting the bank entity, entering the account number, and selecting the account type. |\n\n ```\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `categoryId`: Number representing the category identifier (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `id`: Number representing the identifier\n \n - `name`: String representing the name\n \n - `description`: String containing the description\n \n - `requirements`: Array of requirement objects\n \n - `id`: Number representing the requirement identifier\n \n - `name`: String representing the requirement name\n \n - `description`: String containing the requirement description\n \n - `form`: Object containing form data\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n## Request Body\n\n**Type**: `raw`\n\n```\n/*{ \r\n \"productId\": 1100007,\r\n \"categoryId\": 173\r\n} */ \r\n\r\n\r\n{\r\n \"productId\": 91,\r\n \"categoryId\": 76\r\n} \n```\n\n"
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/activation/update",
|
|
352
|
-
"name": "POST /product/activation/update - Endpoint Documentation",
|
|
353
|
-
"description": "---\n\n## Description\n\nAllows updating the information of the requirements completed by the user for the activation process of a special product. Users can modify the information provided in each of the requirements to ensure it is up-to-date and accurate. Updating the information of the requirements is essential to progress in the activation process of the special product. Once the information is updated, it is evaluated again to determine if all necessary requirements are met to continue or complete the activation process.\n\n---\n\n## Request Schema\n\n- `requirements`: Object containing requirement data (required)\n \n - Each key is a string representing a requirement ID\n \n - Each value is an object with arbitrary properties\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `errors`: Array of error objects\n \n - `id`: Number representing the error identifier\n \n - `message`: String containing the error message",
|
|
136
|
+
"description": "**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 1587 |\n| queryType | \"BILLData\" |\n| data.reference | \"63440172\" |",
|
|
354
137
|
"mimeType": "text/markdown",
|
|
355
|
-
"content": "#
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/activation/upload/file",
|
|
359
|
-
"name": "POST /product/activation/upload/file - Endpoint Documentation",
|
|
360
|
-
"description": "---\n\n### Description\n\nAllows users to upload files necessary to meet the requirements of the activation process for a special product. The uploaded files can be documents in PDF format, images in JPG, JPEG, or PNG formats, or Word documents in DOC or DOCX format. Before uploading a file, validations are performed to ensure that it meets the established type and size requirements. Once uploaded, the file can be subsequently validated as part of the special product activation process. If the file meets the requirements, it will contribute to the progress of the process; otherwise, it will be indicated as invalid, and a new upload will be requested.\n\n---\n\n### Response schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `errors`: Array of error objects\n \n - `id`: Number representing the error identifier\n \n - `message`: String containing the error message",
|
|
361
|
-
"mimeType": "text/markdown",
|
|
362
|
-
"content": "# update/file\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/activation/upload/file`\n\n## Description\n\n---\n\n### Description\n\nAllows users to upload files necessary to meet the requirements of the activation process for a special product. The uploaded files can be documents in PDF format, images in JPG, JPEG, or PNG formats, or Word documents in DOC or DOCX format. Before uploading a file, validations are performed to ensure that it meets the established type and size requirements. Once uploaded, the file can be subsequently validated as part of the special product activation process. If the file meets the requirements, it will contribute to the progress of the process; otherwise, it will be indicated as invalid, and a new upload will be requested.\n\n---\n\n### Response schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `errors`: Array of error objects\n \n - `id`: Number representing the error identifier\n \n - `message`: String containing the error message\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `formdata`\n\n"
|
|
138
|
+
"content": "# query\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 1587 |\n| queryType | \"BILLData\" |\n| data.reference | \"63440172\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 1587,\n \"queryType\": \"BILLData\",\n \"ownAgreementId\": null,\n \"data\": {\n \"reference\": \"63440172\"\n }\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."
|
|
363
139
|
},
|
|
364
140
|
{
|
|
365
141
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
366
142
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
367
|
-
"description": "---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `sellType`: String indicating the type of the sell operation (required)\n \n- `hash`: String containing the hash value for the operation (required)\n \n- `data`: Object containing additional data (required)\n \n - `reference`: String containing the reference number for the payment (required)\n \n - `cellphone`: String containing the cellphone number associated with the payment (required)\n \n - `hashEchoData`: String containing the hash echo data for the operation (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)",
|
|
143
|
+
"description": "---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `sellType`: String indicating the type of the sell operation (required)\n \n- `hash`: String containing the hash value for the operation (required)\n \n- `data`: Object containing additional data (required)\n \n - `reference`: String containing the reference number for the payment (required)\n \n - `cellphone`: String containing the cellphone number associated with the payment (required)\n \n - `hashEchoData`: String containing the hash echo data for the operation (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| amount | 9999 |\n| productId | 1587 |\n| sellType | \"Bill\" |\n| data.agreement | 2010910 |\n| data.reference | \"63440172\" |\n| data.cellphone | \"3203550000\" |\n| data.hashEchoData | \"eyJhZ3JlZW1lbnRJZCI6MzM3NDMsInJlZmVyZW5jZTEiOiI2MzQ0MDE3MiIsInJlZmVyZW5jZTIiOm51bGwsImFtb3VudCI6OTk5OSwiYWdyZWVtZW50TWVzc2FnZSI6IiIsImFncmVlbWVudENvZGUiOiIwMCIsInJlcXVpcmVzQW1vdW50IjoiMCIsImFkaXRpb25hbFZhbHVlNTRFY28iOiIwMTIzNDU2Nzg5MCIsImFkaXRpb25hbFZhbHVlNjJFY28iOiIxNTE2NTc4OTU1NjM0MjgxNjM4NzM5OTAyMjk1IiwiYWNjb3VudERhdGFBY3JlZGl0ZWQiOiI0NzU3NjY3MjA1ODE2Mzg3Mzk5MDIyOTUyMjc2IiwiYWRkaXRpb25hbENvbXBhbnlDb2RlIjoiMTUxNjU3ODk1NTYzNDI4MjgwNjI4MzcwMTIxMiIsImRhdGUiOiIyMDI2LTAzLTEwIiwidHJhY2UiOjUxMjF9\" |",
|
|
368
144
|
"mimeType": "text/markdown",
|
|
369
|
-
"content": "# sell\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `sellType`: String indicating the type of the sell operation (required)\n \n- `hash`: String containing the hash value for the operation (required)\n \n- `data`: Object containing additional data (required)\n \n - `reference`: String containing the reference number for the payment (required)\n \n - `cellphone`: String containing the cellphone number associated with the payment (required)\n \n - `hashEchoData`: String containing the hash echo data for the operation (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n## Headers\n\n- **Authorization**: Bearer
|
|
145
|
+
"content": "# sell\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `sellType`: String indicating the type of the sell operation (required)\n \n- `hash`: String containing the hash value for the operation (required)\n \n- `data`: Object containing additional data (required)\n \n - `reference`: String containing the reference number for the payment (required)\n \n - `cellphone`: String containing the cellphone number associated with the payment (required)\n \n - `hashEchoData`: String containing the hash echo data for the operation (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| amount | 9999 |\n| productId | 1587 |\n| sellType | \"Bill\" |\n| data.agreement | 2010910 |\n| data.reference | \"63440172\" |\n| data.cellphone | \"3203550000\" |\n| data.hashEchoData | \"eyJhZ3JlZW1lbnRJZCI6MzM3NDMsInJlZmVyZW5jZTEiOiI2MzQ0MDE3MiIsInJlZmVyZW5jZTIiOm51bGwsImFtb3VudCI6OTk5OSwiYWdyZWVtZW50TWVzc2FnZSI6IiIsImFncmVlbWVudENvZGUiOiIwMCIsInJlcXVpcmVzQW1vdW50IjoiMCIsImFkaXRpb25hbFZhbHVlNTRFY28iOiIwMTIzNDU2Nzg5MCIsImFkaXRpb25hbFZhbHVlNjJFY28iOiIxNTE2NTc4OTU1NjM0MjgxNjM4NzM5OTAyMjk1IiwiYWNjb3VudERhdGFBY3JlZGl0ZWQiOiI0NzU3NjY3MjA1ODE2Mzg3Mzk5MDIyOTUyMjc2IiwiYWRkaXRpb25hbENvbXBhbnlDb2RlIjoiMTUxNjU3ODk1NTYzNDI4MjgwNjI4MzcwMTIxMiIsImRhdGUiOiIyMDI2LTAzLTEwIiwidHJhY2UiOjUxMjF9\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"amount\": 9999,\n \"productId\": 1587,\n \"hash\": null,\n \"sellType\": \"Bill\",\n \"data\": {\n \"agreement\": 2010910,\n \"reference\": \"63440172\",\n \"cellphone\": \"3203550000\",\n \"hashEchoData\": \"eyJhZ3JlZW1lbnRJZCI6MzM3NDMsInJlZmVyZW5jZTEiOiI2MzQ0MDE3MiIsInJlZmVyZW5jZTIiOm51bGwsImFtb3VudCI6OTk5OSwiYWdyZWVtZW50TWVzc2FnZSI6IiIsImFncmVlbWVudENvZGUiOiIwMCIsInJlcXVpcmVzQW1vdW50IjoiMCIsImFkaXRpb25hbFZhbHVlNTRFY28iOiIwMTIzNDU2Nzg5MCIsImFkaXRpb25hbFZhbHVlNjJFY28iOiIxNTE2NTc4OTU1NjM0MjgxNjM4NzM5OTAyMjk1IiwiYWNjb3VudERhdGFBY3JlZGl0ZWQiOiI0NzU3NjY3MjA1ODE2Mzg3Mzk5MDIyOTUyMjc2IiwiYWRkaXRpb25hbENvbXBhbnlDb2RlIjoiMTUxNjU3ODk1NTYzNDI4MjgwNjI4MzcwMTIxMiIsImRhdGUiOiIyMDI2LTAzLTEwIiwidHJhY2UiOjUxMjF9\"\n }\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."
|
|
370
146
|
},
|
|
371
147
|
{
|
|
372
148
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
373
149
|
"name": "POST /product/query - Endpoint Documentation",
|
|
374
|
-
"description": "`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nBelow is an example of a request for vehicle SOAT insurance. The following necessary data must be provided: productId (in this case, 91), queryType (in this case SOATData), type of document, document number, vehicle plate, and phone number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, cifrateAmount, and hashEchoData.\n\nBelow are the valid document types for the consultation process:\n\n- CC: Cédula de ciudadanía\n \n- CE: Cédula de extranjería\n \n- NIT: Número de identificación tributaria\n \n- PS: Pasaporte\n \n- RC: Registro civil\n \n- TI: Tarjeta de identidad\n \n- CD: Carné diplomático\n \n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `docType`: (string, required) Specifies the type of document being used for identification.\n \n- `document`: (string, required) The document number for identification purposes.\n \n- `cellphone`: (string, required) The phone number associated with the query.\n \n- `license`: (string, optional) The license plate of the vehicle
|
|
150
|
+
"description": "`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nBelow is an example of a request for vehicle SOAT insurance. The following necessary data must be provided: productId (in this case, 91), queryType (in this case SOATData), type of document, document number, vehicle plate, and phone number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, cifrateAmount, and hashEchoData.\n\nBelow are the valid document types for the consultation process:\n\n- CC: Cédula de ciudadanía\n \n- CE: Cédula de extranjería\n \n- NIT: Número de identificación tributaria\n \n- PS: Pasaporte\n \n- RC: Registro civil\n \n- TI: Tarjeta de identidad\n \n- CD: Carné diplomático\n \n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `docType`: (string, required) Specifies the type of document being used for identification.\n \n- `document`: (string, required) The document number for identification purposes.\n \n- `cellphone`: (string, required) The phone number associated with the query.\n \n- `license`: (string, optional) The license plate of the vehicle.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| queryType | \"SOATData\" |\n| productId | 91 |\n| docType | \"NIT\" |\n| document | \"819000939\" |\n| cellphone | \"3200000000\" |\n| license | \"NAC854\" |",
|
|
375
151
|
"mimeType": "text/markdown",
|
|
376
|
-
"content": "# query | AXA\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nBelow is an example of a request for vehicle SOAT insurance. The following necessary data must be provided: productId (in this case, 91), queryType (in this case SOATData), type of document, document number, vehicle plate, and phone number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, cifrateAmount, and hashEchoData.\n\nBelow are the valid document types for the consultation process:\n\n- CC: Cédula de ciudadanía\n \n- CE: Cédula de extranjería\n \n- NIT: Número de identificación tributaria\n \n- PS: Pasaporte\n \n- RC: Registro civil\n \n- TI: Tarjeta de identidad\n \n- CD: Carné diplomático\n \n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `docType`: (string, required) Specifies the type of document being used for identification.\n \n- `document`: (string, required) The document number for identification purposes.\n \n- `cellphone`: (string, required) The phone number associated with the query.\n \n- `license`: (string, optional) The license plate of the vehicle.\n\n## Headers\n\n- **Authorization**: Bearer
|
|
152
|
+
"content": "# query | AXA\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nBelow is an example of a request for vehicle SOAT insurance. The following necessary data must be provided: productId (in this case, 91), queryType (in this case SOATData), type of document, document number, vehicle plate, and phone number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, cifrateAmount, and hashEchoData.\n\nBelow are the valid document types for the consultation process:\n\n- CC: Cédula de ciudadanía\n \n- CE: Cédula de extranjería\n \n- NIT: Número de identificación tributaria\n \n- PS: Pasaporte\n \n- RC: Registro civil\n \n- TI: Tarjeta de identidad\n \n- CD: Carné diplomático\n \n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `docType`: (string, required) Specifies the type of document being used for identification.\n \n- `document`: (string, required) The document number for identification purposes.\n \n- `cellphone`: (string, required) The phone number associated with the query.\n \n- `license`: (string, optional) The license plate of the vehicle.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| queryType | \"SOATData\" |\n| productId | 91 |\n| docType | \"NIT\" |\n| document | \"819000939\" |\n| cellphone | \"3200000000\" |\n| license | \"NAC854\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"queryType\": \"SOATData\",\n \"productId\": 91,\n \"docType\": \"NIT\",\n \"document\": \"819000939\",\n \"cellphone\": \"3200000000\",\n \"license\": \"NAC854\"\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."
|
|
377
153
|
},
|
|
378
154
|
{
|
|
379
155
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
380
156
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
381
|
-
"description": "`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\nExample of a payment request for the AXA Colpatria product. The necessary information is provided, such as the productId (in this case, 91) and other relevant data, all attributes are mandatory.\n\n**Note:** \nIn order to sell this product, it is important to bear in mind that it is part of a special product. Therefore, before being able to use it, it is necessary to complete the entire product activation process. This can be achieved by using the following services: `/product/activation/....` \nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` service. The necessary data are as follows: `amount`, `cifrateAmount`, and `hashEchoData`.\n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `amount`: (number, required) Total amount of the sale.\n \n - `runt`: (number) Value for RUNT.\n \n - `prima`: (number) Prima value.\n \n - `contributions`: (number) Contributions.\n \n - `valueDiscountLaw`: (number) Value of law discount.\n \n - `valueDiscountTotal`: (number) Total discount value.\n \n - `valuePayDiscount`: (number) Amount to pay with discount.\n \n - `amountAdministrative`: (number) Administrative amount.\n \n - `amountTotal`: (number) Total amount.\n \n - `dateStart`: (string) Start date.\n \n - `dateEnd`: (string) End date.\n \n - `discount`: (number) Discount.\n \n - `license`: (string) Vehicle license plate.\n \n - `hashEchoData`: (string) Hash data.\n \n - `cifrateAmount`: (object) Encrypted amount.\n \n - `hash`: (string) Hash.\n \n - `hashEchoData`: (string) Hash data.\n \n - `userDetail`: (object, required) User details.\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `email`: (string) User's email.\n \n - `document`: (string, required) User's document number.\n \n - `docType`: (string, required) Type of user's document.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer. It is important to note that this step is mandatory, as it is a direct requirement from AXA Colpatria.",
|
|
157
|
+
"description": "`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\nExample of a payment request for the AXA Colpatria product. The necessary information is provided, such as the productId (in this case, 91) and other relevant data, all attributes are mandatory.\n\n**Note:** \nIn order to sell this product, it is important to bear in mind that it is part of a special product. Therefore, before being able to use it, it is necessary to complete the entire product activation process. This can be achieved by using the following services: `/product/activation/....` \nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` service. The necessary data are as follows: `amount`, `cifrateAmount`, and `hashEchoData`.\n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `amount`: (number, required) Total amount of the sale.\n \n - `runt`: (number) Value for RUNT.\n \n - `prima`: (number) Prima value.\n \n - `contributions`: (number) Contributions.\n \n - `valueDiscountLaw`: (number) Value of law discount.\n \n - `valueDiscountTotal`: (number) Total discount value.\n \n - `valuePayDiscount`: (number) Amount to pay with discount.\n \n - `amountAdministrative`: (number) Administrative amount.\n \n - `amountTotal`: (number) Total amount.\n \n - `dateStart`: (string) Start date.\n \n - `dateEnd`: (string) End date.\n \n - `discount`: (number) Discount.\n \n - `license`: (string) Vehicle license plate.\n \n - `hashEchoData`: (string) Hash data.\n \n - `cifrateAmount`: (object) Encrypted amount.\n \n - `hash`: (string) Hash.\n \n - `hashEchoData`: (string) Hash data.\n \n - `userDetail`: (object, required) User details.\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `email`: (string) User's email.\n \n - `document`: (string, required) User's document number.\n \n - `docType`: (string, required) Type of user's document.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer. It is important to note that this step is mandatory, as it is a direct requirement from AXA Colpatria.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 91 |\n| amount | 557400 |\n| data.amount.amount | 556400 |\n| data.amount.runt | 2100 |\n| data.amount.prima | 364700 |\n| data.amount.contributions | 189600 |\n| data.amount.valueDiscountLaw | 0 |\n| data.amount.valueDiscountTotal | 0 |\n| data.amount.valuePayDiscount | 556400 |\n| data.amount.amountAdministrative | 566 |\n| data.amount.amountTotal | 557400 |\n| data.amount.dateStart | \"2024-06-04\" |\n| data.amount.dateEnd | \"2025-06-03\" |\n| data.amount.discount | 0 |\n| data.license | \"EJV885\" |\n| data.hashEchoData | \"eyJpZFRyYW5zYWNjaW9uIjoiMmE2MDhjY2YtZjdiOS00ZGM1LTg2OTQtYTAyY2E0ODNkOWE4IiwiaWRDb3JyZWxhY2lvbiI6MTcxNzUzNDY0MTc1MH0=\" |\n| data.cifrateAmount.hash | \"eyJhbW91bnQiOjU1NzQwMH0=\" |\n| data.cifrateAmount.hashEchoData | \"ef3e40f13fa0430eb1dfa9a8e499e3a4ea81c42159b5ee3eccac88d8ef47198e32d28339fcf656704009a0b05802363b3016d921bcfd6aa8920558535aa75218\" |\n| data.userDetail.cellphone | \"3200000000\" |\n| data.userDetail.email | \"test@email.com\" |\n| data.userDetail.document | \"860002964\" |\n| data.userDetail.docType | \"NIT\" |",
|
|
382
158
|
"mimeType": "text/markdown",
|
|
383
|
-
"content": "# sell | AXA\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\nExample of a payment request for the AXA Colpatria product. The necessary information is provided, such as the productId (in this case, 91) and other relevant data, all attributes are mandatory.\n\n**Note:** \nIn order to sell this product, it is important to bear in mind that it is part of a special product. Therefore, before being able to use it, it is necessary to complete the entire product activation process. This can be achieved by using the following services: `/product/activation/....` \nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` service. The necessary data are as follows: `amount`, `cifrateAmount`, and `hashEchoData`.\n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `amount`: (number, required) Total amount of the sale.\n \n - `runt`: (number) Value for RUNT.\n \n - `prima`: (number) Prima value.\n \n - `contributions`: (number) Contributions.\n \n - `valueDiscountLaw`: (number) Value of law discount.\n \n - `valueDiscountTotal`: (number) Total discount value.\n \n - `valuePayDiscount`: (number) Amount to pay with discount.\n \n - `amountAdministrative`: (number) Administrative amount.\n \n - `amountTotal`: (number) Total amount.\n \n - `dateStart`: (string) Start date.\n \n - `dateEnd`: (string) End date.\n \n - `discount`: (number) Discount.\n \n - `license`: (string) Vehicle license plate.\n \n - `hashEchoData`: (string) Hash data.\n \n - `cifrateAmount`: (object) Encrypted amount.\n \n - `hash`: (string) Hash.\n \n - `hashEchoData`: (string) Hash data.\n \n - `userDetail`: (object, required) User details.\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `email`: (string) User's email.\n \n - `document`: (string, required) User's document number.\n \n - `docType`: (string, required) Type of user's document.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer. It is important to note that this step is mandatory, as it is a direct requirement from AXA Colpatria.\n\n## Headers\n\n- **Authorization**: Bearer
|
|
159
|
+
"content": "# sell | AXA\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\nExample of a payment request for the AXA Colpatria product. The necessary information is provided, such as the productId (in this case, 91) and other relevant data, all attributes are mandatory.\n\n**Note:** \nIn order to sell this product, it is important to bear in mind that it is part of a special product. Therefore, before being able to use it, it is necessary to complete the entire product activation process. This can be achieved by using the following services: `/product/activation/....` \nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` service. The necessary data are as follows: `amount`, `cifrateAmount`, and `hashEchoData`.\n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `amount`: (number, required) Total amount of the sale.\n \n - `runt`: (number) Value for RUNT.\n \n - `prima`: (number) Prima value.\n \n - `contributions`: (number) Contributions.\n \n - `valueDiscountLaw`: (number) Value of law discount.\n \n - `valueDiscountTotal`: (number) Total discount value.\n \n - `valuePayDiscount`: (number) Amount to pay with discount.\n \n - `amountAdministrative`: (number) Administrative amount.\n \n - `amountTotal`: (number) Total amount.\n \n - `dateStart`: (string) Start date.\n \n - `dateEnd`: (string) End date.\n \n - `discount`: (number) Discount.\n \n - `license`: (string) Vehicle license plate.\n \n - `hashEchoData`: (string) Hash data.\n \n - `cifrateAmount`: (object) Encrypted amount.\n \n - `hash`: (string) Hash.\n \n - `hashEchoData`: (string) Hash data.\n \n - `userDetail`: (object, required) User details.\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `email`: (string) User's email.\n \n - `document`: (string, required) User's document number.\n \n - `docType`: (string, required) Type of user's document.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer. It is important to note that this step is mandatory, as it is a direct requirement from AXA Colpatria.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 91 |\n| amount | 557400 |\n| data.amount.amount | 556400 |\n| data.amount.runt | 2100 |\n| data.amount.prima | 364700 |\n| data.amount.contributions | 189600 |\n| data.amount.valueDiscountLaw | 0 |\n| data.amount.valueDiscountTotal | 0 |\n| data.amount.valuePayDiscount | 556400 |\n| data.amount.amountAdministrative | 566 |\n| data.amount.amountTotal | 557400 |\n| data.amount.dateStart | \"2024-06-04\" |\n| data.amount.dateEnd | \"2025-06-03\" |\n| data.amount.discount | 0 |\n| data.license | \"EJV885\" |\n| data.hashEchoData | \"eyJpZFRyYW5zYWNjaW9uIjoiMmE2MDhjY2YtZjdiOS00ZGM1LTg2OTQtYTAyY2E0ODNkOWE4IiwiaWRDb3JyZWxhY2lvbiI6MTcxNzUzNDY0MTc1MH0=\" |\n| data.cifrateAmount.hash | \"eyJhbW91bnQiOjU1NzQwMH0=\" |\n| data.cifrateAmount.hashEchoData | \"ef3e40f13fa0430eb1dfa9a8e499e3a4ea81c42159b5ee3eccac88d8ef47198e32d28339fcf656704009a0b05802363b3016d921bcfd6aa8920558535aa75218\" |\n| data.userDetail.cellphone | \"3200000000\" |\n| data.userDetail.email | \"test@email.com\" |\n| data.userDetail.document | \"860002964\" |\n| data.userDetail.docType | \"NIT\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 91,\n \"data\": {\n \"amount\": {\n \"amount\": 556400,\n \"runt\": 2100,\n \"prima\": 364700,\n \"contributions\": 189600,\n \"valueDiscountLaw\": 0,\n \"valueDiscountTotal\": 0,\n \"valuePayDiscount\": 556400,\n \"amountAdministrative\": 566,\n \"amountTotal\": 557400,\n \"dateStart\": \"2024-06-04\",\n \"dateEnd\": \"2025-06-03\",\n \"discount\": 0\n },\n \"license\": \"EJV885\",\n \"hashEchoData\": \"eyJpZFRyYW5zYWNjaW9uIjoiMmE2MDhjY2YtZjdiOS00ZGM1LTg2OTQtYTAyY2E0ODNkOWE4IiwiaWRDb3JyZWxhY2lvbiI6MTcxNzUzNDY0MTc1MH0=\",\n \"cifrateAmount\": {\n \"hash\": \"eyJhbW91bnQiOjU1NzQwMH0=\",\n \"hashEchoData\": \"ef3e40f13fa0430eb1dfa9a8e499e3a4ea81c42159b5ee3eccac88d8ef47198e32d28339fcf656704009a0b05802363b3016d921bcfd6aa8920558535aa75218\"\n },\n \"userDetail\": {\n \"cellphone\": \"3200000000\",\n \"email\": \"test@email.com\",\n \"document\": \"860002964\",\n \"docType\": \"NIT\"\n }\n },\n \"amount\": 557400\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."
|
|
384
160
|
},
|
|
385
161
|
{
|
|
386
162
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
387
163
|
"name": "POST /product/query - Endpoint Documentation",
|
|
388
|
-
"description": "`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nThe following is an example of a SOAT insurance request for a vehicle. The following required data must be provided: productId (in this case, 1014006), queryType (in this case SOATFullData), document number and vehicle registration number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, vehDetail, and userDetail.\n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n\n- `documentType`: (number, required) Specifies the type of document. Allowed values:\n \n - `1`: CEDULA DE CIUDADANIA\n - `2`: CEDULA DE EXTRANJERIA\n - `3`: NIT\n - `4`: TARJETA DE IDENTIDAD\n \n- `document`: (string, required) The document number for identification purposes.\n \n Length validation rules based on `documentType`:\n \n - **For `documentType = 1` (CEDULA DE CIUDADANIA)**:\n - Minimum length: 7 numeric characters\n - Maximum length: 10 numeric characters\n \n - **For `documentType = 2` (CEDULA DE EXTRANJERIA)**:\n - Minimum length: 5 characters (alphanumeric allowed)\n - Maximum length: 15 characters (alphanumeric allowed)\n \n - **For `documentType = 3` (NIT)**:\n - Minimum length: 6 numeric characters (includes verification digit – VD)\n - Maximum length: 11 numeric characters (includes VD)\n - Must be sent **without hyphen (-)** and must include the verification digit.\n \n Additional rules based on length:\n - If length is 11, must start with \"1\" → (new CC + VD)\n - If length is 10, must start with \"8\" or \"9\" → (NIT + VD)\n - If length is 9 or less, can start with any digit → (old CC + VD)\n \n 💡 **VD (Verification Digit)**: A verification digit is a number mathematically calculated by DIAN (Dirección de Impuestos y Aduanas Nacionales) to validate that the NIT was entered correctly. It is included as part of the document number.\n \n - **For `documentType = 4` (TARJETA DE IDENTIDAD)**:\n - Minimum length: 10 numeric characters\n - Maximum length: 11 numeric characters\n \n \n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `license`: (string, required) The license plate of the vehicle
|
|
164
|
+
"description": "`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nThe following is an example of a SOAT insurance request for a vehicle. The following required data must be provided: productId (in this case, 1014006), queryType (in this case SOATFullData), document number and vehicle registration number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, vehDetail, and userDetail.\n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n\n- `documentType`: (number, required) Specifies the type of document. Allowed values:\n \n - `1`: CEDULA DE CIUDADANIA\n - `2`: CEDULA DE EXTRANJERIA\n - `3`: NIT\n - `4`: TARJETA DE IDENTIDAD\n \n- `document`: (string, required) The document number for identification purposes.\n \n Length validation rules based on `documentType`:\n \n - **For `documentType = 1` (CEDULA DE CIUDADANIA)**:\n - Minimum length: 7 numeric characters\n - Maximum length: 10 numeric characters\n \n - **For `documentType = 2` (CEDULA DE EXTRANJERIA)**:\n - Minimum length: 5 characters (alphanumeric allowed)\n - Maximum length: 15 characters (alphanumeric allowed)\n \n - **For `documentType = 3` (NIT)**:\n - Minimum length: 6 numeric characters (includes verification digit – VD)\n - Maximum length: 11 numeric characters (includes VD)\n - Must be sent **without hyphen (-)** and must include the verification digit.\n \n Additional rules based on length:\n - If length is 11, must start with \"1\" → (new CC + VD)\n - If length is 10, must start with \"8\" or \"9\" → (NIT + VD)\n - If length is 9 or less, can start with any digit → (old CC + VD)\n \n 💡 **VD (Verification Digit)**: A verification digit is a number mathematically calculated by DIAN (Dirección de Impuestos y Aduanas Nacionales) to validate that the NIT was entered correctly. It is included as part of the document number.\n \n - **For `documentType = 4` (TARJETA DE IDENTIDAD)**:\n - Minimum length: 10 numeric characters\n - Maximum length: 11 numeric characters\n \n \n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.",
|
|
389
165
|
"mimeType": "text/markdown",
|
|
390
|
-
"content": "# query | Quote\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nThe following is an example of a SOAT insurance request for a vehicle. The following required data must be provided: productId (in this case, 1014006), queryType (in this case SOATFullData), document number and vehicle registration number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, vehDetail, and userDetail.\n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n\n- `documentType`: (number, required) Specifies the type of document. Allowed values:\n \n - `1`: CEDULA DE CIUDADANIA\n - `2`: CEDULA DE EXTRANJERIA\n - `3`: NIT\n - `4`: TARJETA DE IDENTIDAD\n \n- `document`: (string, required) The document number for identification purposes.\n \n Length validation rules based on `documentType`:\n \n - **For `documentType = 1` (CEDULA DE CIUDADANIA)**:\n - Minimum length: 7 numeric characters\n - Maximum length: 10 numeric characters\n \n - **For `documentType = 2` (CEDULA DE EXTRANJERIA)**:\n - Minimum length: 5 characters (alphanumeric allowed)\n - Maximum length: 15 characters (alphanumeric allowed)\n \n - **For `documentType = 3` (NIT)**:\n - Minimum length: 6 numeric characters (includes verification digit – VD)\n - Maximum length: 11 numeric characters (includes VD)\n - Must be sent **without hyphen (-)** and must include the verification digit.\n \n Additional rules based on length:\n - If length is 11, must start with \"1\" → (new CC + VD)\n - If length is 10, must start with \"8\" or \"9\" → (NIT + VD)\n - If length is 9 or less, can start with any digit → (old CC + VD)\n \n 💡 **VD (Verification Digit)**: A verification digit is a number mathematically calculated by DIAN (Dirección de Impuestos y Aduanas Nacionales) to validate that the NIT was entered correctly. It is included as part of the document number.\n \n - **For `documentType = 4` (TARJETA DE IDENTIDAD)**:\n - Minimum length: 10 numeric characters\n - Maximum length: 11 numeric characters\n \n \n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n## Headers\n\n- **Authorization**: Bearer
|
|
166
|
+
"content": "# query | Quote\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n`Allows performing a custom query on the platform. Send the request body with the necessary parameters for the query in the format specified by the QueryBody object. The response will include the results of the query in case of success.`\n\nThe following is an example of a SOAT insurance request for a vehicle. The following required data must be provided: productId (in this case, 1014006), queryType (in this case SOATFullData), document number and vehicle registration number.\n\n**Note:**\n\nIt is important to remember that in the response of this product, several of its data points are crucial as they must be sent in the service that performs the sale (/sells/sell). The necessary data are as follows: amount, vehDetail, and userDetail.\n\n### Payload for Custom Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n\n- `documentType`: (number, required) Specifies the type of document. Allowed values:\n \n - `1`: CEDULA DE CIUDADANIA\n - `2`: CEDULA DE EXTRANJERIA\n - `3`: NIT\n - `4`: TARJETA DE IDENTIDAD\n \n- `document`: (string, required) The document number for identification purposes.\n \n Length validation rules based on `documentType`:\n \n - **For `documentType = 1` (CEDULA DE CIUDADANIA)**:\n - Minimum length: 7 numeric characters\n - Maximum length: 10 numeric characters\n \n - **For `documentType = 2` (CEDULA DE EXTRANJERIA)**:\n - Minimum length: 5 characters (alphanumeric allowed)\n - Maximum length: 15 characters (alphanumeric allowed)\n \n - **For `documentType = 3` (NIT)**:\n - Minimum length: 6 numeric characters (includes verification digit – VD)\n - Maximum length: 11 numeric characters (includes VD)\n - Must be sent **without hyphen (-)** and must include the verification digit.\n \n Additional rules based on length:\n - If length is 11, must start with \"1\" → (new CC + VD)\n - If length is 10, must start with \"8\" or \"9\" → (NIT + VD)\n - If length is 9 or less, can start with any digit → (old CC + VD)\n \n 💡 **VD (Verification Digit)**: A verification digit is a number mathematically calculated by DIAN (Dirección de Impuestos y Aduanas Nacionales) to validate that the NIT was entered correctly. It is included as part of the document number.\n \n - **For `documentType = 4` (TARJETA DE IDENTIDAD)**:\n - Minimum length: 10 numeric characters\n - Maximum length: 11 numeric characters\n \n \n- `queryType`: (string, required) Specifies the type of query to be performed.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 1014006,\n \"documentType\": 1,\n \"document\": \"1032363500\",\n \"queryType\": \"SOATFullData\",\n \"license\": \"XAZ975\"\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."
|
|
391
167
|
},
|
|
392
168
|
{
|
|
393
169
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
394
170
|
"name": "POST /product/query - Endpoint Documentation",
|
|
395
171
|
"description": "`Returns the information of the last policy issued for the license plate. If the policy is queried on days after its issuance, the service will not return the requested information. It is important to clarify that this endpoint does not retrieve failed sales in the system.`\n\n### Payload for Consult Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `queryType`: (string, required) Specifies the type of query to be performed, in this case have to be \\`SOATPolicy\\`.\n \n- `license`: (string, required) The license plate of the vehicle.",
|
|
396
172
|
"mimeType": "text/markdown",
|
|
397
|
-
"content": "# query | Consult\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n`Returns the information of the last policy issued for the license plate. If the policy is queried on days after its issuance, the service will not return the requested information. It is important to clarify that this endpoint does not retrieve failed sales in the system.`\n\n### Payload for Consult Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `queryType`: (string, required) Specifies the type of query to be performed, in this case have to be \\`SOATPolicy\\`.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n## Headers\n\n- **Authorization**: Bearer
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
401
|
-
"name": "POST /sells/sell - Endpoint Documentation",
|
|
402
|
-
"description": "`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\n**Product restrictions**\n\n- Allows selling SOAT in the name of a person who is not the owner of the vehicle.\n \n- SOAT can be sold for a PRIVATE CAR.\n \n- SOAT can be sold for a PRIVATE MOTORCYCLE.\n \n- SOAT can be sold for a PUBLIC SERVICE VEHICLE.\n \n- SOAT cannot be sold to vehicles with 0 KM.\n \n- Sales hours are from 12:30 AM to 11:30 PM.\n \n- SOAT can be sold up to 30 days before its expiration.\n \n- The definition of the Administrative Cost and Commission for the sale of SOAT can be validated with your Refacil Commercial Advisor.\n \n- The insurance companies are directly responsible for sending the issued SOAT via email. The API provides a URL from the provider for downloading the SOAT.\n \n\nExample of a payment request for the Previsora product. The necessary information is provided, such as the productId (in this case, 1014006) and other relevant data, all attributes are mandatory.\n\n**Note:**\n\nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` Quote Service. The necessary data are as follows: `amount`, `vehDetail`, and `userDetail`.\n\nSome data obtained from the /products/query service may be null; however, this data is mandatory for the sale process and must be filled in.\n\nIn addition to the `userDetail` object, three additional attributes must be sent: `gender`, `RegimenTypeId`, and `RutId`.\n\nThe possible values for each of the aforementioned attributes are as follows:\n\n- `gender`:\n \n - M = Male\n \n - F = Female\n \n- `RegimenTypeId`:\n \n - 1 = Responsible for IVA\n \n - 2 = Not responsible for IVA\n \n- `RutId`:\n \n - 1 = Large taxpayer\n \n - 2 = Self-withholding agent\n \n - 3 = IVA withholding agent\n \n - 4 = Simple taxation regime\n \n - 5 = Not applicable\n \n - 6 = Large taxpayer-Self-withholding agent-IVA withholding agent\n \n - 7 = Self-withholding agent-IVA withholding agent\n \n - 8 = Large taxpayer-IVA withholding agent\n \n- `cityCode`: DANE code\n \n- `stateCode`: This field is populated based on the **state** sheet [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n- To check the values for the other parameters, please refer [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n\n## Field Validations\n\n### **Name and Last Name Format Requirements**\n\nThe validation rules for the `name` and `lastName` fields in the `userDetail` object depend on the person type:\n\n**For Natural Persons (Personas Naturales):**\n\n- Must contain only letters (uppercase and lowercase)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words (for compound names)\n \n- Minimum length of 3 characters\n \n- Does not allow numbers\n \n- Does not allow special characters such as `@`, `#`\n \n\n**For Legal Entities (Personas Jurídicas):**\n\n- Allows alphanumeric characters (letters and numbers)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words\n \n- Minimum length of 3 characters\n \n- Does not allow special characters such as `@`, `#`\n \n\n### Email Format Requirements\n\nThe `email` field must comply with strict validation rules to prevent errors during the issuance process:\n\n- Must contain only letters and numbers (no accents or special characters like á, é, etc.)\n \n- Allows only single separators: `.` (period), `_` (underscore), `-` (hyphen)\n \n- Cannot have consecutive separators (e.g., `..` or `--`)\n \n- Cannot start or end with separators\n \n- Domain must have at least 2 characters in the top-level domain (TLD)\n \n- Must not contain spaces or the `@` symbol except as the domain separator\n \n\n**Valid examples:**\n\n- `usuario@gmail.com`\n \n- `nombre.apellido@empresa.co`\n \n- `user_name@dominio.com`\n \n- `user-123@test.com.co`\n \n\n**Invalid examples:**\n\n- `usuario.@gmail.com` (separator at the end before @)\n \n- `user..name@domain.com` (consecutive separators)\n \n- `@domain.com` (missing local part)\n \n- `usuarioá@gmail.com` (contains accented characters)\n \n- `campohernández@gmail.com` (contains special characters with encoding issues)\n \n- `johndoe@---gmail.com` (multiple consecutive hyphens)\n \n\n### Address Format Requirements\n\nThe `address` field must comply with the following validation rules:\n\n### Validation Rules\n\n1. **Cannot start with numeric characters** - The first character after trimming cannot be a digit (0-9)\n2. **First character must be**:\n - A letter (uppercase or lowercase): `A-Z`, `a-z`\n - A vowel with Spanish acute accent: `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú`\n - The letter ñ/Ñ\n - The letter ü/Ü (with diaeresis)\n - A whitespace character (space, tab, etc.) — though after `trim()`, this is effectively not possible at the start\n3. **Subsequent characters (position 2 onwards) can be**:\n - All characters allowed for the first position, plus:\n - Digits: `0-9`\n - Special address characters: `#`, `-`, `.`, `,`\n\n### Allowed Characters Summary\n\n| Category | Characters |\n| --- | --- |\n| Letters (no accent) | `A-Z`, `a-z` |\n| Accented vowels | `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú` |\n| Special Spanish letters | `ñ`, `Ñ`, `ü`, `Ü` |\n| Digits (not at start) | `0-9` |\n| Whitespace | Space, tab, etc. |\n| Address symbols | `#`, `-`, `.`, `,` |\n\n### NOT Allowed Characters\n\n| Category | Examples |\n| --- | --- |\n| Other punctuation | `; : ! ? ¡ ¿ \" ' ( ) [ ] { }` |\n| Mathematical/monetary | `+ * / % = < > ^ ~ € $ @ &` |\n| Underscore and separators | `_ | \\` |\n| Other accented letters | `ç`, `ã`, `õ`, `ô`, `ä`, `ö`, `ê`, `â`, `î`, `û` |\n| Non-Latin alphabets | Cyrillic, Greek, Arabic, Chinese, etc. |\n| Emojis | 🙂 😁 🏠 |\n\n### Valid Examples\n\n- `Calle 123 #45-67`\n- `Carrera 7 Bis #8-24`\n- `Avenida Principal, Casa 5`\n- `Avenida Pérez Galdós`\n- `Av. Simón Bolívar 123`\n- `Cl 10 Sur #45-20`\n- `Urbanización La Ñora, Bloque 3`\n\n### Invalid Examples\n\n| Address | Reason |\n| --- | --- |\n| `123 Calle Principal` | Starts with a number |\n| `Calle @Principal` | Contains `@` (not allowed) |\n| `Dirección <>` | Contains angle brackets |\n| `Calle_45 #12-34` | Contains underscore `_` |\n| `Calle 5 #12-34!` | Contains exclamation mark `!` |\n| `Rua São Paulo 10` | Contains `ã` (not in allowed accents) |\n| `Avenida (Frente al parque)` | Contains parentheses `()` |\n \n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n> **Note:** According to the provider's official documentation, the `name` and `lastName` fields are mandatory. \n \n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `license`: (string, required) License plate of the vehicle.\n \n - `productId`: (string, required) Product identification (empty in this example).\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `document`: (string, required) User's document number. For NIT, this field must include the verification digit and must be sent **without hyphen (-)**.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `TariffCode`: (string, required) Tariff code.\n \n - `InsurancePremium`: (number, required) Insurance premium.\n \n - `InsuranceTax`: (number, required) Insurance tax.\n \n - `InsuranceFine`: (number, required) Insurance fine.\n \n - `Total`: (number, required) Total.\n \n - `TotalWithDiscountAmount`: (number, required) Total with discount amount.\n \n - `DiscountAmount`: (number, required) Discount amount.\n \n - `ElectricDiscount`: (numbe, requiredr) Electric discount.\n \n - `PercentageElectricDiscount`: (number, required) Percentage electric discount.\n \n - `InsurancePremiumFormatted`: (string, required) Formatted insurance premium.\n \n - `InsuranceTaxFormatted`: (string, required) Formatted insurance tax.\n \n - `InsuranceFineFormatted`: (string, required) Formatted insurance fine.\n \n - `TotalFormatted`: (string, required) Formatted total.\n \n - `DiscountAmountFormatted`: (string, required) Formatted discount amount.\n \n - `TotalWithDiscountAmountFormatted`: (string, required) Formatted total with discount amount.\n \n - `createdAt`: (string, required) Creation date.\n \n - `dateStart`: (string, required) Start date.\n \n - `dateEnd`: (string, required) End date.\n \n - `amount`: (number, required) Amount.\n \n - `amountDiscount`: (number, required) Discount amount.\n \n - `amountOthers`: (number, required) Other amounts.\n \n - `amountTotal`: (number, required) Total amount.\n \n - `hash`: (string, required) Hash.\n \n - `runt`: (number, required) Value for RUNT.\n \n - `codeFasecolda`: (number, required) Fasecolda code.\n \n - `typeCost`: (number, required) Cost type.\n \n - `Law2161Discount`: (number, required) Law 2161 discount.\n \n - `discount`: (number, required) Discount.\n \n - `vehDetail`: (object) Vehicle details.\n \n - `vehicleLineId`: (number, required) Vehicle line ID.\n \n - `vehicleClassId`: (number, required) Vehicle class ID.\n \n - `vehicleClassMinistryId`: (number, required) Vehicle class ID (Ministry).\n \n - `serviceTypeId`: (number, required) Service type ID.\n \n - `vehicleBodyTypeId`: (number, required) Vehicle body type ID.\n \n - `vehicleDescription`: (string, required) Vehicle description.\n \n - `vehDescription`: (string, required) Vehicle description.\n \n - `queryId`: (string, required) Query ID.\n \n - `noSerie`: (string, required) Serial number.\n \n - `noMotor`: (string, required) Motor number. If this field is empty, it must be filled with the value from the VIN field.\n \n - `noChasis`: (string, required) Chassis number.\n \n - `cc`: (number, required) Cubic centimeters.\n \n - `type`: (string, required) Type.\n \n - `gas`: (string, required) Gas.\n \n - `year`: (number, required) Year.\n \n - `passengers`: (number, required) Passengers.\n \n - `brand`: (string, required) Brand.\n \n - `brandId`: (number, required) Brand ID.\n \n - `vin`: (string, required) Vehicle identification number (VIN).\n \n - `lineCode`: (string, required) Line code.\n \n - `service`: (string, required) Service.\n \n - `zone`: (string, required) Zone.\n \n - `weight`: (number, required) Weight.\n \n - `cityId`: (number, required) City ID.\n \n - `userDetail`: (object, required) User details.\n \n - `name`: (string) User's name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `lastName`: (string, required) User's last name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `docNumber`: (string, required) User's document number.\n \n - `cellphone`: (string) User's cellphone number. Must be a valid Colombian cellphone number starting with \"3\" followed by exactly 9 digits (e.g., \"3001234567\").\n \n - `email`: (string, required) User's email. Must be a valid email address format (e.g., \"[user@domain.com](https://mailto:user@domain.com)\").\n \n - `phone`: (string) User's phone.\n \n - `docType`: (number, required) User's document type.\n \n - `address`: (string, required) User's address.\n \n - `cityCode`: (integer, required) User's city code.\n \n - `stateCode`: (integer, required) User's state code.\n \n - `addressType`: (number, required) User's address type.\n \n - `typePerson`: (string) Type of person (e.g., 'F' for natural person, 'J' for legal person).\n \n - `gender`: (string) User's gender.\n \n - `RegimenTypeId`: (string, required) User's regime type ID.\n \n - `RutId`: (number, required) User's RUT ID.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\n`Note`: If the VIN data is not available, the API will use the chassis number as a replacement.\n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. **This response will be returned within a timeout of 120,000 milliseconds (2 minutes).** In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer.",
|
|
403
|
-
"mimeType": "text/markdown",
|
|
404
|
-
"content": "# sell | Previsora\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\n**Product restrictions**\n\n- Allows selling SOAT in the name of a person who is not the owner of the vehicle.\n \n- SOAT can be sold for a PRIVATE CAR.\n \n- SOAT can be sold for a PRIVATE MOTORCYCLE.\n \n- SOAT can be sold for a PUBLIC SERVICE VEHICLE.\n \n- SOAT cannot be sold to vehicles with 0 KM.\n \n- Sales hours are from 12:30 AM to 11:30 PM.\n \n- SOAT can be sold up to 30 days before its expiration.\n \n- The definition of the Administrative Cost and Commission for the sale of SOAT can be validated with your Refacil Commercial Advisor.\n \n- The insurance companies are directly responsible for sending the issued SOAT via email. The API provides a URL from the provider for downloading the SOAT.\n \n\nExample of a payment request for the Previsora product. The necessary information is provided, such as the productId (in this case, 1014006) and other relevant data, all attributes are mandatory.\n\n**Note:**\n\nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` Quote Service. The necessary data are as follows: `amount`, `vehDetail`, and `userDetail`.\n\nSome data obtained from the /products/query service may be null; however, this data is mandatory for the sale process and must be filled in.\n\nIn addition to the `userDetail` object, three additional attributes must be sent: `gender`, `RegimenTypeId`, and `RutId`.\n\nThe possible values for each of the aforementioned attributes are as follows:\n\n- `gender`:\n \n - M = Male\n \n - F = Female\n \n- `RegimenTypeId`:\n \n - 1 = Responsible for IVA\n \n - 2 = Not responsible for IVA\n \n- `RutId`:\n \n - 1 = Large taxpayer\n \n - 2 = Self-withholding agent\n \n - 3 = IVA withholding agent\n \n - 4 = Simple taxation regime\n \n - 5 = Not applicable\n \n - 6 = Large taxpayer-Self-withholding agent-IVA withholding agent\n \n - 7 = Self-withholding agent-IVA withholding agent\n \n - 8 = Large taxpayer-IVA withholding agent\n \n- `cityCode`: DANE code\n \n- `stateCode`: This field is populated based on the **state** sheet [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n- To check the values for the other parameters, please refer [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n\n## Field Validations\n\n### **Name and Last Name Format Requirements**\n\nThe validation rules for the `name` and `lastName` fields in the `userDetail` object depend on the person type:\n\n**For Natural Persons (Personas Naturales):**\n\n- Must contain only letters (uppercase and lowercase)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words (for compound names)\n \n- Minimum length of 3 characters\n \n- Does not allow numbers\n \n- Does not allow special characters such as `@`, `#`\n \n\n**For Legal Entities (Personas Jurídicas):**\n\n- Allows alphanumeric characters (letters and numbers)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words\n \n- Minimum length of 3 characters\n \n- Does not allow special characters such as `@`, `#`\n \n\n### Email Format Requirements\n\nThe `email` field must comply with strict validation rules to prevent errors during the issuance process:\n\n- Must contain only letters and numbers (no accents or special characters like á, é, etc.)\n \n- Allows only single separators: `.` (period), `_` (underscore), `-` (hyphen)\n \n- Cannot have consecutive separators (e.g., `..` or `--`)\n \n- Cannot start or end with separators\n \n- Domain must have at least 2 characters in the top-level domain (TLD)\n \n- Must not contain spaces or the `@` symbol except as the domain separator\n \n\n**Valid examples:**\n\n- `usuario@gmail.com`\n \n- `nombre.apellido@empresa.co`\n \n- `user_name@dominio.com`\n \n- `user-123@test.com.co`\n \n\n**Invalid examples:**\n\n- `usuario.@gmail.com` (separator at the end before @)\n \n- `user..name@domain.com` (consecutive separators)\n \n- `@domain.com` (missing local part)\n \n- `usuarioá@gmail.com` (contains accented characters)\n \n- `campohernández@gmail.com` (contains special characters with encoding issues)\n \n- `johndoe@---gmail.com` (multiple consecutive hyphens)\n \n\n### Address Format Requirements\n\nThe `address` field must comply with the following validation rules:\n\n### Validation Rules\n\n1. **Cannot start with numeric characters** - The first character after trimming cannot be a digit (0-9)\n2. **First character must be**:\n - A letter (uppercase or lowercase): `A-Z`, `a-z`\n - A vowel with Spanish acute accent: `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú`\n - The letter ñ/Ñ\n - The letter ü/Ü (with diaeresis)\n - A whitespace character (space, tab, etc.) — though after `trim()`, this is effectively not possible at the start\n3. **Subsequent characters (position 2 onwards) can be**:\n - All characters allowed for the first position, plus:\n - Digits: `0-9`\n - Special address characters: `#`, `-`, `.`, `,`\n\n### Allowed Characters Summary\n\n| Category | Characters |\n| --- | --- |\n| Letters (no accent) | `A-Z`, `a-z` |\n| Accented vowels | `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú` |\n| Special Spanish letters | `ñ`, `Ñ`, `ü`, `Ü` |\n| Digits (not at start) | `0-9` |\n| Whitespace | Space, tab, etc. |\n| Address symbols | `#`, `-`, `.`, `,` |\n\n### NOT Allowed Characters\n\n| Category | Examples |\n| --- | --- |\n| Other punctuation | `; : ! ? ¡ ¿ \" ' ( ) [ ] { }` |\n| Mathematical/monetary | `+ * / % = < > ^ ~ € $ @ &` |\n| Underscore and separators | `_ | \\` |\n| Other accented letters | `ç`, `ã`, `õ`, `ô`, `ä`, `ö`, `ê`, `â`, `î`, `û` |\n| Non-Latin alphabets | Cyrillic, Greek, Arabic, Chinese, etc. |\n| Emojis | 🙂 😁 🏠 |\n\n### Valid Examples\n\n- `Calle 123 #45-67`\n- `Carrera 7 Bis #8-24`\n- `Avenida Principal, Casa 5`\n- `Avenida Pérez Galdós`\n- `Av. Simón Bolívar 123`\n- `Cl 10 Sur #45-20`\n- `Urbanización La Ñora, Bloque 3`\n\n### Invalid Examples\n\n| Address | Reason |\n| --- | --- |\n| `123 Calle Principal` | Starts with a number |\n| `Calle @Principal` | Contains `@` (not allowed) |\n| `Dirección <>` | Contains angle brackets |\n| `Calle_45 #12-34` | Contains underscore `_` |\n| `Calle 5 #12-34!` | Contains exclamation mark `!` |\n| `Rua São Paulo 10` | Contains `ã` (not in allowed accents) |\n| `Avenida (Frente al parque)` | Contains parentheses `()` |\n \n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n> **Note:** According to the provider's official documentation, the `name` and `lastName` fields are mandatory. \n \n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `license`: (string, required) License plate of the vehicle.\n \n - `productId`: (string, required) Product identification (empty in this example).\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `document`: (string, required) User's document number. For NIT, this field must include the verification digit and must be sent **without hyphen (-)**.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `TariffCode`: (string, required) Tariff code.\n \n - `InsurancePremium`: (number, required) Insurance premium.\n \n - `InsuranceTax`: (number, required) Insurance tax.\n \n - `InsuranceFine`: (number, required) Insurance fine.\n \n - `Total`: (number, required) Total.\n \n - `TotalWithDiscountAmount`: (number, required) Total with discount amount.\n \n - `DiscountAmount`: (number, required) Discount amount.\n \n - `ElectricDiscount`: (numbe, requiredr) Electric discount.\n \n - `PercentageElectricDiscount`: (number, required) Percentage electric discount.\n \n - `InsurancePremiumFormatted`: (string, required) Formatted insurance premium.\n \n - `InsuranceTaxFormatted`: (string, required) Formatted insurance tax.\n \n - `InsuranceFineFormatted`: (string, required) Formatted insurance fine.\n \n - `TotalFormatted`: (string, required) Formatted total.\n \n - `DiscountAmountFormatted`: (string, required) Formatted discount amount.\n \n - `TotalWithDiscountAmountFormatted`: (string, required) Formatted total with discount amount.\n \n - `createdAt`: (string, required) Creation date.\n \n - `dateStart`: (string, required) Start date.\n \n - `dateEnd`: (string, required) End date.\n \n - `amount`: (number, required) Amount.\n \n - `amountDiscount`: (number, required) Discount amount.\n \n - `amountOthers`: (number, required) Other amounts.\n \n - `amountTotal`: (number, required) Total amount.\n \n - `hash`: (string, required) Hash.\n \n - `runt`: (number, required) Value for RUNT.\n \n - `codeFasecolda`: (number, required) Fasecolda code.\n \n - `typeCost`: (number, required) Cost type.\n \n - `Law2161Discount`: (number, required) Law 2161 discount.\n \n - `discount`: (number, required) Discount.\n \n - `vehDetail`: (object) Vehicle details.\n \n - `vehicleLineId`: (number, required) Vehicle line ID.\n \n - `vehicleClassId`: (number, required) Vehicle class ID.\n \n - `vehicleClassMinistryId`: (number, required) Vehicle class ID (Ministry).\n \n - `serviceTypeId`: (number, required) Service type ID.\n \n - `vehicleBodyTypeId`: (number, required) Vehicle body type ID.\n \n - `vehicleDescription`: (string, required) Vehicle description.\n \n - `vehDescription`: (string, required) Vehicle description.\n \n - `queryId`: (string, required) Query ID.\n \n - `noSerie`: (string, required) Serial number.\n \n - `noMotor`: (string, required) Motor number. If this field is empty, it must be filled with the value from the VIN field.\n \n - `noChasis`: (string, required) Chassis number.\n \n - `cc`: (number, required) Cubic centimeters.\n \n - `type`: (string, required) Type.\n \n - `gas`: (string, required) Gas.\n \n - `year`: (number, required) Year.\n \n - `passengers`: (number, required) Passengers.\n \n - `brand`: (string, required) Brand.\n \n - `brandId`: (number, required) Brand ID.\n \n - `vin`: (string, required) Vehicle identification number (VIN).\n \n - `lineCode`: (string, required) Line code.\n \n - `service`: (string, required) Service.\n \n - `zone`: (string, required) Zone.\n \n - `weight`: (number, required) Weight.\n \n - `cityId`: (number, required) City ID.\n \n - `userDetail`: (object, required) User details.\n \n - `name`: (string) User's name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `lastName`: (string, required) User's last name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `docNumber`: (string, required) User's document number.\n \n - `cellphone`: (string) User's cellphone number. Must be a valid Colombian cellphone number starting with \"3\" followed by exactly 9 digits (e.g., \"3001234567\").\n \n - `email`: (string, required) User's email. Must be a valid email address format (e.g., \"[user@domain.com](https://mailto:user@domain.com)\").\n \n - `phone`: (string) User's phone.\n \n - `docType`: (number, required) User's document type.\n \n - `address`: (string, required) User's address.\n \n - `cityCode`: (integer, required) User's city code.\n \n - `stateCode`: (integer, required) User's state code.\n \n - `addressType`: (number, required) User's address type.\n \n - `typePerson`: (string) Type of person (e.g., 'F' for natural person, 'J' for legal person).\n \n - `gender`: (string) User's gender.\n \n - `RegimenTypeId`: (string, required) User's regime type ID.\n \n - `RutId`: (number, required) User's RUT ID.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\n`Note`: If the VIN data is not available, the API will use the chassis number as a replacement.\n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. **This response will be returned within a timeout of 120,000 milliseconds (2 minutes).** In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 1014006,\n \"data\": {\n \"license\": \"ABC123\",\n \"productId\": 1014006,\n \"cellphone\": \"3001234567\",\n \"document\": \"1111111\",\n \"terminal\": {\n \"id\": \"123456\"\n },\n \"amount\": {\n \"TariffCode\": \"920\",\n \"InsurancePremium\": 907900,\n \"InsuranceTax\": 453950,\n \"InsuranceFine\": 1700,\n \"Total\": 1363550,\n \"TotalWithDiscountAmount\": 1363550,\n \"DiscountAmount\": 0,\n \"ElectricDiscount\": 0,\n \"PercentageElectricDiscount\": 0,\n \"InsurancePremiumFormatted\": \"$907.900\",\n \"InsuranceTaxFormatted\": \"$453.950\",\n \"InsuranceFineFormatted\": \"$1.700\",\n \"TotalFormatted\": \"$1.363.550\",\n \"DiscountAmountFormatted\": \"$0\",\n \"TotalWithDiscountAmountFormatted\": \"$1.363.550\",\n \"createdAt\": \"2020-02-20T10:23:24.000Z\",\n \"dateStart\": \"2020-02-20\",\n \"dateEnd\": \"2021-02-19\",\n \"amount\": 1413550,\n \"amountDiscount\": 0,\n \"amountOthers\": 50000,\n \"amountTotal\": 1413550,\n \"hash\": \"ba931ea8d2b57c9248ec4285c45efdddfdfff4d8\",\n \"runt\": 1700,\n \"codeFasecolda\": 0,\n \"typeCost\": 0,\n \"Law2161Discount\": 0,\n \"discount\": 0\n },\n \"vehDetail\": {\n \"vehicleLineId\": 5560,\n \"vehicleClassId\": 8,\n \"vehicleClassMinistryId\": 28,\n \"serviceTypeId\": 2,\n \"vehicleBodyTypeId\": 8,\n \"vehicleDescription\": \"NISSAN URVAN - 2012\",\n \"vehDescription\": \"NISSAN URVAN - 2012\",\n \"queryId\": \"\",\n \"noSerie\": \"\",\n \"noMotor\": \"Z0796987CM\",\n \"noChasis\": \"JN1MG4E25Z0796987\",\n \"cc\": 2953,\n \"type\": \"CERRADA\",\n \"gas\": \"\",\n \"year\": 2012,\n \"passengers\": 16,\n \"brand\": \"NISSAN\",\n \"brandId\": 64,\n \"vin\": \"JN1MG4E25Z0796987\",\n \"lineCode\": \"\",\n \"service\": \"\",\n \"zone\": \"\",\n \"weight\": 0,\n \"cityId\": 5266\n },\n \"userDetail\": {\n \"name\": \"Nombre\",\n \"lastName\": \"Apellido\",\n \"docNumber\": \"1111111\",\n \"cellphone\": \"3001234567\",\n \"email\": \"contacto@gmail.com\",\n \"phone\": \"\",\n \"docType\": 1,\n \"address\": \"Calle 1 # 1 - 01\",\n \"cityCode\": 76834,\n \"stateCode\": 76,\n \"addressType\": 1,\n \"typePerson\": \"F\",\n \"gender\": \"M\",\n \"RegimenTypeId\": \"2\",\n \"RutId\": 5\n }\n },\n \"amount\": 1413550\n}\n```\n\n"
|
|
173
|
+
"content": "# query | Consult\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n`Returns the information of the last policy issued for the license plate. If the policy is queried on days after its issuance, the service will not return the requested information. It is important to clarify that this endpoint does not retrieve failed sales in the system.`\n\n### Payload for Consult Query\n\nThe following payload is required for performing a custom query:\n\n- `productId`: (number, required) Identifies the product for which the query is being made.\n \n- `queryType`: (string, required) Specifies the type of query to be performed, in this case have to be \\`SOATPolicy\\`.\n \n- `license`: (string, required) The license plate of the vehicle.\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 1014006,\n \"queryType\": \"SOATPolicy\",\n \"license\": \"XAZ975\"\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."
|
|
405
174
|
},
|
|
406
175
|
{
|
|
407
176
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
408
177
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
409
|
-
"description": "Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.",
|
|
178
|
+
"description": "`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\n**Product restrictions**\n\n- Allows selling SOAT in the name of a person who is not the owner of the vehicle.\n \n- SOAT can be sold for a PRIVATE CAR.\n \n- SOAT can be sold for a PRIVATE MOTORCYCLE.\n \n- SOAT can be sold for a PUBLIC SERVICE VEHICLE.\n \n- SOAT cannot be sold to vehicles with 0 KM.\n \n- Sales hours are from 12:30 AM to 11:30 PM.\n \n- SOAT can be sold up to 30 days before its expiration.\n \n- The definition of the Administrative Cost and Commission for the sale of SOAT can be validated with your Refacil Commercial Advisor.\n \n- The insurance companies are directly responsible for sending the issued SOAT via email. The API provides a URL from the provider for downloading the SOAT.\n \n\nExample of a payment request for the Previsora product. The necessary information is provided, such as the productId (in this case, 1014006) and other relevant data, all attributes are mandatory.\n\n**Note:**\n\nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` Quote Service. The necessary data are as follows: `amount`, `vehDetail`, and `userDetail`.\n\nSome data obtained from the /products/query service may be null; however, this data is mandatory for the sale process and must be filled in.\n\nIn addition to the `userDetail` object, three additional attributes must be sent: `gender`, `RegimenTypeId`, and `RutId`.\n\nThe possible values for each of the aforementioned attributes are as follows:\n\n- `gender`:\n \n - M = Male\n \n - F = Female\n \n- `RegimenTypeId`:\n \n - 1 = Responsible for IVA\n \n - 2 = Not responsible for IVA\n \n- `RutId`:\n \n - 1 = Large taxpayer\n \n - 2 = Self-withholding agent\n \n - 3 = IVA withholding agent\n \n - 4 = Simple taxation regime\n \n - 5 = Not applicable\n \n - 6 = Large taxpayer-Self-withholding agent-IVA withholding agent\n \n - 7 = Self-withholding agent-IVA withholding agent\n \n - 8 = Large taxpayer-IVA withholding agent\n \n- `cityCode`: DANE code\n \n- `stateCode`: This field is populated based on the **state** sheet [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n- To check the values for the other parameters, please refer [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n\n## Field Validations\n\n### **Name and Last Name Format Requirements**\n\nThe validation rules for the `name` and `lastName` fields in the `userDetail` object depend on the person type:\n\n**For Natural Persons (Personas Naturales):**\n\n- Must contain only letters (uppercase and lowercase)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words (for compound names)\n \n- Minimum length of 3 characters\n \n- Does not allow numbers\n \n- Does not allow special characters such as `@`, `#`\n \n\n**For Legal Entities (Personas Jurídicas):**\n\n- Allows alphanumeric characters (letters and numbers)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words\n \n- Minimum length of 3 characters\n \n- Does not allow special characters such as `@`, `#`\n \n\n### Email Format Requirements\n\nThe `email` field must comply with strict validation rules to prevent errors during the issuance process:\n\n- Must contain only letters and numbers (no accents or special characters like á, é, etc.)\n \n- Allows only single separators: `.` (period), `_` (underscore), `-` (hyphen)\n \n- Cannot have consecutive separators (e.g., `..` or `--`)\n \n- Cannot start or end with separators\n \n- Domain must have at least 2 characters in the top-level domain (TLD)\n \n- Must not contain spaces or the `@` symbol except as the domain separator\n \n\n**Valid examples:**\n\n- `usuario@gmail.com`\n \n- `nombre.apellido@empresa.co`\n \n- `user_name@dominio.com`\n \n- `user-123@test.com.co`\n \n\n**Invalid examples:**\n\n- `usuario.@gmail.com` (separator at the end before @)\n \n- `user..name@domain.com` (consecutive separators)\n \n- `@domain.com` (missing local part)\n \n- `usuarioá@gmail.com` (contains accented characters)\n \n- `campohernández@gmail.com` (contains special characters with encoding issues)\n \n- `johndoe@---gmail.com` (multiple consecutive hyphens)\n \n\n### Address Format Requirements\n\nThe `address` field must comply with the following validation rules:\n\n### Validation Rules\n\n1. **Cannot start with numeric characters** - The first character after trimming cannot be a digit (0-9)\n2. **First character must be**:\n - A letter (uppercase or lowercase): `A-Z`, `a-z`\n - A vowel with Spanish acute accent: `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú`\n - The letter ñ/Ñ\n - The letter ü/Ü (with diaeresis)\n - A whitespace character (space, tab, etc.) — though after `trim()`, this is effectively not possible at the start\n3. **Subsequent characters (position 2 onwards) can be**:\n - All characters allowed for the first position, plus:\n - Digits: `0-9`\n - Special address characters: `#`, `-`, `.`, `,`\n\n### Allowed Characters Summary\n\n| Category | Characters |\n| --- | --- |\n| Letters (no accent) | `A-Z`, `a-z` |\n| Accented vowels | `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú` |\n| Special Spanish letters | `ñ`, `Ñ`, `ü`, `Ü` |\n| Digits (not at start) | `0-9` |\n| Whitespace | Space, tab, etc. |\n| Address symbols | `#`, `-`, `.`, `,` |\n\n### NOT Allowed Characters\n\n| Category | Examples |\n| --- | --- |\n| Other punctuation | `; : ! ? ¡ ¿ \" ' ( ) [ ] { }` |\n| Mathematical/monetary | `+ * / % = < > ^ ~ € $ @ &` |\n| Underscore and separators | `_ | \\` |\n| Other accented letters | `ç`, `ã`, `õ`, `ô`, `ä`, `ö`, `ê`, `â`, `î`, `û` |\n| Non-Latin alphabets | Cyrillic, Greek, Arabic, Chinese, etc. |\n| Emojis | 🙂 😁 🏠 |\n\n### Valid Examples\n\n- `Calle 123 #45-67`\n- `Carrera 7 Bis #8-24`\n- `Avenida Principal, Casa 5`\n- `Avenida Pérez Galdós`\n- `Av. Simón Bolívar 123`\n- `Cl 10 Sur #45-20`\n- `Urbanización La Ñora, Bloque 3`\n\n### Invalid Examples\n\n| Address | Reason |\n| --- | --- |\n| `123 Calle Principal` | Starts with a number |\n| `Calle @Principal` | Contains `@` (not allowed) |\n| `Dirección <>` | Contains angle brackets |\n| `Calle_45 #12-34` | Contains underscore `_` |\n| `Calle 5 #12-34!` | Contains exclamation mark `!` |\n| `Rua São Paulo 10` | Contains `ã` (not in allowed accents) |\n| `Avenida (Frente al parque)` | Contains parentheses `()` |\n \n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n> **Note:** According to the provider's official documentation, the `name` and `lastName` fields are mandatory. \n \n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `license`: (string, required) License plate of the vehicle.\n \n - `productId`: (string, required) Product identification (empty in this example).\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `document`: (string, required) User's document number. For NIT, this field must include the verification digit and must be sent **without hyphen (-)**.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `TariffCode`: (string, required) Tariff code.\n \n - `InsurancePremium`: (number, required) Insurance premium.\n \n - `InsuranceTax`: (number, required) Insurance tax.\n \n - `InsuranceFine`: (number, required) Insurance fine.\n \n - `Total`: (number, required) Total.\n \n - `TotalWithDiscountAmount`: (number, required) Total with discount amount.\n \n - `DiscountAmount`: (number, required) Discount amount.\n \n - `ElectricDiscount`: (numbe, requiredr) Electric discount.\n \n - `PercentageElectricDiscount`: (number, required) Percentage electric discount.\n \n - `InsurancePremiumFormatted`: (string, required) Formatted insurance premium.\n \n - `InsuranceTaxFormatted`: (string, required) Formatted insurance tax.\n \n - `InsuranceFineFormatted`: (string, required) Formatted insurance fine.\n \n - `TotalFormatted`: (string, required) Formatted total.\n \n - `DiscountAmountFormatted`: (string, required) Formatted discount amount.\n \n - `TotalWithDiscountAmountFormatted`: (string, required) Formatted total with discount amount.\n \n - `createdAt`: (string, required) Creation date.\n \n - `dateStart`: (string, required) Start date.\n \n - `dateEnd`: (string, required) End date.\n \n - `amount`: (number, required) Amount.\n \n - `amountDiscount`: (number, required) Discount amount.\n \n - `amountOthers`: (number, required) Other amounts.\n \n - `amountTotal`: (number, required) Total amount.\n \n - `hash`: (string, required) Hash.\n \n - `runt`: (number, required) Value for RUNT.\n \n - `codeFasecolda`: (number, required) Fasecolda code.\n \n - `typeCost`: (number, required) Cost type.\n \n - `Law2161Discount`: (number, required) Law 2161 discount.\n \n - `discount`: (number, required) Discount.\n \n - `vehDetail`: (object) Vehicle details.\n \n - `vehicleLineId`: (number, required) Vehicle line ID.\n \n - `vehicleClassId`: (number, required) Vehicle class ID. Defined by the SAME provider (SOAT – RUNT classification). Valid values:\n \n | Value | Description |\n | --- | --- |\n | 1 | MOTOS |\n | 2 | CAMPEROS O CAMIONETAS |\n | 3 | CARGA O MIXTO |\n | 4 | OFICIALES, ESPECIALES, BOMBEROS, DIPLOMÁTICOS |\n | 5 | AUTOMÓVILES FAMILIARES |\n | 6 | VEHÍCULO PARA 6 O MÁS PASAJEROS |\n | 7 | AUTOS DE NEGOCIOS, TAXIS, ALQUILER, ENSEÑANZA |\n | 8 | BUSES O BUSETAS |\n | 9 | INTERMUNICIPAL |\n | 12 | MOTOCARRO |\n | 13 | CICLOMOTOR |\n \n - `vehicleClassMinistryId`: (number, required) Vehicle class ID (Ministry).\n \n - `serviceTypeId`: (number, required) Service type ID.\n \n - `vehicleBodyTypeId`: (number, required) Vehicle body type ID.\n \n - `vehicleDescription`: (string, required) Vehicle description.\n \n - `vehDescription`: (string, required) Vehicle description.\n \n - `queryId`: (string, required) Query ID.\n \n - `noSerie`: (string, required) Serial number.\n \n - `noMotor`: (string, required) Motor number. If this field is empty, it must be filled with the value from the VIN field.\n \n - `noChasis`: (string, required) Chassis number.\n \n - `cc`: (number, required) Cubic centimeters.\n \n - `type`: (string, required) Type.\n \n - `gas`: (string, required) Gas.\n \n - `year`: (number, required) Year.\n \n - `passengers`: (number, required) Passengers.\n \n - `brand`: (string, required) Brand.\n \n - `brandId`: (number, required) Brand ID.\n \n - `vin`: (string, required) Vehicle identification number (VIN).\n \n - `lineCode`: (string, required) Line code.\n \n - `service`: (string, required) Service.\n \n - `zone`: (string, required) Zone.\n \n - `weight`: (number, required) Weight.\n \n - `cityId`: (number, required) City ID.\n \n - `userDetail`: (object, required) User details.\n \n - `name`: (string) User's name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `lastName`: (string, required) User's last name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `docNumber`: (string, required) User's document number.\n \n - `cellphone`: (string) User's cellphone number. Must be a valid Colombian cellphone number starting with \"3\" followed by exactly 9 digits (e.g., \"3001234567\").\n \n - `email`: (string, required) User's email. Must be a valid email address format (e.g., \"[user@domain.com](https://mailto:user@domain.com)\").\n \n - `phone`: (string) User's phone.\n \n - `docType`: (number, required) User's document type.\n \n - `address`: (string, required) User's address.\n \n - `cityCode`: (integer, required) User's city code.\n \n - `stateCode`: (integer, required) User's state code.\n \n - `addressType`: (number, required) User's address type.\n \n - `typePerson`: (string) Type of person (e.g., 'F' for natural person, 'J' for legal person).\n \n - `gender`: (string) User's gender.\n \n - `RegimenTypeId`: (string, required) User's regime type ID.\n \n - `RutId`: (number, required) User's RUT ID.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\n`Note`: If the VIN data is not available, the API will use the chassis number as a replacement.\n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. **This response will be returned within a timeout of 120,000 milliseconds (2 minutes).** In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer.",
|
|
410
179
|
"mimeType": "text/markdown",
|
|
411
|
-
"content": "# sell | Luck and Chance RushBet\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 603,\n \"amount\": 100,\n \"data\": {\n \"cellphone\": \"3200000000\",\n \"document\": \"1023900000\"\n }\n}\n```\n\n"
|
|
180
|
+
"content": "# sell | Previsora\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n`Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.`\n\n**Product restrictions**\n\n- Allows selling SOAT in the name of a person who is not the owner of the vehicle.\n \n- SOAT can be sold for a PRIVATE CAR.\n \n- SOAT can be sold for a PRIVATE MOTORCYCLE.\n \n- SOAT can be sold for a PUBLIC SERVICE VEHICLE.\n \n- SOAT cannot be sold to vehicles with 0 KM.\n \n- Sales hours are from 12:30 AM to 11:30 PM.\n \n- SOAT can be sold up to 30 days before its expiration.\n \n- The definition of the Administrative Cost and Commission for the sale of SOAT can be validated with your Refacil Commercial Advisor.\n \n- The insurance companies are directly responsible for sending the issued SOAT via email. The API provides a URL from the provider for downloading the SOAT.\n \n\nExample of a payment request for the Previsora product. The necessary information is provided, such as the productId (in this case, 1014006) and other relevant data, all attributes are mandatory.\n\n**Note:**\n\nIt is important to remember that to perform a sale using this service, several crucial data points must be sent. Some of these data points are obtained from the `/products/query` Quote Service. The necessary data are as follows: `amount`, `vehDetail`, and `userDetail`.\n\nSome data obtained from the /products/query service may be null; however, this data is mandatory for the sale process and must be filled in.\n\nIn addition to the `userDetail` object, three additional attributes must be sent: `gender`, `RegimenTypeId`, and `RutId`.\n\nThe possible values for each of the aforementioned attributes are as follows:\n\n- `gender`:\n \n - M = Male\n \n - F = Female\n \n- `RegimenTypeId`:\n \n - 1 = Responsible for IVA\n \n - 2 = Not responsible for IVA\n \n- `RutId`:\n \n - 1 = Large taxpayer\n \n - 2 = Self-withholding agent\n \n - 3 = IVA withholding agent\n \n - 4 = Simple taxation regime\n \n - 5 = Not applicable\n \n - 6 = Large taxpayer-Self-withholding agent-IVA withholding agent\n \n - 7 = Self-withholding agent-IVA withholding agent\n \n - 8 = Large taxpayer-IVA withholding agent\n \n- `cityCode`: DANE code\n \n- `stateCode`: This field is populated based on the **state** sheet [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n- To check the values for the other parameters, please refer [here.](https://refacil01-my.sharepoint.com/:f:/g/personal/w_sarmiento_refacil_com/EnvRlRK92WlHuuBfU6Zyom0BvCFmPG_OzhU-te-6ZQ0jMw)\n \n\n## Field Validations\n\n### **Name and Last Name Format Requirements**\n\nThe validation rules for the `name` and `lastName` fields in the `userDetail` object depend on the person type:\n\n**For Natural Persons (Personas Naturales):**\n\n- Must contain only letters (uppercase and lowercase)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words (for compound names)\n \n- Minimum length of 3 characters\n \n- Does not allow numbers\n \n- Does not allow special characters such as `@`, `#`\n \n\n**For Legal Entities (Personas Jurídicas):**\n\n- Allows alphanumeric characters (letters and numbers)\n \n- Allows letters with accents: `á, é, í, ó, ú, Á, É, Í, Ó, Ú`\n \n- Allows Spanish special characters: `ñ, Ñ, ü, Ü`\n \n- Allows spaces between words\n \n- Minimum length of 3 characters\n \n- Does not allow special characters such as `@`, `#`\n \n\n### Email Format Requirements\n\nThe `email` field must comply with strict validation rules to prevent errors during the issuance process:\n\n- Must contain only letters and numbers (no accents or special characters like á, é, etc.)\n \n- Allows only single separators: `.` (period), `_` (underscore), `-` (hyphen)\n \n- Cannot have consecutive separators (e.g., `..` or `--`)\n \n- Cannot start or end with separators\n \n- Domain must have at least 2 characters in the top-level domain (TLD)\n \n- Must not contain spaces or the `@` symbol except as the domain separator\n \n\n**Valid examples:**\n\n- `usuario@gmail.com`\n \n- `nombre.apellido@empresa.co`\n \n- `user_name@dominio.com`\n \n- `user-123@test.com.co`\n \n\n**Invalid examples:**\n\n- `usuario.@gmail.com` (separator at the end before @)\n \n- `user..name@domain.com` (consecutive separators)\n \n- `@domain.com` (missing local part)\n \n- `usuarioá@gmail.com` (contains accented characters)\n \n- `campohernández@gmail.com` (contains special characters with encoding issues)\n \n- `johndoe@---gmail.com` (multiple consecutive hyphens)\n \n\n### Address Format Requirements\n\nThe `address` field must comply with the following validation rules:\n\n### Validation Rules\n\n1. **Cannot start with numeric characters** - The first character after trimming cannot be a digit (0-9)\n2. **First character must be**:\n - A letter (uppercase or lowercase): `A-Z`, `a-z`\n - A vowel with Spanish acute accent: `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú`\n - The letter ñ/Ñ\n - The letter ü/Ü (with diaeresis)\n - A whitespace character (space, tab, etc.) — though after `trim()`, this is effectively not possible at the start\n3. **Subsequent characters (position 2 onwards) can be**:\n - All characters allowed for the first position, plus:\n - Digits: `0-9`\n - Special address characters: `#`, `-`, `.`, `,`\n\n### Allowed Characters Summary\n\n| Category | Characters |\n| --- | --- |\n| Letters (no accent) | `A-Z`, `a-z` |\n| Accented vowels | `á`, `é`, `í`, `ó`, `ú`, `Á`, `É`, `Í`, `Ó`, `Ú` |\n| Special Spanish letters | `ñ`, `Ñ`, `ü`, `Ü` |\n| Digits (not at start) | `0-9` |\n| Whitespace | Space, tab, etc. |\n| Address symbols | `#`, `-`, `.`, `,` |\n\n### NOT Allowed Characters\n\n| Category | Examples |\n| --- | --- |\n| Other punctuation | `; : ! ? ¡ ¿ \" ' ( ) [ ] { }` |\n| Mathematical/monetary | `+ * / % = < > ^ ~ € $ @ &` |\n| Underscore and separators | `_ | \\` |\n| Other accented letters | `ç`, `ã`, `õ`, `ô`, `ä`, `ö`, `ê`, `â`, `î`, `û` |\n| Non-Latin alphabets | Cyrillic, Greek, Arabic, Chinese, etc. |\n| Emojis | 🙂 😁 🏠 |\n\n### Valid Examples\n\n- `Calle 123 #45-67`\n- `Carrera 7 Bis #8-24`\n- `Avenida Principal, Casa 5`\n- `Avenida Pérez Galdós`\n- `Av. Simón Bolívar 123`\n- `Cl 10 Sur #45-20`\n- `Urbanización La Ñora, Bloque 3`\n\n### Invalid Examples\n\n| Address | Reason |\n| --- | --- |\n| `123 Calle Principal` | Starts with a number |\n| `Calle @Principal` | Contains `@` (not allowed) |\n| `Dirección <>` | Contains angle brackets |\n| `Calle_45 #12-34` | Contains underscore `_` |\n| `Calle 5 #12-34!` | Contains exclamation mark `!` |\n| `Rua São Paulo 10` | Contains `ã` (not in allowed accents) |\n| `Avenida (Frente al parque)` | Contains parentheses `()` |\n \n\n### Payload for Custom Sell\n\nThe following payload is required for performing a custom sell:\n\n> **Note:** According to the provider's official documentation, the `name` and `lastName` fields are mandatory. \n \n\n- `productId`: (number, required) Identifies the product for which the sale is being made.\n \n- `data`: (object, required) Contains specific sale data.\n \n - `license`: (string, required) License plate of the vehicle.\n \n - `productId`: (string, required) Product identification (empty in this example).\n \n - `cellphone`: (string, required) User's cellphone number.\n \n - `document`: (string, required) User's document number. For NIT, this field must include the verification digit and must be sent **without hyphen (-)**.\n \n - `terminal`:\n \n - `id`: A unique identifier for the merchant (POS) that is generating the SOAT sale transaction for the API client. If there is no merchant under the API client's network, the same merchant ID assigned by Refacil should be sent in the `id` field.\n \n - `amount`: (object, required) Details about the sale amount.\n \n - `TariffCode`: (string, required) Tariff code.\n \n - `InsurancePremium`: (number, required) Insurance premium.\n \n - `InsuranceTax`: (number, required) Insurance tax.\n \n - `InsuranceFine`: (number, required) Insurance fine.\n \n - `Total`: (number, required) Total.\n \n - `TotalWithDiscountAmount`: (number, required) Total with discount amount.\n \n - `DiscountAmount`: (number, required) Discount amount.\n \n - `ElectricDiscount`: (numbe, requiredr) Electric discount.\n \n - `PercentageElectricDiscount`: (number, required) Percentage electric discount.\n \n - `InsurancePremiumFormatted`: (string, required) Formatted insurance premium.\n \n - `InsuranceTaxFormatted`: (string, required) Formatted insurance tax.\n \n - `InsuranceFineFormatted`: (string, required) Formatted insurance fine.\n \n - `TotalFormatted`: (string, required) Formatted total.\n \n - `DiscountAmountFormatted`: (string, required) Formatted discount amount.\n \n - `TotalWithDiscountAmountFormatted`: (string, required) Formatted total with discount amount.\n \n - `createdAt`: (string, required) Creation date.\n \n - `dateStart`: (string, required) Start date.\n \n - `dateEnd`: (string, required) End date.\n \n - `amount`: (number, required) Amount.\n \n - `amountDiscount`: (number, required) Discount amount.\n \n - `amountOthers`: (number, required) Other amounts.\n \n - `amountTotal`: (number, required) Total amount.\n \n - `hash`: (string, required) Hash.\n \n - `runt`: (number, required) Value for RUNT.\n \n - `codeFasecolda`: (number, required) Fasecolda code.\n \n - `typeCost`: (number, required) Cost type.\n \n - `Law2161Discount`: (number, required) Law 2161 discount.\n \n - `discount`: (number, required) Discount.\n \n - `vehDetail`: (object) Vehicle details.\n \n - `vehicleLineId`: (number, required) Vehicle line ID.\n \n - `vehicleClassId`: (number, required) Vehicle class ID. Defined by the SAME provider (SOAT – RUNT classification). Valid values:\n \n | Value | Description |\n | --- | --- |\n | 1 | MOTOS |\n | 2 | CAMPEROS O CAMIONETAS |\n | 3 | CARGA O MIXTO |\n | 4 | OFICIALES, ESPECIALES, BOMBEROS, DIPLOMÁTICOS |\n | 5 | AUTOMÓVILES FAMILIARES |\n | 6 | VEHÍCULO PARA 6 O MÁS PASAJEROS |\n | 7 | AUTOS DE NEGOCIOS, TAXIS, ALQUILER, ENSEÑANZA |\n | 8 | BUSES O BUSETAS |\n | 9 | INTERMUNICIPAL |\n | 12 | MOTOCARRO |\n | 13 | CICLOMOTOR |\n \n - `vehicleClassMinistryId`: (number, required) Vehicle class ID (Ministry).\n \n - `serviceTypeId`: (number, required) Service type ID.\n \n - `vehicleBodyTypeId`: (number, required) Vehicle body type ID.\n \n - `vehicleDescription`: (string, required) Vehicle description.\n \n - `vehDescription`: (string, required) Vehicle description.\n \n - `queryId`: (string, required) Query ID.\n \n - `noSerie`: (string, required) Serial number.\n \n - `noMotor`: (string, required) Motor number. If this field is empty, it must be filled with the value from the VIN field.\n \n - `noChasis`: (string, required) Chassis number.\n \n - `cc`: (number, required) Cubic centimeters.\n \n - `type`: (string, required) Type.\n \n - `gas`: (string, required) Gas.\n \n - `year`: (number, required) Year.\n \n - `passengers`: (number, required) Passengers.\n \n - `brand`: (string, required) Brand.\n \n - `brandId`: (number, required) Brand ID.\n \n - `vin`: (string, required) Vehicle identification number (VIN).\n \n - `lineCode`: (string, required) Line code.\n \n - `service`: (string, required) Service.\n \n - `zone`: (string, required) Zone.\n \n - `weight`: (number, required) Weight.\n \n - `cityId`: (number, required) City ID.\n \n - `userDetail`: (object, required) User details.\n \n - `name`: (string) User's name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `lastName`: (string, required) User's last name.\n \n - Must have at least **3 characters** and cannot contain special characters.\n \n - No maximum length is configured.\n \n - `docNumber`: (string, required) User's document number.\n \n - `cellphone`: (string) User's cellphone number. Must be a valid Colombian cellphone number starting with \"3\" followed by exactly 9 digits (e.g., \"3001234567\").\n \n - `email`: (string, required) User's email. Must be a valid email address format (e.g., \"[user@domain.com](https://mailto:user@domain.com)\").\n \n - `phone`: (string) User's phone.\n \n - `docType`: (number, required) User's document type.\n \n - `address`: (string, required) User's address.\n \n - `cityCode`: (integer, required) User's city code.\n \n - `stateCode`: (integer, required) User's state code.\n \n - `addressType`: (number, required) User's address type.\n \n - `typePerson`: (string) Type of person (e.g., 'F' for natural person, 'J' for legal person).\n \n - `gender`: (string) User's gender.\n \n - `RegimenTypeId`: (string, required) User's regime type ID.\n \n - `RutId`: (number, required) User's RUT ID.\n \n- `amount`: (number, required) Total amount of the sale.\n \n- `moveTmpBalance`: (boolean) Indicates whether to move temporary balance.\n \n\n`Note`: If the VIN data is not available, the API will use the chassis number as a replacement.\n\nAfter the sale has been successfully completed, the response will follow a structure similar to the following. **This response will be returned within a timeout of 120,000 milliseconds (2 minutes).** In this response, important information is provided, such as the balance of the main wallet and the balance of the profit wallet. Additionally, within the 'billData' object, you will find the fundamental information necessary to generate the sales receipt that will be delivered to the end customer.\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 1014006,\n \"data\": {\n \"license\": \"ABC123\",\n \"productId\": 1014006,\n \"cellphone\": \"3001234567\",\n \"document\": \"1111111\",\n \"terminal\": {\n \"id\": \"123456\"\n },\n \"amount\": {\n \"TariffCode\": \"920\",\n \"InsurancePremium\": 907900,\n \"InsuranceTax\": 453950,\n \"InsuranceFine\": 1700,\n \"Total\": 1363550,\n \"TotalWithDiscountAmount\": 1363550,\n \"DiscountAmount\": 0,\n \"ElectricDiscount\": 0,\n \"PercentageElectricDiscount\": 0,\n \"InsurancePremiumFormatted\": \"$907.900\",\n \"InsuranceTaxFormatted\": \"$453.950\",\n \"InsuranceFineFormatted\": \"$1.700\",\n \"TotalFormatted\": \"$1.363.550\",\n \"DiscountAmountFormatted\": \"$0\",\n \"TotalWithDiscountAmountFormatted\": \"$1.363.550\",\n \"createdAt\": \"2020-02-20T10:23:24.000Z\",\n \"dateStart\": \"2020-02-20\",\n \"dateEnd\": \"2021-02-19\",\n \"amount\": 1413550,\n \"amountDiscount\": 0,\n \"amountOthers\": 50000,\n \"amountTotal\": 1413550,\n \"hash\": \"ba931ea8d2b57c9248ec4285c45efdddfdfff4d8\",\n \"runt\": 1700,\n \"codeFasecolda\": 0,\n \"typeCost\": 0,\n \"Law2161Discount\": 0,\n \"discount\": 0\n },\n \"vehDetail\": {\n \"vehicleLineId\": 5560,\n \"vehicleClassId\": 8,\n \"vehicleClassMinistryId\": 28,\n \"serviceTypeId\": 2,\n \"vehicleBodyTypeId\": 8,\n \"vehicleDescription\": \"NISSAN URVAN - 2012\",\n \"vehDescription\": \"NISSAN URVAN - 2012\",\n \"queryId\": \"\",\n \"noSerie\": \"\",\n \"noMotor\": \"Z0796987CM\",\n \"noChasis\": \"JN1MG4E25Z0796987\",\n \"cc\": 2953,\n \"type\": \"CERRADA\",\n \"gas\": \"\",\n \"year\": 2012,\n \"passengers\": 16,\n \"brand\": \"NISSAN\",\n \"brandId\": 64,\n \"vin\": \"JN1MG4E25Z0796987\",\n \"lineCode\": \"\",\n \"service\": \"\",\n \"zone\": \"\",\n \"weight\": 0,\n \"cityId\": 5266\n },\n \"userDetail\": {\n \"name\": \"Nombre\",\n \"lastName\": \"Apellido\",\n \"docNumber\": \"1111111\",\n \"cellphone\": \"3001234567\",\n \"email\": \"contacto@gmail.com\",\n \"phone\": \"\",\n \"docType\": 1,\n \"address\": \"Calle 1 # 1 - 01\",\n \"cityCode\": 76834,\n \"stateCode\": 76,\n \"addressType\": 1,\n \"typePerson\": \"F\",\n \"gender\": \"M\",\n \"RegimenTypeId\": \"2\",\n \"RutId\": 5\n }\n },\n \"amount\": 1413550\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."
|
|
412
181
|
},
|
|
413
182
|
{
|
|
414
183
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
415
184
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
416
|
-
"description": "Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.",
|
|
185
|
+
"description": "Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the payment amount (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `document`: String containing the customer's identification document number (required)\n \n - `name`: String containing the customer's first name (required)\n \n - `lastname`: String containing the customer's last name (required)\n \n\n---\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 603 |\n| amount | 100 |\n| data.cellphone | \"3200000000\" |\n| data.document | \"1023900000\" |\n| data.name | \"Pachito\" |\n| data.lastname | \"Hernesto\" |",
|
|
417
186
|
"mimeType": "text/markdown",
|
|
418
|
-
"content": "# sell |
|
|
187
|
+
"content": "# sell | Luck and Chance RushBet\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the payment amount (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `document`: String containing the customer's identification document number (required)\n \n - `name`: String containing the customer's first name (required)\n \n - `lastname`: String containing the customer's last name (required)\n \n\n---\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 603 |\n| amount | 100 |\n| data.cellphone | \"3200000000\" |\n| data.document | \"1023900000\" |\n| data.name | \"Pachito\" |\n| data.lastname | \"Hernesto\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 603,\n \"amount\": 100,\n \"data\": {\n \"cellphone\": \"3200000000\",\n \"document\": \"1023900000\",\n \"name\": \"Pachito\",\n \"lastname\": \"Hernesto\"\n }\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."
|
|
419
188
|
},
|
|
420
189
|
{
|
|
421
190
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
422
191
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
423
|
-
"description": "
|
|
192
|
+
"description": "Allows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n\n---\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---|\n| productId | 200048 |\n| data.cellphone | \"3215302000\" |",
|
|
424
193
|
"mimeType": "text/markdown",
|
|
425
|
-
"content": "# sell\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\
|
|
194
|
+
"content": "# sell | Packages Claro\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n\n---\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---|\n| productId | 200048 |\n| data.cellphone | \"3215302000\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 200048,\n \"data\": {\n \"cellphone\": \"3215302000\"\n }\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."
|
|
426
195
|
},
|
|
427
196
|
{
|
|
428
197
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
429
198
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
430
|
-
"description": "---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)",
|
|
199
|
+
"description": "---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 50 |\n| amount | 1000 |\n| data.cellphone | \"3015874044\" |",
|
|
431
200
|
"mimeType": "text/markdown",
|
|
432
|
-
"content": "# Product | DirectTV Prepago\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n## Headers\n\n- **Authorization**: Bearer
|
|
201
|
+
"content": "# Product | DirectTV Prepago\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount of the payment (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 50 |\n| amount | 1000 |\n| data.cellphone | \"3015874044\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"data\": {\n \"cellphone\": \"3015874044\"\n },\n \"productId\": 50,\n \"amount\": 1000\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."
|
|
433
202
|
},
|
|
434
203
|
{
|
|
435
204
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
436
205
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
437
|
-
"description": "---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount for the transaction (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)",
|
|
206
|
+
"description": "---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount for the transaction (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 202 |\n| amount | 50 |\n| data.cellphone | \"3015874029\" |\n| data.email | \"correo@refacil.com\" |",
|
|
438
207
|
"mimeType": "text/markdown",
|
|
439
|
-
"content": "# sell | Netflix\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount for the transaction (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n## Headers\n\n- **Authorization**: Bearer
|
|
208
|
+
"content": "# sell | Netflix\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the amount for the transaction (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n**Important:** This response will be returned within a timeout of **60,000 milliseconds (60 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 202 |\n| amount | 50 |\n| data.cellphone | \"3015874029\" |\n| data.email | \"correo@refacil.com\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 202,\n \"amount\": 50,\n \"data\": {\n \"cellphone\": \"3015874029\",\n \"email\": \"correo@refacil.com\"\n }\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."
|
|
440
209
|
},
|
|
441
210
|
{
|
|
442
211
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
443
212
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
444
|
-
"description": "---\n\n## Description\n\nAllows performing a
|
|
213
|
+
"description": "---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 1014005 |\n| data.cellphone | \"3104784242\" |\n| data.email | \"fake@refacil.com\" |",
|
|
445
214
|
"mimeType": "text/markdown",
|
|
446
|
-
"content": "#
|
|
215
|
+
"content": "# Product | DirectTV GO (1014005)\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 1014005 |\n| data.cellphone | \"3104784242\" |\n| data.email | \"fake@refacil.com\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"data\": {\n \"cellphone\": \"3104784242\",\n \"email\": \"fake@refacil.com\"\n },\n \"productId\": 1014005\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."
|
|
447
216
|
},
|
|
448
217
|
{
|
|
449
218
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
450
219
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
451
|
-
"description": "---\n\n## Description\n\nAllows performing a
|
|
220
|
+
"description": "---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 100777 |\n| data.cellphone | \"3104784242\" |\n| data.email | \"fake@refacil.com\" |",
|
|
452
221
|
"mimeType": "text/markdown",
|
|
453
|
-
"content": "#
|
|
222
|
+
"content": "# Product | DirectTV GO (100777)\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 100777 |\n| data.cellphone | \"3104784242\" |\n| data.email | \"fake@refacil.com\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"data\": {\n \"cellphone\": \"3104784242\",\n \"email\": \"fake@refacil.com\"\n },\n \"productId\": 100777\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."
|
|
454
223
|
},
|
|
455
224
|
{
|
|
456
225
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
457
226
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
458
|
-
"description": "---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)",
|
|
227
|
+
"description": "---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 1014004 |\n| data.cellphone | \"3104784242\" |\n| data.email | \"fake@refacil.com\" |",
|
|
459
228
|
"mimeType": "text/markdown",
|
|
460
|
-
"content": "# Product | DirectTV GO (
|
|
229
|
+
"content": "# Product | DirectTV GO (1014004)\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 1014004 |\n| data.cellphone | \"3104784242\" |\n| data.email | \"fake@refacil.com\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"data\": {\n \"cellphone\": \"3104784242\",\n \"email\": \"fake@refacil.com\"\n },\n \"productId\": 1014004\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."
|
|
461
230
|
},
|
|
462
231
|
{
|
|
463
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/
|
|
464
|
-
"name": "POST /
|
|
465
|
-
"description": "---\n\n
|
|
466
|
-
"mimeType": "text/markdown",
|
|
467
|
-
"content": "# Product | DirectTV GO (100777)\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLoginRegister}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"data\": {\n \"cellphone\": \"3104784242\",\n \"email\": \"fake@refacil.com\"\n },\n \"productId\": 100777\n}\n```\n\n"
|
|
468
|
-
},
|
|
469
|
-
{
|
|
470
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
471
|
-
"name": "POST /sells/sell - Endpoint Documentation",
|
|
472
|
-
"description": "---\n\n## Description\n\nAllows performing a bill payment operation on the platform. Send the request body with the necessary parameters for the payment in the format specified by the PaymentBody object. The response will include the results of the operation in case of success.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `data`: Object containing additional data (required)\n \n - `cellphone`: String containing the cellphone number (required)\n \n - `email`: String containing the email address (required)\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)",
|
|
232
|
+
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
233
|
+
"name": "POST /product/query - Endpoint Documentation",
|
|
234
|
+
"description": "---\n\n# Query Product\n\n---\n\n### Description\n\nPerforms the pre-sale query for **PIN flows**, obtaining data such as reference, hash, and amount associated with the PIN purchase. The returned `hashEchoData` value must be forwarded in the subsequent sell request when completing the PIN transaction. If the response contains only one of the two hash fields, the API automatically mirrors it to the other.\n\nIf the request fails with the errorCode `product.errors.disabled` or a similar code indicating that the product is inactive, the agreements must be consulted again using the search service.\n\n---\n\n### Request Body\n\n- **`productId`** (number) **required** – Identifier of the product to query.\n \n- **`queryType`** (string) **required** – Type of query associated with the PIN flow. \n Example: `ConfirmData`. Min length: 1.\n \n- **`data`** (object) **required** – Specific provider data for the PIN flow.\n \n - **`reference`** (string) **required** – Reference associated with the PIN transaction.\n \n - **`cellphone`** (string) **required** – Cellphone number associated with the PIN transaction.\n \n - **`amount`** (number) **required** – Amount of the PIN purchase.\n \n - **`carrierId`** (number) **required** – Identifier of the carrier/operator. \n This field **must have the same value as** **`productId`**.\n \n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n| --- | --- | --- | --- |\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is absent or not numeric |\n| 400 | `validators.queryType.required` | `El campo queryType es obligatorio.` | `queryType` is absent |\n| 400 | `validators.queryType.isString` | `El campo queryType debe ser de tipo string` | `queryType` is not a string |\n| 400 | `validators.queryType.isNotEmpty` | `El campo queryType no puede estar vacío.` | `queryType` is empty or whitespace-only |\n| 400 | — | `data must be an object` | `data` is present but not an object |\n| 400 | — | `ownAgreementId must be a number` | `ownAgreementId` is present but not a number |\n| 404 | `products.errors.notFound` / `product.not.found` | `Producto no encontrado` | Product does not exist or is unavailable |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled — re-fetch agreements using the search service |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.metadata.invalid` | `Los metadatos del convenio no tienen un formato válido` | Agreement metadata is invalid |\n| 400 | `overdue.reference` | `Esta referencia ya se encuentra vencida.` | Reference is overdue — do not retry with same reference |\n| 400 | `closed.reference` | `Esta referencia ya se encuentra cerrada.` | Reference is closed |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| queryType | \"ConfirmData\" |\n| productId | 231 |\n| data.carrierId | 231 |\n| data.cellphone | \"3203550000\" |\n| data.amount | 10000 |\n| data.reference | \"1234567\" |",
|
|
473
235
|
"mimeType": "text/markdown",
|
|
474
|
-
"content": "#
|
|
236
|
+
"content": "# query\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n# Query Product\n\n---\n\n### Description\n\nPerforms the pre-sale query for **PIN flows**, obtaining data such as reference, hash, and amount associated with the PIN purchase. The returned `hashEchoData` value must be forwarded in the subsequent sell request when completing the PIN transaction. If the response contains only one of the two hash fields, the API automatically mirrors it to the other.\n\nIf the request fails with the errorCode `product.errors.disabled` or a similar code indicating that the product is inactive, the agreements must be consulted again using the search service.\n\n---\n\n### Request Body\n\n- **`productId`** (number) **required** – Identifier of the product to query.\n \n- **`queryType`** (string) **required** – Type of query associated with the PIN flow. \n Example: `ConfirmData`. Min length: 1.\n \n- **`data`** (object) **required** – Specific provider data for the PIN flow.\n \n - **`reference`** (string) **required** – Reference associated with the PIN transaction.\n \n - **`cellphone`** (string) **required** – Cellphone number associated with the PIN transaction.\n \n - **`amount`** (number) **required** – Amount of the PIN purchase.\n \n - **`carrierId`** (number) **required** – Identifier of the carrier/operator. \n This field **must have the same value as** **`productId`**.\n \n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n| --- | --- | --- | --- |\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is absent or not numeric |\n| 400 | `validators.queryType.required` | `El campo queryType es obligatorio.` | `queryType` is absent |\n| 400 | `validators.queryType.isString` | `El campo queryType debe ser de tipo string` | `queryType` is not a string |\n| 400 | `validators.queryType.isNotEmpty` | `El campo queryType no puede estar vacío.` | `queryType` is empty or whitespace-only |\n| 400 | — | `data must be an object` | `data` is present but not an object |\n| 400 | — | `ownAgreementId must be a number` | `ownAgreementId` is present but not a number |\n| 404 | `products.errors.notFound` / `product.not.found` | `Producto no encontrado` | Product does not exist or is unavailable |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled — re-fetch agreements using the search service |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.metadata.invalid` | `Los metadatos del convenio no tienen un formato válido` | Agreement metadata is invalid |\n| 400 | `overdue.reference` | `Esta referencia ya se encuentra vencida.` | Reference is overdue — do not retry with same reference |\n| 400 | `closed.reference` | `Esta referencia ya se encuentra cerrada.` | Reference is closed |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| queryType | \"ConfirmData\" |\n| productId | 231 |\n| data.carrierId | 231 |\n| data.cellphone | \"3203550000\" |\n| data.amount | 10000 |\n| data.reference | \"1234567\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"queryType\": \"ConfirmData\",\n \"productId\": 231,\n \"data\": {\n \"carrierId\": 231,\n \"cellphone\": \"3203550000\",\n \"amount\": 10000,\n \"reference\": \"1234567\"\n }\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."
|
|
475
237
|
},
|
|
476
238
|
{
|
|
477
239
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
478
240
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
479
|
-
"description": "---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n### Timeout Configuration\n\nThe timeout value specified below is directly established by the provider and must be taken into account in integrations.\n\n| Parameter | Value |\n| --- | --- |\n| **Maximum Timeout** | 150 seconds |\n\n---\n\n
|
|
241
|
+
"description": "---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n### Timeout Configuration\n\nThe timeout value specified below is directly established by the provider and must be taken into account in integrations.\n\n| Parameter | Value |\n| --- | --- |\n| **Maximum Timeout** | 150 seconds |\n\n---\n\n### Request Schema\n\n- **`productId`**: Number representing the product identifier (**required**).\n- **`amount`**: Number representing the amount of the payment. **Minimum value: 10,000** (**required**).\n- **`data`**: Object containing additional data (**required**):\n - **`plan`**: String that identifies the type of plan for the payment (**required**). \n The value must indicate whether the plan includes public lighting or not:\n - `AP`: Plan **with** public lighting (_Alumbrado público_).\n - `SP`: Plan **without** public lighting (_Sin alumbrado público_).\n - **`reference`**: String containing the reference number for the payment (**required**).\n - **`cellphone`**: String containing the cellphone number associated with the payment (**required**).\n - **`hashEchoData`**: String containing the hash echo data for the operation (**required**).\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 231 |\n| amount | 10000 |\n| data.plan | \"AP\" |\n| data.reference | \"1234567\" |\n| data.cellphone | \"3203550000\" |\n| data.hashEchoData | \"eyJub21icmVfY2xpZW50ZSI6IkVMU1kgU0VyVklDRSIsImRpcmVjY2lvbiI6IlVSQiBWSUxMQSBWSUNUT1JJQSBDQVNBIDEwMyAtIFNBTiBNQVJUSU4iLCJkbmlfY2xpZW50ZSI6IjM5MDIyMDMxIiwiY29udHJhdG8iOiIxMjM0NTY3IiwidmFsb3JfdmVudGEiOiIxMDAwMCIsInBsYW4iOiIiLCJ0eXBlIjoiIn0=\" |",
|
|
480
242
|
"mimeType": "text/markdown",
|
|
481
|
-
"content": "# sell
|
|
243
|
+
"content": "# sell\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n### Timeout Configuration\n\nThe timeout value specified below is directly established by the provider and must be taken into account in integrations.\n\n| Parameter | Value |\n| --- | --- |\n| **Maximum Timeout** | 150 seconds |\n\n---\n\n### Request Schema\n\n- **`productId`**: Number representing the product identifier (**required**).\n- **`amount`**: Number representing the amount of the payment. **Minimum value: 10,000** (**required**).\n- **`data`**: Object containing additional data (**required**):\n - **`plan`**: String that identifies the type of plan for the payment (**required**). \n The value must indicate whether the plan includes public lighting or not:\n - `AP`: Plan **with** public lighting (_Alumbrado público_).\n - `SP`: Plan **without** public lighting (_Sin alumbrado público_).\n - **`reference`**: String containing the reference number for the payment (**required**).\n - **`cellphone`**: String containing the cellphone number associated with the payment (**required**).\n - **`hashEchoData`**: String containing the hash echo data for the operation (**required**).\n \n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 231 |\n| amount | 10000 |\n| data.plan | \"AP\" |\n| data.reference | \"1234567\" |\n| data.cellphone | \"3203550000\" |\n| data.hashEchoData | \"eyJub21icmVfY2xpZW50ZSI6IkVMU1kgU0VyVklDRSIsImRpcmVjY2lvbiI6IlVSQiBWSUxMQSBWSUNUT1JJQSBDQVNBIDEwMyAtIFNBTiBNQVJUSU4iLCJkbmlfY2xpZW50ZSI6IjM5MDIyMDMxIiwiY29udHJhdG8iOiIxMjM0NTY3IiwidmFsb3JfdmVudGEiOiIxMDAwMCIsInBsYW4iOiIiLCJ0eXBlIjoiIn0=\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 231,\n \"amount\": 10000,\n \"data\": {\n \"plan\": \"AP\",\n \"reference\": \"1234567\",\n \"cellphone\": \"3203550000\",\n \"hashEchoData\": \"eyJub21icmVfY2xpZW50ZSI6IkVMU1kgU0VyVklDRSIsImRpcmVjY2lvbiI6IlVSQiBWSUxMQSBWSUNUT1JJQSBDQVNBIDEwMyAtIFNBTiBNQVJUSU4iLCJkbmlfY2xpZW50ZSI6IjM5MDIyMDMxIiwiY29udHJhdG8iOiIxMjM0NTY3IiwidmFsb3JfdmVudGEiOiIxMDAwMCIsInBsYW4iOiIiLCJ0eXBlIjoiIn0=\"\n }\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."
|
|
482
244
|
},
|
|
483
245
|
{
|
|
484
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/
|
|
485
|
-
"name": "POST /
|
|
486
|
-
"description": "---\n\n
|
|
246
|
+
"uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
|
|
247
|
+
"name": "POST /product/query - Endpoint Documentation",
|
|
248
|
+
"description": "---\n\n# Query Product\n\n---\n\n### Description\n\nPerforms the pre-sale query for **PIN flows**, obtaining data such as reference, hash, and amount associated with the PIN purchase. The returned `hashEchoData` value must be forwarded in the subsequent sell request when completing the PIN transaction. If the response contains only one of the two hash fields, the API automatically mirrors it to the other.\n\nIf the request fails with the errorCode `product.errors.disabled` or a similar code indicating that the product is inactive, the agreements must be consulted again using the search service.\n\n---\n\n### Request Body\n\n- **`productId`** (number) **required** – Identifier of the product to query.\n \n- **`queryType`** (string) **required** – Type of query associated with the PIN flow. \n Example: `ConfirmData`. Min length: 1.\n \n- **`data`** (object) **required** – Specific provider data for the PIN flow.\n \n - **`reference`** (string) **required** – Reference associated with the PIN transaction.\n \n - **`cellphone`** (string) **required** – Cellphone number associated with the PIN transaction.\n \n - **`amount`** (number) **required** – Amount of the PIN purchase.\n \n - **`carrierId`** (number) **required** – Identifier of the carrier/operator. \n This field **must have the same value as** **`productId`**.\n \n - **`plan`** (string) **required** – Identifies the type of plan associated with the transaction. \n Allowed values:\n - `AP`: Plan with public lighting (_Alumbrado público_).\n \n - `SP`: Plan without public lighting (_Sin alumbrado público_).\n \n - **`type`** (string) **required** – Identifies the type of payment. \n Allowed values:\n - `PT`: Total payment (_Pago Total_).\n \n - `PM`: Minimum payment (_Pago Mínimo_).\n \n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n| --- | --- | --- | --- |\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is absent or not numeric |\n| 400 | `validators.queryType.required` | `El campo queryType es obligatorio.` | `queryType` is absent |\n| 400 | `validators.queryType.isString` | `El campo queryType debe ser de tipo string` | `queryType` is not a string |\n| 400 | `validators.queryType.isNotEmpty` | `El campo queryType no puede estar vacío.` | `queryType` is empty or whitespace-only |\n| 400 | — | `data must be an object` | `data` is present but not an object |\n| 400 | — | `ownAgreementId must be a number` | `ownAgreementId` is present but not a number |\n| 404 | `products.errors.notFound` / `product.not.found` | `Producto no encontrado` | Product does not exist or is unavailable |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled — re-fetch agreements using the search service |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.metadata.invalid` | `Los metadatos del convenio no tienen un formato válido` | Agreement metadata is invalid |\n| 400 | `overdue.reference` | `Esta referencia ya se encuentra vencida.` | Reference is overdue — do not retry with same reference |\n| 400 | `closed.reference` | `Esta referencia ya se encuentra cerrada.` | Reference is closed |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| queryType | \"ConfirmData\" |\n| productId | 230 |\n| data.carrierId | 230 |\n| data.cellphone | \"3203550000\" |\n| data.amount | 10000 |\n| data.reference | \"1234567\" |\n| data.plan | \"AP\" |\n| data.type | \"PT\" |",
|
|
487
249
|
"mimeType": "text/markdown",
|
|
488
|
-
"content": "#
|
|
250
|
+
"content": "# query\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/product/query`\n\n## Description\n\n---\n\n# Query Product\n\n---\n\n### Description\n\nPerforms the pre-sale query for **PIN flows**, obtaining data such as reference, hash, and amount associated with the PIN purchase. The returned `hashEchoData` value must be forwarded in the subsequent sell request when completing the PIN transaction. If the response contains only one of the two hash fields, the API automatically mirrors it to the other.\n\nIf the request fails with the errorCode `product.errors.disabled` or a similar code indicating that the product is inactive, the agreements must be consulted again using the search service.\n\n---\n\n### Request Body\n\n- **`productId`** (number) **required** – Identifier of the product to query.\n \n- **`queryType`** (string) **required** – Type of query associated with the PIN flow. \n Example: `ConfirmData`. Min length: 1.\n \n- **`data`** (object) **required** – Specific provider data for the PIN flow.\n \n - **`reference`** (string) **required** – Reference associated with the PIN transaction.\n \n - **`cellphone`** (string) **required** – Cellphone number associated with the PIN transaction.\n \n - **`amount`** (number) **required** – Amount of the PIN purchase.\n \n - **`carrierId`** (number) **required** – Identifier of the carrier/operator. \n This field **must have the same value as** **`productId`**.\n \n - **`plan`** (string) **required** – Identifies the type of plan associated with the transaction. \n Allowed values:\n - `AP`: Plan with public lighting (_Alumbrado público_).\n \n - `SP`: Plan without public lighting (_Sin alumbrado público_).\n \n - **`type`** (string) **required** – Identifies the type of payment. \n Allowed values:\n - `PT`: Total payment (_Pago Total_).\n \n - `PM`: Minimum payment (_Pago Mínimo_).\n \n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n| --- | --- | --- | --- |\n| 400 | `validators.productId.number` | `El campo productId debe ser de tipo Numerico` | `productId` is absent or not numeric |\n| 400 | `validators.queryType.required` | `El campo queryType es obligatorio.` | `queryType` is absent |\n| 400 | `validators.queryType.isString` | `El campo queryType debe ser de tipo string` | `queryType` is not a string |\n| 400 | `validators.queryType.isNotEmpty` | `El campo queryType no puede estar vacío.` | `queryType` is empty or whitespace-only |\n| 400 | — | `data must be an object` | `data` is present but not an object |\n| 400 | — | `ownAgreementId must be a number` | `ownAgreementId` is present but not a number |\n| 404 | `products.errors.notFound` / `product.not.found` | `Producto no encontrado` | Product does not exist or is unavailable |\n| 404 | `products.errors.disabled` | `Producto deshabilitado` | Product is disabled — re-fetch agreements using the search service |\n| 404 | `products.errors.providers.notFound` | `El producto no tiene un proveedor.` | No provider associated with the product |\n| 400 | `products.errors.metadata.invalid` | `Los metadatos del convenio no tienen un formato válido` | Agreement metadata is invalid |\n| 400 | `overdue.reference` | `Esta referencia ya se encuentra vencida.` | Reference is overdue — do not retry with same reference |\n| 400 | `closed.reference` | `Esta referencia ya se encuentra cerrada.` | Reference is closed |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n\n**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| queryType | \"ConfirmData\" |\n| productId | 230 |\n| data.carrierId | 230 |\n| data.cellphone | \"3203550000\" |\n| data.amount | 10000 |\n| data.reference | \"1234567\" |\n| data.plan | \"AP\" |\n| data.type | \"PT\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"queryType\": \"ConfirmData\",\n \"productId\": 230,\n \"data\": {\n \"carrierId\": 230,\n \"cellphone\": \"3203550000\",\n \"amount\": 10000,\n \"reference\": \"1234567\",\n \"plan\": \"AP\",\n \"type\": \"PT\"\n }\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."
|
|
489
251
|
},
|
|
490
252
|
{
|
|
491
253
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
492
254
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
493
|
-
"description": "---\n\n## Description\n\nAllows performing a
|
|
255
|
+
"description": "---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n### Timeout Configuration\n\nThe timeout value specified below is directly established by the provider and must be taken into account in integrations.\n\n| Parameter | Value |\n| --- | --- |\n| **Maximum Timeout** | 150 seconds |\n\n---\n\n### Request Schema\n\n- **`productId`** (number) **required** – Identifier of the product.\n \n- **`amount`** (number) **required** – Amount of the payment. \n **Minimum value: 10,000**.\n \n- **`hash`** (string) **required** – Hash value for the operation.\n \n- **`data`** (object) **required** – Additional data for the payment.\n \n - **`reference`** (string) **required** – Reference number for the payment.\n - **`cellphone`** (string) **required** – Cellphone number associated with the payment.\n - **`hashEchoData`** (string) **required** – Hash echo data for the operation.\n - **`plan`** (string) **required** – Identifies the type of plan associated with the transaction. \n Allowed values:\n - `AP`: Plan with public lighting (_Alumbrado público_).\n - `SP`: Plan without public lighting (_Sin alumbrado público_).\n - **`type`** (string) **required** – Identifies the type of payment. \n Allowed values:\n - `PT`: Total payment (_Pago Total_).\n - `PM`: Minimum payment (_Pago Mínimo_).\n - **`valorAseo`** (number) **required** – Cleaning/garbage charge amount associated with the transaction. \n This value **must be taken from the response of the previous `query` operation**.\n - **`valorEnergia`** (number) **required** – Energy charge amount associated with the transaction. \n This value **must be taken from the response of the previous `query` operation**.\n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 230 |\n| amount | 10000 |\n| data.cellphone | \"3203550000\" |\n| data.plan | \"AP\" |\n| data.reference | \"1234567\" |\n| data.type | \"PT\" |\n| data.valorAseo | 5000 |\n| data.valorEnergia | 5000 |\n| data.hashEchoData | \"eyJub21icmVfY2xpZW50ZSI6IkVMU1kgU0VyVklDRSIsImRpcmVjY2lvbiI6IlVSQiBWSUxMQSBWSUNUT1JJQSBDQVNBIDEwMyAtIFNBTiBNQVJUSU4iLCJkbmlfY2xpZW50ZSI6IjM5MDIyMDMxIiwiY29udHJhdG8iOiIxMjM0NTY3IiwidmFsb3JfdmVudGEiOiIxMDAwMCIsInZhbG9yX2FzZW8iOjUwMDAsInZhbG9yX2VuZXJnaWEiOjUwMDAsImNlbHVsYXIiOiIzMjAzNTUwMDAwIiwiaWRDb25maXJtYWNpb24iOiJzZGpha3NkamRqYS1kYXMwZGRhbnNkMDItZnNhZGthc2RrNTYiLCJwbGFuIjoiQVAiLCJ0eXBlIjoiUFQifQ==\" |",
|
|
494
256
|
"mimeType": "text/markdown",
|
|
495
|
-
"content": "#
|
|
257
|
+
"content": "# sell\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n---\n\n## Description\n\nAllows performing a sale on the platform. Send the request body with the necessary parameters for the sale in the format specified by the SellBody object. This operation will return a response that includes information about the sale in case of success.\n\n**Note**: To make this request in the case of selling invoices, we need the hash and hashEchoData provided by the query response for the reference.\n\n### Timeout Configuration\n\nThe timeout value specified below is directly established by the provider and must be taken into account in integrations.\n\n| Parameter | Value |\n| --- | --- |\n| **Maximum Timeout** | 150 seconds |\n\n---\n\n### Request Schema\n\n- **`productId`** (number) **required** – Identifier of the product.\n \n- **`amount`** (number) **required** – Amount of the payment. \n **Minimum value: 10,000**.\n \n- **`hash`** (string) **required** – Hash value for the operation.\n \n- **`data`** (object) **required** – Additional data for the payment.\n \n - **`reference`** (string) **required** – Reference number for the payment.\n - **`cellphone`** (string) **required** – Cellphone number associated with the payment.\n - **`hashEchoData`** (string) **required** – Hash echo data for the operation.\n - **`plan`** (string) **required** – Identifies the type of plan associated with the transaction. \n Allowed values:\n - `AP`: Plan with public lighting (_Alumbrado público_).\n - `SP`: Plan without public lighting (_Sin alumbrado público_).\n - **`type`** (string) **required** – Identifies the type of payment. \n Allowed values:\n - `PT`: Total payment (_Pago Total_).\n - `PM`: Minimum payment (_Pago Mínimo_).\n - **`valorAseo`** (number) **required** – Cleaning/garbage charge amount associated with the transaction. \n This value **must be taken from the response of the previous `query` operation**.\n - **`valorEnergia`** (number) **required** – Energy charge amount associated with the transaction. \n This value **must be taken from the response of the previous `query` operation**.\n\n---\n\n## Response Schema\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n \n - `date`: Number representing the timestamp of the operation (required)\n \n - `sellId`: Number representing the identifier of the sell operation (required)\n \n - `payload`: Object containing the main response data (required)\n \n - `preBalance`: Number representing the balance before the operation (required)\n \n - `posBalance`: Number representing the balance after the operation (required)\n \n - `tmpBalance`: Number representing the temporary balance (required)\n \n - `debt`: Number representing the debt amount (required)\n \n - `billData`: Object containing bill-related data (required)\n \n - `fields`: Array of field objects (required)\n \n - `name`: String representing the field name (required)\n \n - `type`: String representing the field type (required)\n \n - `options`: Array of option objects (required)\n \n - `label`: String representing the option label (required)\n \n - `value`: String representing the option value (required)\n \n - `label`: String representing the field label (required)\n \n - `placeholder`: String representing the field placeholder (required)\n \n - `required`: Boolean indicating if the field is required (required)\n \n - `costs`: Array of cost objects (required)\n \n - `label`: String representing the cost label (required)\n \n - `value`: Number representing the cost value (required)\n \n - `messages`: Array of message objects (required)\n \n - `value`: String representing the message value (required)\n \n - `stringInformation`: Array of string information objects (required)\n \n - `value`: String representing the string information value (required)\n \n - `footerInformation`: Array of footer information objects (required)\n \n - `share`: Object containing share information (required)\n \n - `cellphone`: String representing the cellphone number (required)\n \n - `message`: String representing the message (required)\n\n### Test Data\n\nUse the following example values to test this endpoint in the QA environment:\n\n| Field | Example Value |\n|-------|---------------|\n| productId | 230 |\n| amount | 10000 |\n| data.cellphone | \"3203550000\" |\n| data.plan | \"AP\" |\n| data.reference | \"1234567\" |\n| data.type | \"PT\" |\n| data.valorAseo | 5000 |\n| data.valorEnergia | 5000 |\n| data.hashEchoData | \"eyJub21icmVfY2xpZW50ZSI6IkVMU1kgU0VyVklDRSIsImRpcmVjY2lvbiI6IlVSQiBWSUxMQSBWSUNUT1JJQSBDQVNBIDEwMyAtIFNBTiBNQVJUSU4iLCJkbmlfY2xpZW50ZSI6IjM5MDIyMDMxIiwiY29udHJhdG8iOiIxMjM0NTY3IiwidmFsb3JfdmVudGEiOiIxMDAwMCIsInZhbG9yX2FzZW8iOjUwMDAsInZhbG9yX2VuZXJnaWEiOjUwMDAsImNlbHVsYXIiOiIzMjAzNTUwMDAwIiwiaWRDb25maXJtYWNpb24iOiJzZGpha3NkamRqYS1kYXMwZGRhbnNkMDItZnNhZGthc2RrNTYiLCJwbGFuIjoiQVAiLCJ0eXBlIjoiUFQifQ==\" |\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 230,\n \"amount\": 10000,\n \"data\": {\n \"cellphone\": \"3203550000\",\n \"plan\": \"AP\",\n \"reference\": \"1234567\",\n \"hashEchoData\": \"eyJub21icmVfY2xpZW50ZSI6IkVMU1kgU0VyVklDRSIsImRpcmVjY2lvbiI6IlVSQiBWSUxMQSBWSUNUT1JJQSBDQVNBIDEwMyAtIFNBTiBNQVJUSU4iLCJkbmlfY2xpZW50ZSI6IjM5MDIyMDMxIiwiY29udHJhdG8iOiIxMjM0NTY3IiwidmFsb3JfdmVudGEiOiIxMDAwMCIsInZhbG9yX2FzZW8iOjUwMDAsInZhbG9yX2VuZXJnaWEiOjUwMDAsImNlbHVsYXIiOiIzMjAzNTUwMDAwIiwiaWRDb25maXJtYWNpb24iOiJzZGpha3NkamRqYS1kYXMwZGRhbnNkMDItZnNhZGthc2RrNTYiLCJwbGFuIjoiQVAiLCJ0eXBlIjoiUFQifQ==\",\n \"type\": \"PT\",\n \"valorAseo\": 5000,\n \"valorEnergia\": 5000\n }\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."
|
|
496
258
|
},
|
|
497
259
|
{
|
|
498
260
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
499
261
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
500
|
-
"description": "# Sucessful withdrawal process\n\n<img src=\"https://content.pstmn.io/73d6a308-4673-4a18-b603-56f04990312a/aW1hZ2UucG5n\" alt=\"Withdrawal%20secuence%20diagram\" width=\"844\" height=\"628\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User approves transaction:** The end-user approves the transaction through bank application.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user approves the transaction, **Transfiya** sends a notification to the **Refacil API** indicating the status of the transaction.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** of the transaction status, using a webhook mechanism. For each transaction state (in this case, PENDING), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Transaction processing (If completed):** If the transaction status changes to \"COMPLETED,\" the system processes the transaction by:\n\n- Adding balance to the user's account.\n \n- Processing commissions related to the transaction.\n \n\n# Failed withdrawal process\n\n<img src=\"https://content.pstmn.io/2205c66f-8681-40c4-8e40-50e6aa43d60f/aW1hZ2UucG5n\" width=\"767\" height=\"566\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User rejects the transaction:** The user rejects the transaction, causing the process to fail.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user rejects the transaction, **Transfiya** sends a notification back to the **Refacil API**, indicating that the transaction has been marked as failed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** using a webhook, providing details about the failed transaction.\n\n**Step 9: Transaction marked as failed:** If the transaction status changes to \"REJECTED,\" the transaction is officially marked as failed within the system
|
|
262
|
+
"description": "# Sucessful withdrawal process\n\n<img src=\"https://content.pstmn.io/73d6a308-4673-4a18-b603-56f04990312a/aW1hZ2UucG5n\" alt=\"Withdrawal%20secuence%20diagram\" width=\"844\" height=\"628\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User approves transaction:** The end-user approves the transaction through bank application.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user approves the transaction, **Transfiya** sends a notification to the **Refacil API** indicating the status of the transaction.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** of the transaction status, using a webhook mechanism. For each transaction state (in this case, PENDING), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Transaction processing (If completed):** If the transaction status changes to \"COMPLETED,\" the system processes the transaction by:\n\n- Adding balance to the user's account.\n \n- Processing commissions related to the transaction.\n \n\n# Failed withdrawal process\n\n<img src=\"https://content.pstmn.io/2205c66f-8681-40c4-8e40-50e6aa43d60f/aW1hZ2UucG5n\" width=\"767\" height=\"566\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User rejects the transaction:** The user rejects the transaction, causing the process to fail.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user rejects the transaction, **Transfiya** sends a notification back to the **Refacil API**, indicating that the transaction has been marked as failed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** using a webhook, providing details about the failed transaction.\n\n**Step 9: Transaction marked as failed:** If the transaction status changes to \"REJECTED,\" the transaction is officially marked as failed within the system.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the transaction amount in cents (required)\n \n- `webhookUrl`: String containing the URL to receive transaction status notifications (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `bankName`: String containing the target bank name (required)\n \n\n---\n\n### Test Phone Numbers\n\nUse the following phone numbers to simulate successful or failed withdrawal transactions in the testing environment:\n\n| Phone Number | Expected Result |\n|--------------|----------------|\n| 3051000090 | Successful |\n| 3051000080 | Failed |",
|
|
501
263
|
"mimeType": "text/markdown",
|
|
502
|
-
"content": "# Sell | Transfiya - Withdrawals\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n# Sucessful withdrawal process\n\n<img src=\"https://content.pstmn.io/73d6a308-4673-4a18-b603-56f04990312a/aW1hZ2UucG5n\" alt=\"Withdrawal%20secuence%20diagram\" width=\"844\" height=\"628\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User approves transaction:** The end-user approves the transaction through bank application.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user approves the transaction, **Transfiya** sends a notification to the **Refacil API** indicating the status of the transaction.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** of the transaction status, using a webhook mechanism. For each transaction state (in this case, PENDING), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Transaction processing (If completed):** If the transaction status changes to \"COMPLETED,\" the system processes the transaction by:\n\n- Adding balance to the user's account.\n \n- Processing commissions related to the transaction.\n \n\n# Failed withdrawal process\n\n<img src=\"https://content.pstmn.io/2205c66f-8681-40c4-8e40-50e6aa43d60f/aW1hZ2UucG5n\" width=\"767\" height=\"566\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User rejects the transaction:** The user rejects the transaction, causing the process to fail.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user rejects the transaction, **Transfiya** sends a notification back to the **Refacil API**, indicating that the transaction has been marked as failed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** using a webhook, providing details about the failed transaction.\n\n**Step 9: Transaction marked as failed:** If the transaction status changes to \"REJECTED,\" the transaction is officially marked as failed within the system.\n\n## Headers\n\n- **accept**: application/json\n- **Authorization**: Bearer
|
|
264
|
+
"content": "# Sell | Transfiya - Withdrawals\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\n# Sucessful withdrawal process\n\n<img src=\"https://content.pstmn.io/73d6a308-4673-4a18-b603-56f04990312a/aW1hZ2UucG5n\" alt=\"Withdrawal%20secuence%20diagram\" width=\"844\" height=\"628\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User approves transaction:** The end-user approves the transaction through bank application.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user approves the transaction, **Transfiya** sends a notification to the **Refacil API** indicating the status of the transaction.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** of the transaction status, using a webhook mechanism. For each transaction state (in this case, PENDING), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Transaction processing (If completed):** If the transaction status changes to \"COMPLETED,\" the system processes the transaction by:\n\n- Adding balance to the user's account.\n \n- Processing commissions related to the transaction.\n \n\n# Failed withdrawal process\n\n<img src=\"https://content.pstmn.io/2205c66f-8681-40c4-8e40-50e6aa43d60f/aW1hZ2UucG5n\" width=\"767\" height=\"566\">\n\n**Step 1: POC requests transaction:** The POC initiates a transaction request to the **Integrator**.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** forwards the request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create a transaction.\n\n**Step 4: Refacil creates pending transaction:** The **Refacil** system creates a pending transaction and returns the response to the **Integrator**.\n\n**Step 5: Transfiya notifies banks by SMS: Transfiya** sends SMS notification to the user and sends push notifications to all banks associated with the user, informing them about the pending transaction.\n\n**Step 6: User rejects the transaction:** The user rejects the transaction, causing the process to fail.\n\n**Step 7: Transfiya notifies Refacil API:** Once the user rejects the transaction, **Transfiya** sends a notification back to the **Refacil API**, indicating that the transaction has been marked as failed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the **Integrator** using a webhook, providing details about the failed transaction.\n\n**Step 9: Transaction marked as failed:** If the transaction status changes to \"REJECTED,\" the transaction is officially marked as failed within the system.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the transaction amount in cents (required)\n \n- `webhookUrl`: String containing the URL to receive transaction status notifications (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `bankName`: String containing the target bank name (required)\n \n\n---\n\n### Test Phone Numbers\n\nUse the following phone numbers to simulate successful or failed withdrawal transactions in the testing environment:\n\n| Phone Number | Expected Result |\n|--------------|----------------|\n| 3051000090 | Successful |\n| 3051000080 | Failed |\n\n## Headers\n\n- **accept**: application/json\n- **Authorization**: Bearer tokenLogin\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 241,\n \"amount\": 20000,\n \"webhookUrl\": \"https://my-webhook.com\",\n \"data\": {\n \"cellphone\": \"3051000090\",\n \"bankName\": \"banco rojo\"\n }\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."
|
|
503
265
|
},
|
|
504
266
|
{
|
|
505
267
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
|
|
506
268
|
"name": "POST /sells/sell - Endpoint Documentation",
|
|
507
|
-
"description": "For deposits with the following numbers the following tests can be carried out.\n\nAutomatically approved: 3051000002\n\nAutomatically rejected: 3002491283\n\n## Sucessful deposit process\n\n<img src=\"https://content.pstmn.io/63835630-ee0d-4be2-952b-57c3d5c59ef6/aW1hZ2UucG5n\" alt=\"\" height=\"545\" width=\"763\">\n\n**Step 1: POC initiates a request:** The POC sends a request to the **Integrator** specifying a selected bank where the deposit should occur.\n\n**Step 2: Integrator sends request to Refacil API:** The **Integrator** forwards the deposit request to the **Refacil API** for processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create the transaction and process the deposit.\n\n**Step 4: Refacil API creates a successful transaction**: The **Refacil API** creates a successful transaction and debits the corresponding balance from the system.\n\n**Step 5: Transfiya validates and processes the transaction: Transfiya** validates the transaction and processes it successfully. It also makes sure that the transaction is ready for the deposit.\n\n**Step 6: Transfiya notifies and deposits to the selected bank: Transfiya** sends a notification that the deposit is successful and proceeds to deposit the amount to the selected bank account.\n\n**Step 7: Refacil API receives a notification from Transfiya: Transfiya** sends a notification back to the **Refacil API** indicating that the transaction has been successfully completed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the Integrator of the transaction status, using a webhook mechanism. For each transaction state (in this case, COMPLETED), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Process commissions:** If the transaction status changes to \"COMPLETED,\" The system processes commissions related to the transaction after the deposit is made.\n\n# Failed deposit process\n\n<img src=\"https://content.pstmn.io/52fc69a9-4395-4759-bae5-b13ec66cfe45/aW1hZ2UucG5n\" width=\"785\" height=\"574\">\n\n**Step 1: POC requests a deposit to a selected bank**: The **POC** initiates a deposit request to the **Integrator**, specifying the selected bank.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** sends the deposit request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends a request to Transfiya:** The **Refacil API** forwards the request to **Transfiya** to process the transaction.\n\n**Step 4: Refacil API creates a \"successful\" transaction and debits the balance:** At this stage, the **Refacil API** debits the balance, assuming the transaction will be successful, and awaits confirmation from **Transfiya**.\n\n**Step 5: Transfiya validates the transaction and marks it as failed:** **Transfiya** processes the transaction but finds an issue that causes the transaction to fail. It returns this failed status to the **Refacil API**.\n\n**Step 6: Refacil API notifies Integrator via webhook:** The Refacil API sends a webhook notification to the Integrator, informing them that the transaction has failed. The `errorCode` provides the reason for the failure, while the `reversed` field indicates whether the balance has been refunded.\n\n**Step 7: Handling the reversal:** If the `reversed` field is `false`, the system will need to manually create a ticket to refund the balance to the POC.\n\n**Step 8: Processing error and refund:** If the error is marked as reversed (`reversed: true`), two actions will be taken:\n\n- **Refund the balance**: The debited amount is returned to the user's account.\n \n- **No commission processing**: Since the transaction failed, no commissions are processed for this transaction
|
|
269
|
+
"description": "For deposits with the following numbers the following tests can be carried out.\n\nAutomatically approved: 3051000002\n\nAutomatically rejected: 3002491283\n\n## Sucessful deposit process\n\n<img src=\"https://content.pstmn.io/63835630-ee0d-4be2-952b-57c3d5c59ef6/aW1hZ2UucG5n\" alt=\"\" height=\"545\" width=\"763\">\n\n**Step 1: POC initiates a request:** The POC sends a request to the **Integrator** specifying a selected bank where the deposit should occur.\n\n**Step 2: Integrator sends request to Refacil API:** The **Integrator** forwards the deposit request to the **Refacil API** for processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create the transaction and process the deposit.\n\n**Step 4: Refacil API creates a successful transaction**: The **Refacil API** creates a successful transaction and debits the corresponding balance from the system.\n\n**Step 5: Transfiya validates and processes the transaction: Transfiya** validates the transaction and processes it successfully. It also makes sure that the transaction is ready for the deposit.\n\n**Step 6: Transfiya notifies and deposits to the selected bank: Transfiya** sends a notification that the deposit is successful and proceeds to deposit the amount to the selected bank account.\n\n**Step 7: Refacil API receives a notification from Transfiya: Transfiya** sends a notification back to the **Refacil API** indicating that the transaction has been successfully completed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the Integrator of the transaction status, using a webhook mechanism. For each transaction state (in this case, COMPLETED), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Process commissions:** If the transaction status changes to \"COMPLETED,\" The system processes commissions related to the transaction after the deposit is made.\n\n# Failed deposit process\n\n<img src=\"https://content.pstmn.io/52fc69a9-4395-4759-bae5-b13ec66cfe45/aW1hZ2UucG5n\" width=\"785\" height=\"574\">\n\n**Step 1: POC requests a deposit to a selected bank**: The **POC** initiates a deposit request to the **Integrator**, specifying the selected bank.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** sends the deposit request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends a request to Transfiya:** The **Refacil API** forwards the request to **Transfiya** to process the transaction.\n\n**Step 4: Refacil API creates a \"successful\" transaction and debits the balance:** At this stage, the **Refacil API** debits the balance, assuming the transaction will be successful, and awaits confirmation from **Transfiya**.\n\n**Step 5: Transfiya validates the transaction and marks it as failed:** **Transfiya** processes the transaction but finds an issue that causes the transaction to fail. It returns this failed status to the **Refacil API**.\n\n**Step 6: Refacil API notifies Integrator via webhook:** The Refacil API sends a webhook notification to the Integrator, informing them that the transaction has failed. The `errorCode` provides the reason for the failure, while the `reversed` field indicates whether the balance has been refunded.\n\n**Step 7: Handling the reversal:** If the `reversed` field is `false`, the system will need to manually create a ticket to refund the balance to the POC.\n\n**Step 8: Processing error and refund:** If the error is marked as reversed (`reversed: true`), two actions will be taken:\n\n- **Refund the balance**: The debited amount is returned to the user's account.\n \n- **No commission processing**: Since the transaction failed, no commissions are processed for this transaction.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the deposit amount in cents (required)\n \n- `webhookUrl`: String containing the URL to receive transaction status notifications (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `bankName`: String containing the target bank name for the deposit (required)\n \n\n---\n\n### Test Phone Numbers\n\nUse the following phone numbers to simulate successful or failed deposit transactions in the testing environment:\n\n| Phone Number | Expected Result |\n|--------------|----------------|\n| 3051000002 | Successful |\n| 3002491283 | Failed |",
|
|
508
270
|
"mimeType": "text/markdown",
|
|
509
|
-
"content": "# Sell | Transfiya - Deposits\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\nFor deposits with the following numbers the following tests can be carried out.\n\nAutomatically approved: 3051000002\n\nAutomatically rejected: 3002491283\n\n## Sucessful deposit process\n\n<img src=\"https://content.pstmn.io/63835630-ee0d-4be2-952b-57c3d5c59ef6/aW1hZ2UucG5n\" alt=\"\" height=\"545\" width=\"763\">\n\n**Step 1: POC initiates a request:** The POC sends a request to the **Integrator** specifying a selected bank where the deposit should occur.\n\n**Step 2: Integrator sends request to Refacil API:** The **Integrator** forwards the deposit request to the **Refacil API** for processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create the transaction and process the deposit.\n\n**Step 4: Refacil API creates a successful transaction**: The **Refacil API** creates a successful transaction and debits the corresponding balance from the system.\n\n**Step 5: Transfiya validates and processes the transaction: Transfiya** validates the transaction and processes it successfully. It also makes sure that the transaction is ready for the deposit.\n\n**Step 6: Transfiya notifies and deposits to the selected bank: Transfiya** sends a notification that the deposit is successful and proceeds to deposit the amount to the selected bank account.\n\n**Step 7: Refacil API receives a notification from Transfiya: Transfiya** sends a notification back to the **Refacil API** indicating that the transaction has been successfully completed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the Integrator of the transaction status, using a webhook mechanism. For each transaction state (in this case, COMPLETED), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Process commissions:** If the transaction status changes to \"COMPLETED,\" The system processes commissions related to the transaction after the deposit is made.\n\n# Failed deposit process\n\n<img src=\"https://content.pstmn.io/52fc69a9-4395-4759-bae5-b13ec66cfe45/aW1hZ2UucG5n\" width=\"785\" height=\"574\">\n\n**Step 1: POC requests a deposit to a selected bank**: The **POC** initiates a deposit request to the **Integrator**, specifying the selected bank.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** sends the deposit request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends a request to Transfiya:** The **Refacil API** forwards the request to **Transfiya** to process the transaction.\n\n**Step 4: Refacil API creates a \"successful\" transaction and debits the balance:** At this stage, the **Refacil API** debits the balance, assuming the transaction will be successful, and awaits confirmation from **Transfiya**.\n\n**Step 5: Transfiya validates the transaction and marks it as failed:** **Transfiya** processes the transaction but finds an issue that causes the transaction to fail. It returns this failed status to the **Refacil API**.\n\n**Step 6: Refacil API notifies Integrator via webhook:** The Refacil API sends a webhook notification to the Integrator, informing them that the transaction has failed. The `errorCode` provides the reason for the failure, while the `reversed` field indicates whether the balance has been refunded.\n\n**Step 7: Handling the reversal:** If the `reversed` field is `false`, the system will need to manually create a ticket to refund the balance to the POC.\n\n**Step 8: Processing error and refund:** If the error is marked as reversed (`reversed: true`), two actions will be taken:\n\n- **Refund the balance**: The debited amount is returned to the user's account.\n \n- **No commission processing**: Since the transaction failed, no commissions are processed for this transaction.\n\n## Headers\n\n- **accept**: application/json\n- **Authorization**: Bearer
|
|
271
|
+
"content": "# Sell | Transfiya - Deposits\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/sells/sell`\n\n## Description\n\nFor deposits with the following numbers the following tests can be carried out.\n\nAutomatically approved: 3051000002\n\nAutomatically rejected: 3002491283\n\n## Sucessful deposit process\n\n<img src=\"https://content.pstmn.io/63835630-ee0d-4be2-952b-57c3d5c59ef6/aW1hZ2UucG5n\" alt=\"\" height=\"545\" width=\"763\">\n\n**Step 1: POC initiates a request:** The POC sends a request to the **Integrator** specifying a selected bank where the deposit should occur.\n\n**Step 2: Integrator sends request to Refacil API:** The **Integrator** forwards the deposit request to the **Refacil API** for processing.\n\n**Step 3: Refacil API sends request to Transfiya:** The **Refacil API** sends a request to **Transfiya** to create the transaction and process the deposit.\n\n**Step 4: Refacil API creates a successful transaction**: The **Refacil API** creates a successful transaction and debits the corresponding balance from the system.\n\n**Step 5: Transfiya validates and processes the transaction: Transfiya** validates the transaction and processes it successfully. It also makes sure that the transaction is ready for the deposit.\n\n**Step 6: Transfiya notifies and deposits to the selected bank: Transfiya** sends a notification that the deposit is successful and proceeds to deposit the amount to the selected bank account.\n\n**Step 7: Refacil API receives a notification from Transfiya: Transfiya** sends a notification back to the **Refacil API** indicating that the transaction has been successfully completed.\n\n**Step 8: Refacil API notifies Integrator:** The **Refacil API** notifies the Integrator of the transaction status, using a webhook mechanism. For each transaction state (in this case, COMPLETED), it sends data that includes the sale ID and transaction status.\n\n**Step 9: Process commissions:** If the transaction status changes to \"COMPLETED,\" The system processes commissions related to the transaction after the deposit is made.\n\n# Failed deposit process\n\n<img src=\"https://content.pstmn.io/52fc69a9-4395-4759-bae5-b13ec66cfe45/aW1hZ2UucG5n\" width=\"785\" height=\"574\">\n\n**Step 1: POC requests a deposit to a selected bank**: The **POC** initiates a deposit request to the **Integrator**, specifying the selected bank.\n\n**Step 2: Integrator forwards the request to Refacil API:** The **Integrator** sends the deposit request to the **Refacil API** for further processing.\n\n**Step 3: Refacil API sends a request to Transfiya:** The **Refacil API** forwards the request to **Transfiya** to process the transaction.\n\n**Step 4: Refacil API creates a \"successful\" transaction and debits the balance:** At this stage, the **Refacil API** debits the balance, assuming the transaction will be successful, and awaits confirmation from **Transfiya**.\n\n**Step 5: Transfiya validates the transaction and marks it as failed:** **Transfiya** processes the transaction but finds an issue that causes the transaction to fail. It returns this failed status to the **Refacil API**.\n\n**Step 6: Refacil API notifies Integrator via webhook:** The Refacil API sends a webhook notification to the Integrator, informing them that the transaction has failed. The `errorCode` provides the reason for the failure, while the `reversed` field indicates whether the balance has been refunded.\n\n**Step 7: Handling the reversal:** If the `reversed` field is `false`, the system will need to manually create a ticket to refund the balance to the POC.\n\n**Step 8: Processing error and refund:** If the error is marked as reversed (`reversed: true`), two actions will be taken:\n\n- **Refund the balance**: The debited amount is returned to the user's account.\n \n- **No commission processing**: Since the transaction failed, no commissions are processed for this transaction.\n\n---\n\n## Request Schema\n\n- `productId`: Number representing the product identifier (required)\n \n- `amount`: Number representing the deposit amount in cents (required)\n \n- `webhookUrl`: String containing the URL to receive transaction status notifications (required)\n \n- `data`: Object containing additional transaction data (required)\n \n - `cellphone`: String containing the customer's cellphone number (required)\n \n - `bankName`: String containing the target bank name for the deposit (required)\n \n\n---\n\n### Test Phone Numbers\n\nUse the following phone numbers to simulate successful or failed deposit transactions in the testing environment:\n\n| Phone Number | Expected Result |\n|--------------|----------------|\n| 3051000002 | Successful |\n| 3002491283 | Failed |\n\n## Headers\n\n- **accept**: application/json\n- **Authorization**: Bearer tokenLogin\n- **Content-Type**: application/json\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 240,\n \"amount\": 10100,\n \"webhookUrl\": \"https://my-webhook.com\",\n \"data\": {\n \"cellphone\": \"3051000002\",\n \"bankName\": \"banco rojo\"\n }\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."
|
|
510
272
|
},
|
|
511
273
|
{
|
|
512
274
|
"uri": "postman://collection/refacil-commerce-api/endpoint/get/sells/sale/saleid",
|
|
513
275
|
"name": "GET /sells/sale/{saleId} - Endpoint Documentation",
|
|
514
276
|
"description": "---\n\n## Description\n\nThis method allows you to obtain the details of a sale by providing the unique identifier of the sale.\n\n---\n\n## Request Schema\n\n- `saleId`: nique identifier of the sale. It can be found in the sell response as 'saleId', 'sellId', or 'codigo'.\n \n\n## Response Schema\n\n- `id`: Unique identifier of the sale. 'sellId', or 'codigo'.\n \n- `amount`: The amount of the sale.\n \n- `serviceNumber`: The number or reference associated to the sale, it depends on the product. .e.g.For SOAT insurance it will be the plate. For packages it will be the phone number.\n \n- `status`: The status of the sale.\n \n | status | definition |\n | --- | --- |\n | 0 | Failed |\n | 1 | Successful |\n | 9 | In progress |\n \n- `productId`: The product id associated to the sale.\n \n- `createdAt`: The created at date.\n \n- `transactionId`: For TransfiYa product, it is the provider transaction id.\n \n- `extra`: Extra data of the sale, It depends on the product. e.g. For SOAT insurance it will be the PDF url of the insurance policy. For pins it will be the pin.",
|
|
515
277
|
"mimeType": "text/markdown",
|
|
516
|
-
"content": "# get sale\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/sells/sale/{saleId}`\n\n## Description\n\n---\n\n## Description\n\nThis method allows you to obtain the details of a sale by providing the unique identifier of the sale.\n\n---\n\n## Request Schema\n\n- `saleId`: nique identifier of the sale. It can be found in the sell response as 'saleId', 'sellId', or 'codigo'.\n \n\n## Response Schema\n\n- `id`: Unique identifier of the sale. 'sellId', or 'codigo'.\n \n- `amount`: The amount of the sale.\n \n- `serviceNumber`: The number or reference associated to the sale, it depends on the product. .e.g.For SOAT insurance it will be the plate. For packages it will be the phone number.\n \n- `status`: The status of the sale.\n \n | status | definition |\n | --- | --- |\n | 0 | Failed |\n | 1 | Successful |\n | 9 | In progress |\n \n- `productId`: The product id associated to the sale.\n \n- `createdAt`: The created at date.\n \n- `transactionId`: For TransfiYa product, it is the provider transaction id.\n \n- `extra`: Extra data of the sale, It depends on the product. e.g. For SOAT insurance it will be the PDF url of the insurance policy. For pins it will be the pin.\n\n## Headers\n\n- **Authorization**: Bearer
|
|
517
|
-
},
|
|
518
|
-
{
|
|
519
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/bank/get-transfiya-banks",
|
|
520
|
-
"name": "GET /bank/get-transfiya-banks/:transferType - Endpoint Documentation",
|
|
521
|
-
"description": "---\n\n### Description\n\nReturn the banks that support Transfiya for the specified transfer type.\n\nBelow is a list of authorized banks:\n\n| BANK | LOGO |\n| --- | --- |\n| BANCOLOMBIA | <img src=\"https://assets.refacil.co/banks/bancolombia.png\" alt=\"\"> |\n| BANCO AGRARIO | <img src=\"https://assets.refacil.co/banks/bancoagrario.png\" alt=\"\"> |\n| BANCO AV VILLAS | <img src=\"https://assets.refacil.co/banks/bancoavvillas.png\" alt=\"\"> |\n| BANCO CAJA SOCIAL | <img src=\"https://assets.refacil.co/banks/bancocajasocial.png\" alt=\"\"> |\n| BANCO COOPERATIVO COOPCENTRAL | <img src=\"https://assets.refacil.co/banks/bancocooperativocoopcentral.png\" alt=\"\"> |\n| BANCO DAVIVIENDA | <img src=\"https://assets.refacil.co/banks/bancodavivienda.png\" alt=\"\"> |\n| BANCO DE BOGOTA | <img src=\"https://assets.refacil.co/banks/bancodebogota.png\" alt=\"\"> |\n| BANCO DE OCCIDENTE | <img src=\"https://assets.refacil.co/banks/bancodeoccidente.png\" alt=\"\"> |\n| BANCO ITAU | <img src=\"https://assets.refacil.co/banks/itau.png\" alt=\"\"> |\n| BANCO SERFINANZA | <img src=\"https://assets.refacil.co/banks/bancoserfinanza.png\" alt=\"\"> |\n| CONFIAR COOPERATIVA FINANCIERA | <img src=\"https://assets.refacil.co/banks/confiarcooperativafinanciera.png\" alt=\"\"> |\n| DALE | <img src=\"https://assets.refacil.co/banks/dale.png\" alt=\"\"> |\n| DAVIPLATA | <img src=\"https://assets.refacil.co/banks/daviplata.png\" alt=\"\"> |\n| MOVII S.A. | <img src=\"https://assets.refacil.co/banks/movii.png\" alt=\"\"> |\n| NEQUI | <img src=\"https://assets.refacil.co/banks/nequi.png\" alt=\"\"> |\n| SCOTIABANK COLPATRIA | <img src=\"https://assets.refacil.co/banks/scotiabankcolpatria.png\" alt=\"\"> |\n| BANCAMIA SA | <img src=\"https://assets.refacil.co/banks/bancamia.png\" alt=\"\"> |\n\n---\n\n### Response schema\n\n- `messageCode`: String code indicating the operation result (required)\n \n- `message`: String containing a message about the operation result (required)\n \n- data: Object containing additional response data (required)\n \n - `banks`: Array of bank objects (required)\n \n - `label`: String representing the bank label (required)\n \n - `value`: Number representing the bank value (required)\n \n - `image`: String representing the bank image filename (required)",
|
|
522
|
-
"mimeType": "text/markdown",
|
|
523
|
-
"content": "# transfiya-banks\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/bank/get-transfiya-banks/:transferType`\n\n## Description\n\n---\n\n### Description\n\nReturn the banks that support Transfiya for the specified transfer type.\n\nBelow is a list of authorized banks:\n\n| BANK | LOGO |\n| --- | --- |\n| BANCOLOMBIA | <img src=\"https://assets.refacil.co/banks/bancolombia.png\" alt=\"\"> |\n| BANCO AGRARIO | <img src=\"https://assets.refacil.co/banks/bancoagrario.png\" alt=\"\"> |\n| BANCO AV VILLAS | <img src=\"https://assets.refacil.co/banks/bancoavvillas.png\" alt=\"\"> |\n| BANCO CAJA SOCIAL | <img src=\"https://assets.refacil.co/banks/bancocajasocial.png\" alt=\"\"> |\n| BANCO COOPERATIVO COOPCENTRAL | <img src=\"https://assets.refacil.co/banks/bancocooperativocoopcentral.png\" alt=\"\"> |\n| BANCO DAVIVIENDA | <img src=\"https://assets.refacil.co/banks/bancodavivienda.png\" alt=\"\"> |\n| BANCO DE BOGOTA | <img src=\"https://assets.refacil.co/banks/bancodebogota.png\" alt=\"\"> |\n| BANCO DE OCCIDENTE | <img src=\"https://assets.refacil.co/banks/bancodeoccidente.png\" alt=\"\"> |\n| BANCO ITAU | <img src=\"https://assets.refacil.co/banks/itau.png\" alt=\"\"> |\n| BANCO SERFINANZA | <img src=\"https://assets.refacil.co/banks/bancoserfinanza.png\" alt=\"\"> |\n| CONFIAR COOPERATIVA FINANCIERA | <img src=\"https://assets.refacil.co/banks/confiarcooperativafinanciera.png\" alt=\"\"> |\n| DALE | <img src=\"https://assets.refacil.co/banks/dale.png\" alt=\"\"> |\n| DAVIPLATA | <img src=\"https://assets.refacil.co/banks/daviplata.png\" alt=\"\"> |\n| MOVII S.A. | <img src=\"https://assets.refacil.co/banks/movii.png\" alt=\"\"> |\n| NEQUI | <img src=\"https://assets.refacil.co/banks/nequi.png\" alt=\"\"> |\n| SCOTIABANK COLPATRIA | <img src=\"https://assets.refacil.co/banks/scotiabankcolpatria.png\" alt=\"\"> |\n| BANCAMIA SA | <img src=\"https://assets.refacil.co/banks/bancamia.png\" alt=\"\"> |\n\n---\n\n### Response schema\n\n- `messageCode`: String code indicating the operation result (required)\n \n- `message`: String containing a message about the operation result (required)\n \n- data: Object containing additional response data (required)\n \n - `banks`: Array of bank objects (required)\n \n - `label`: String representing the bank label (required)\n \n - `value`: Number representing the bank value (required)\n \n - `image`: String representing the bank image filename (required)\n\n"
|
|
524
|
-
},
|
|
525
|
-
{
|
|
526
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/get/requirement/terms-and-conditions",
|
|
527
|
-
"name": "GET /requirement/terms-and-conditions - Endpoint Documentation",
|
|
528
|
-
"description": "---\n\n### Description\n\nGet privacy policy, terms and conditions and data treatment policy, then confirm them in the /requirement/confirm-terms-and-conditions service.\n\n---\n\n### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)",
|
|
529
|
-
"mimeType": "text/markdown",
|
|
530
|
-
"content": "# terms-and-conditions\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/requirement/terms-and-conditions`\n\n## Description\n\n---\n\n### Description\n\nGet privacy policy, terms and conditions and data treatment policy, then confirm them in the /requirement/confirm-terms-and-conditions service.\n\n---\n\n### Request Body\n\nThis endpoint does not require a request body.\n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data (required)\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n"
|
|
531
|
-
},
|
|
532
|
-
{
|
|
533
|
-
"uri": "postman://collection/refacil-commerce-api/endpoint/post/requirement/confirm-terms-and-conditions",
|
|
534
|
-
"name": "POST /requirement/confirm-terms-and-conditions - Endpoint Documentation",
|
|
535
|
-
"description": "---\n\n### Description\n\nIt allows you to transfer funds from the main users money bag to the bag of the user who is being added. The token of the user who will be the beneficiary and the amount must be added.\n\n---\n\n### Request Body\n\n- userToken (string, required): The user token for which the balance will be updated\n \n- amount (number, required): Amount to be updated\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data.",
|
|
536
|
-
"mimeType": "text/markdown",
|
|
537
|
-
"content": "# confirm-terms-and-conditions\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/requirement/confirm-terms-and-conditions`\n\n## Description\n\n---\n\n### Description\n\nIt allows you to transfer funds from the main users money bag to the bag of the user who is being added. The token of the user who will be the beneficiary and the amount must be added.\n\n---\n\n### Request Body\n\n- userToken (string, required): The user token for which the balance will be updated\n \n- amount (number, required): Amount to be updated\n \n\n---\n\n### Response\n\n- `message`: String containing a message about the operation result (required)\n \n- `messageCode`: String code indicating the operation result (required)\n \n- `data`: Object containing additional response data.\n\n## Headers\n\n- **Authorization**: Bearer {{tokenLogin}}\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"checkDataTreatment\": true\n}\n```\n\n"
|
|
278
|
+
"content": "# get sale\n\n## Request Details\n\n**Method**: `GET`\n\n**Path**: `/sells/sale/{saleId}`\n\n## Description\n\n---\n\n## Description\n\nThis method allows you to obtain the details of a sale by providing the unique identifier of the sale.\n\n---\n\n## Request Schema\n\n- `saleId`: nique identifier of the sale. It can be found in the sell response as 'saleId', 'sellId', or 'codigo'.\n \n\n## Response Schema\n\n- `id`: Unique identifier of the sale. 'sellId', or 'codigo'.\n \n- `amount`: The amount of the sale.\n \n- `serviceNumber`: The number or reference associated to the sale, it depends on the product. .e.g.For SOAT insurance it will be the plate. For packages it will be the phone number.\n \n- `status`: The status of the sale.\n \n | status | definition |\n | --- | --- |\n | 0 | Failed |\n | 1 | Successful |\n | 9 | In progress |\n \n- `productId`: The product id associated to the sale.\n \n- `createdAt`: The created at date.\n \n- `transactionId`: For TransfiYa product, it is the provider transaction id.\n \n- `extra`: Extra data of the sale, It depends on the product. e.g. For SOAT insurance it will be the PDF url of the insurance policy. For pins it will be the pin.\n\n## Headers\n\n- **Authorization**: Bearer tokenLogin\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"productId\": 52683,\n \"amount\": 50600,\n \"sellType\": \"Bill\",\n \"hash\": \"hash\",\n \"data\": {\n \"reference\": \"123456\",\n \"cellphone\": \"3203557642\",\n \"hashEchoData\": \"hashEchoData\"\n }\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."
|
|
538
279
|
},
|
|
539
280
|
{
|
|
540
281
|
"uri": "postman://collection/refacil-commerce-api/endpoint/post/collection/submit-transaction",
|
|
541
282
|
"name": "POST /collection/submit-transaction - Endpoint Documentation",
|
|
542
|
-
"description": "---\n\n### Description\n\nThis endpoint is in charge of reporting the collections\n\n### Request Body\n\n- id_cliente (number, required): Unique identifier for the user\n \n- id_transaccion (number, required): Identifier for the transaction\n \n- convenio (number, required): Code representing the specific agreement associated with the transaction\n \n- Valor (number, required): Amount of the transaction\n \n- Fecha (string, required): Date of the transaction\n \n- Hora (string, required): Time of the transaction\n \n\n---\n\n### Response\n\n- `code`: Respond correctly in case of success",
|
|
283
|
+
"description": "---\n\n### Description\n\nThis endpoint is in charge of reporting the collections\n\n### Request Body\n\n- id_cliente (number, required): Unique identifier for the user\n \n- id_transaccion (number, required): Identifier for the transaction\n \n- convenio (number, required): Code representing the specific agreement associated with the transaction\n \n- Valor (number, required): Amount of the transaction\n \n- Fecha (string, required): Date of the transaction\n \n- Hora (string, required): Time of the transaction\n \n\n---\n\n### Response\n\n- `code`: Respond correctly in case of success\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | — | `{field} must be a number` | A required numeric field (`id_cliente`, `id_transaccion`, `convenio`, `Valor`) is absent or not numeric |\n| 400 | — | `{field} must be a string` | A required string field (`Fecha`, `Hora`) is absent or not a string |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Internal failure when registering the transaction — retry; if it persists, notify support |",
|
|
543
284
|
"mimeType": "text/markdown",
|
|
544
|
-
"content": "# submit-transaction\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/collection/submit-transaction`\n\n## Description\n\n---\n\n### Description\n\nThis endpoint is in charge of reporting the collections\n\n### Request Body\n\n- id_cliente (number, required): Unique identifier for the user\n \n- id_transaccion (number, required): Identifier for the transaction\n \n- convenio (number, required): Code representing the specific agreement associated with the transaction\n \n- Valor (number, required): Amount of the transaction\n \n- Fecha (string, required): Date of the transaction\n \n- Hora (string, required): Time of the transaction\n \n\n---\n\n### Response\n\n- `code`: Respond correctly in case of success\n\n## Headers\n\n- **Authorization**: Bearer
|
|
285
|
+
"content": "# submit-transaction\n\n## Request Details\n\n**Method**: `POST`\n\n**Path**: `/collection/submit-transaction`\n\n## Description\n\n---\n\n### Description\n\nThis endpoint is in charge of reporting the collections\n\n### Request Body\n\n- id_cliente (number, required): Unique identifier for the user\n \n- id_transaccion (number, required): Identifier for the transaction\n \n- convenio (number, required): Code representing the specific agreement associated with the transaction\n \n- Valor (number, required): Amount of the transaction\n \n- Fecha (string, required): Date of the transaction\n \n- Hora (string, required): Time of the transaction\n \n\n---\n\n### Response\n\n- `code`: Respond correctly in case of success\n\n---\n\n### Error Codes\n\n| HTTP | `errorCode` | Message | Condition |\n|------|-------------|---------|----------|\n| 400 | — | `{field} must be a number` | A required numeric field (`id_cliente`, `id_transaccion`, `convenio`, `Valor`) is absent or not numeric |\n| 400 | — | `{field} must be a string` | A required string field (`Fecha`, `Hora`) is absent or not a string |\n| 401 | `error.auth.failed` | `Error en la autenticación` | Invalid or expired authentication token. Re-authenticate and retry the request. |\n| 500 | `server.error` | `Mensaje del error interno` or `Critical internal server error occurred!` | Internal failure when registering the transaction — retry; if it persists, notify support |\n\n## Headers\n\n- **Authorization**: Bearer JWT\n- **x-secret-id**: fe4618ed155f863fb60d183e30a9634f90dce6cc725ed9fa31fab633de***\n\n## Request Body\n\n**Type**: `raw`\n\n```json\n{\n \"id_cliente\": 900,\n \"id_transaccion\": 900,\n \"convenio\": 2,\n \"Valor\": 10000,\n \"Fecha\": \"2024-10-**\",\n \"Hora\": \"09:**\"\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."
|
|
545
286
|
}
|
|
546
287
|
];
|
|
547
288
|
/**
|