refacil-commerce-mcp 1.0.8 → 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.
@@ -7,16 +7,16 @@ export const resources = [
7
7
  {
8
8
  "uri": "postman://collection/refacil-commerce-api",
9
9
  "name": "Refacil Commerce API - API Documentation",
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> API implementation credentials in test environment will be available throughout the integration and up to 30 days after certification in production.",
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\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> 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: 33\n\n### Methods Distribution\n\n- POST: 28\n- GET: 5\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": "#### **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> API implementation credentials in test environment will be available throughout the integration and up to 30 days after certification in production.",
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\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> 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"
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",
@@ -37,7 +37,7 @@ export const resources = [
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",
@@ -65,7 +65,7 @@ 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---\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### 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"
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"
69
69
  },
70
70
  {
71
71
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/auth/login-api",
@@ -133,37 +133,30 @@ export const resources = [
133
133
  {
134
134
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
135
135
  "name": "POST /product/query - Endpoint Documentation",
136
- "description": "---\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.",
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\" |",
137
137
  "mimeType": "text/markdown",
138
- "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\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."
139
- },
140
- {
141
- "uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
142
- "name": "POST /product/query - Endpoint Documentation",
143
- "description": "**Important:** This request will be processed within a timeout of **30,000 milliseconds (30 seconds)**.",
144
- "mimeType": "text/markdown",
145
- "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## 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."
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."
146
139
  },
147
140
  {
148
141
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
149
142
  "name": "POST /sells/sell - Endpoint Documentation",
150
- "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\" |",
151
144
  "mimeType": "text/markdown",
152
- "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 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."
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."
153
146
  },
154
147
  {
155
148
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
156
149
  "name": "POST /product/query - Endpoint Documentation",
157
- "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\" |",
158
151
  "mimeType": "text/markdown",
159
- "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 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."
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."
160
153
  },
161
154
  {
162
155
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
163
156
  "name": "POST /sells/sell - Endpoint Documentation",
164
- "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\" |",
165
158
  "mimeType": "text/markdown",
166
- "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 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."
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."
167
160
  },
168
161
  {
169
162
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
@@ -189,93 +182,93 @@ export const resources = [
189
182
  {
190
183
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
191
184
  "name": "POST /sells/sell - Endpoint Documentation",
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)**.",
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\" |",
193
186
  "mimeType": "text/markdown",
194
- "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## 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 }\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."
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."
195
188
  },
196
189
  {
197
190
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
198
191
  "name": "POST /sells/sell - Endpoint Documentation",
199
- "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)**.",
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\" |",
200
193
  "mimeType": "text/markdown",
201
- "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## 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."
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."
202
195
  },
203
196
  {
204
197
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
205
198
  "name": "POST /sells/sell - Endpoint Documentation",
206
- "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)**.",
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\" |",
207
200
  "mimeType": "text/markdown",
208
- "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## 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."
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."
209
202
  },
210
203
  {
211
204
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
212
205
  "name": "POST /sells/sell - Endpoint Documentation",
213
- "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)**.",
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\" |",
214
207
  "mimeType": "text/markdown",
215
- "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## 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."
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."
216
209
  },
217
210
  {
218
211
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
219
212
  "name": "POST /sells/sell - Endpoint Documentation",
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)",
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\" |",
221
214
  "mimeType": "text/markdown",
222
- "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## 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."
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."
223
216
  },
224
217
  {
225
218
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
226
219
  "name": "POST /sells/sell - Endpoint Documentation",
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)",
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\" |",
228
221
  "mimeType": "text/markdown",
229
- "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 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."
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."
230
223
  },
231
224
  {
232
225
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
233
226
  "name": "POST /sells/sell - Endpoint Documentation",
234
- "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\" |",
235
228
  "mimeType": "text/markdown",
236
- "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## 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."
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."
237
230
  },
238
231
  {
239
232
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
240
233
  "name": "POST /product/query - Endpoint Documentation",
241
- "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)**.",
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\" |",
242
235
  "mimeType": "text/markdown",
243
- "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## 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."
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."
244
237
  },
245
238
  {
246
239
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
247
240
  "name": "POST /sells/sell - Endpoint Documentation",
248
- "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)",
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=\" |",
249
242
  "mimeType": "text/markdown",
250
- "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## 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."
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."
251
244
  },
252
245
  {
253
246
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/product/query",
254
247
  "name": "POST /product/query - Endpoint Documentation",
255
- "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)**.",
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\" |",
256
249
  "mimeType": "text/markdown",
257
- "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## 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."
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."
258
251
  },
259
252
  {
260
253
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
261
254
  "name": "POST /sells/sell - Endpoint Documentation",
262
- "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)",
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==\" |",
263
256
  "mimeType": "text/markdown",
264
- "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## 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."
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."
265
258
  },
266
259
  {
267
260
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
268
261
  "name": "POST /sells/sell - Endpoint Documentation",
269
- "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### 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 |",
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 |",
270
263
  "mimeType": "text/markdown",
271
- "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### 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."
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."
272
265
  },
273
266
  {
274
267
  "uri": "postman://collection/refacil-commerce-api/endpoint/post/sells/sell",
275
268
  "name": "POST /sells/sell - Endpoint Documentation",
276
- "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### 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 |",
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 |",
277
270
  "mimeType": "text/markdown",
278
- "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### 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."
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."
279
272
  },
280
273
  {
281
274
  "uri": "postman://collection/refacil-commerce-api/endpoint/get/sells/sale/saleid",