{"info":{"_postman_id":"2445d6f9-6ae5-4249-9fa7-21f0fd89ecf6","name":"HOI eServices API","description":"<html><head></head><body><p>The HOI eServices API provides a unified interface for digital services including gift cards, eSIM provisioning, mobile top-ups, vouchers, bill payments, and travel insurance. Each service is organized as a separate folder within this collection.</p>\n<hr>\n<h2 id=\"base-urls\">Base URLs</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Environment</th>\n<th>Base URL</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Preproduction (PPD)</td>\n<td><code>https://eservicespre.hoicom.net</code></td>\n</tr>\n<tr>\n<td>Production (PRD)</td>\n<td><code>https://eservices.hoicom.net</code></td>\n</tr>\n</tbody>\n</table>\n</div><p>All endpoint paths are relative to the base URL for your target environment, e.g. <code>https://eservicespre.hoicom.net/api/v0/gifts/locations</code>.</p>\n<hr>\n<h2 id=\"api-architecture\">API Architecture</h2>\n<p>The API is structured around RESTful principles, utilizing standard HTTP methods and status codes. It communicates using JSON-formatted requests and responses, ensuring compatibility with a wide range of clients and platforms.</p>\n<ul>\n<li><p><strong>Content Type:</strong> All requests and responses use <code>application/json</code></p>\n</li>\n<li><p><strong>Base URL:</strong> Environment-specific — see the <strong>Base URLs</strong> section above. Paths follow the form <code>.../api/{version}/{service}</code></p>\n</li>\n<li><p><strong>Versioning:</strong> API versions are specified in the URL path (e.g., <code>v0</code>, <code>v1</code>)</p>\n</li>\n</ul>\n<hr>\n<h2 id=\"authentication\">Authentication</h2>\n<p>All API endpoints require proper authentication to ensure secure access. Authentication is handled via <strong>Basic Authentication</strong>, where clients provide their credentials with each request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Property</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Method</strong></td>\n<td>Basic Authentication</td>\n</tr>\n<tr>\n<td><strong>Header</strong></td>\n<td><code>Authorization: Basic {Base64EncodedCredentials}</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"how-to-encode-credentials\">How to encode credentials</h3>\n<ol>\n<li><p>Combine your username and password with a colon: <code>username:password</code></p>\n</li>\n<li><p>Encode the combined string using <strong>Base64</strong> encoding</p>\n</li>\n<li><p>Include the encoded string in the <code>Authorization</code> header:</p>\n</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Basic xxxxxxxxx\n\n</code></pre><hr>\n<h2 id=\"security\">Security</h2>\n<h3 id=\"transport-security-tls\">Transport Security (TLS)</h3>\n<ul>\n<li>All API communication is served <strong>exclusively over HTTPS/TLS</strong>. Plain HTTP is not supported on any endpoint.</li>\n<li><strong>TLS 1.2 or higher</strong> is enforced.</li>\n<li>Our TLS server certificates are issued by a <strong>trusted public Certificate Authority (CA)</strong>.</li>\n</ul>\n<h3 id=\"certificates\">Certificates</h3>\n<ul>\n<li>Server certificates are renewed <strong>annually</strong>, ahead of expiry.</li>\n<li>Clients who validate or pin our certificate on their systems are <strong>notified in advance of each renewal</strong>, with the new certificate / public key provided beforehand so it can be pre-configured with <strong>no service interruption</strong>.</li>\n</ul>\n<h3 id=\"authentication-1\">Authentication</h3>\n<ul>\n<li>Every request must include valid client credentials in the <code>Authorization</code> header (HTTP <strong>Basic Authentication</strong>).</li>\n<li>Each client is issued <strong>unique credentials</strong>, with <strong>separate credentials per environment</strong> (Pre-Production and Production).</li>\n<li>Credentials are delivered through a <strong>secure channel during onboarding</strong> and can be <strong>rotated or revoked immediately</strong> upon request or suspicion of compromise.</li>\n</ul>\n<h3 id=\"input-validation\">Input Validation</h3>\n<ul>\n<li>Strict <strong>server-side validation</strong> is applied to request format and parameters, protecting the platform against malformed and injection-style payloads.</li>\n</ul>\n<h3 id=\"environment-segregation\">Environment Segregation</h3>\n<ul>\n<li><strong>Pre-Production</strong> (<code>eservicespre.hoicom.net</code>) and <strong>Production</strong> (<code>eservices.hoicom.net</code>) are <strong>fully segregated</strong> environments, with separate credentials and separate data.</li>\n<li>All integration testing must be completed in <strong>Pre-Production before Production access is granted</strong>.</li>\n</ul>\n<hr>\n<h2 id=\"response-format\">Response Format</h2>\n<p>All responses follow a standard JSON structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": { }\n}\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td><code>int</code></td>\n<td>Custom response code (see table below)</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td><code>string</code></td>\n<td>Human-readable message</td>\n</tr>\n<tr>\n<td><code>data</code></td>\n<td><code>object</code></td>\n<td>Response payload (nullable on errors)</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h2 id=\"response-codes\">Response Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Name</th>\n<th>Message</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>1000</strong></td>\n<td>Success</td>\n<td>Request processed successfully.</td>\n</tr>\n<tr>\n<td><strong>1101</strong></td>\n<td>InternalServerError</td>\n<td>Internal server error.</td>\n</tr>\n<tr>\n<td><strong>1102</strong></td>\n<td>InvalidRequestFormat</td>\n<td>Invalid request format.</td>\n</tr>\n<tr>\n<td><strong>1103</strong></td>\n<td>UnauthorizedAccess</td>\n<td>Unauthorized access.</td>\n</tr>\n<tr>\n<td><strong>1104</strong></td>\n<td>Forbidden</td>\n<td>Forbidden.</td>\n</tr>\n<tr>\n<td><strong>1105</strong></td>\n<td>ResourceNotFound</td>\n<td>Resource not found.</td>\n</tr>\n<tr>\n<td><strong>1106</strong></td>\n<td>MethodNotAllowed</td>\n<td>Method not allowed.</td>\n</tr>\n<tr>\n<td><strong>1107</strong></td>\n<td>ValidationError</td>\n<td>Validation error.</td>\n</tr>\n<tr>\n<td><strong>1108</strong></td>\n<td>InvalidCredentials</td>\n<td>Invalid credentials.</td>\n</tr>\n<tr>\n<td><strong>1109</strong></td>\n<td>RateLimitExceeded</td>\n<td>Rate limit exceeded.</td>\n</tr>\n<tr>\n<td><strong>1110</strong></td>\n<td>UnsupportedMediaType</td>\n<td>Unsupported media type.</td>\n</tr>\n<tr>\n<td><strong>1111</strong></td>\n<td>NotAcceptable</td>\n<td>Not acceptable.</td>\n</tr>\n<tr>\n<td><strong>1112</strong></td>\n<td>Conflict</td>\n<td>Conflict with current state.</td>\n</tr>\n<tr>\n<td><strong>1113</strong></td>\n<td>ServiceUnavailable</td>\n<td>Service unavailable.</td>\n</tr>\n<tr>\n<td><strong>1114</strong></td>\n<td>InvalidParameterValue</td>\n<td>Invalid parameter value.</td>\n</tr>\n<tr>\n<td><strong>1120</strong></td>\n<td>TooManyRequests</td>\n<td>Too many requests.</td>\n</tr>\n<tr>\n<td><strong>1201</strong></td>\n<td>PaginationErrorInvalidPage</td>\n<td>Invalid page number.</td>\n</tr>\n<tr>\n<td><strong>1202</strong></td>\n<td>PaginationErrorInvalidPageSize</td>\n<td>Invalid page size.</td>\n</tr>\n<tr>\n<td><strong>1301</strong></td>\n<td>SearchParameterErrorInvalidTerm</td>\n<td>Invalid search term.</td>\n</tr>\n<tr>\n<td><strong>1302</strong></td>\n<td>FilteringErrorInvalidCriteria</td>\n<td>Invalid filtering criteria.</td>\n</tr>\n<tr>\n<td><strong>1303</strong></td>\n<td>NoResultsFound</td>\n<td>No results found.</td>\n</tr>\n<tr>\n<td><strong>1401</strong></td>\n<td>InvalidNumberOrAccount</td>\n<td>Invalid number or account.</td>\n</tr>\n<tr>\n<td><strong>1402</strong></td>\n<td>LimitationExceeded</td>\n<td>Limitation exceeded.</td>\n</tr>\n<tr>\n<td><strong>1403</strong></td>\n<td>TransactionRejected</td>\n<td>Transaction rejected.</td>\n</tr>\n<tr>\n<td><strong>1404</strong></td>\n<td>DeclinedByProvider</td>\n<td>Declined by provider.</td>\n</tr>\n<tr>\n<td><strong>1405</strong></td>\n<td>ProviderDown</td>\n<td>Provider is down.</td>\n</tr>\n<tr>\n<td><strong>1406</strong></td>\n<td>NumberOrAccountIssueByProvider</td>\n<td>Number or account issue by provider.</td>\n</tr>\n<tr>\n<td><strong>1407</strong></td>\n<td>DuplicateTransaction</td>\n<td>Duplicate transaction.</td>\n</tr>\n<tr>\n<td><strong>1408</strong></td>\n<td>TransactionTimeout</td>\n<td>Transaction timeout.</td>\n</tr>\n<tr>\n<td><strong>1409</strong></td>\n<td>InvalidTransactionAmount</td>\n<td>Invalid transaction amount.</td>\n</tr>\n<tr>\n<td><strong>1410</strong></td>\n<td>ServiceTemporarilyUnavailable</td>\n<td>Service temporarily unavailable.</td>\n</tr>\n<tr>\n<td><strong>1411</strong></td>\n<td>InsufficientFunds</td>\n<td>Insufficient funds.</td>\n</tr>\n<tr>\n<td><strong>1412</strong></td>\n<td>ExceededTransactionLimit</td>\n<td>Exceeded transaction limit.</td>\n</tr>\n<tr>\n<td><strong>1413</strong></td>\n<td>InvalidProductId</td>\n<td>Invalid product ID.</td>\n</tr>\n<tr>\n<td><strong>1414</strong></td>\n<td>InvalidCurrencyCode</td>\n<td>Invalid currency code.</td>\n</tr>\n<tr>\n<td><strong>1415</strong></td>\n<td>InvalidAmountRange</td>\n<td>Invalid amount range.</td>\n</tr>\n<tr>\n<td><strong>1416</strong></td>\n<td>InvalidDestinationNumberFormat</td>\n<td>Invalid destination number format.</td>\n</tr>\n<tr>\n<td><strong>1417</strong></td>\n<td>DestinationNumberNotSupported</td>\n<td>Destination number not supported.</td>\n</tr>\n<tr>\n<td><strong>1418</strong></td>\n<td>InvalidExternalReference</td>\n<td>Invalid external reference.</td>\n</tr>\n<tr>\n<td><strong>1419</strong></td>\n<td>TransactionAlreadyProcessed</td>\n<td>Transaction already processed.</td>\n</tr>\n<tr>\n<td><strong>1420</strong></td>\n<td>UnsupportedCountry</td>\n<td>Unsupported country.</td>\n</tr>\n<tr>\n<td><strong>1421</strong></td>\n<td>UnsupportedOperator</td>\n<td>Unsupported operator.</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h2 id=\"transaction-statuses\">Transaction Statuses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Submitted</strong></td>\n<td>The transaction has been received and is queued for processing.</td>\n</tr>\n<tr>\n<td><strong>Pending</strong></td>\n<td>The transaction is currently being processed by the system or service provider.</td>\n</tr>\n<tr>\n<td><strong>Completed</strong></td>\n<td>The transaction has been completed successfully.</td>\n</tr>\n<tr>\n<td><strong>Failed</strong></td>\n<td>The transaction failed during processing due to an error or issue.</td>\n</tr>\n<tr>\n<td><strong>Cancelled</strong></td>\n<td>The transaction was cancelled before completion.</td>\n</tr>\n</tbody>\n</table>\n</div></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"41813919","collectionId":"2445d6f9-6ae5-4249-9fa7-21f0fd89ecf6","publishedId":"2sBXigMZ13","public":true,"customColor":{"top-bar":"2671C5","right-sidebar":"303030","highlight":"2671C5"},"publishDate":"2026-07-02T09:11:58.000Z"},"item":[{"name":"eSIM","item":[{"name":"Get Regions","id":"d6082f91-3a8f-4120-ba62-de5128bb4a28","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/regions?lang=en&sortBy=name&sortDescending=false","description":"<p>Returns the geographic <strong>regions</strong> eSIM plans are grouped into. Use a region <code>code</code> with <strong>Get Plans by Region</strong> to list its plans.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>en</code></td>\n<td>Language for text fields: <code>en</code> or <code>ar</code>.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>name</code></td>\n<td>Field to sort by.</td>\n</tr>\n<tr>\n<td><code>sortDescending</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Sort descending.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a list of regions, each with <code>name</code>, <code>code</code>, and <code>countries</code>.</p>\n","urlObject":{"path":["api","v0","esim","regions"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Language for text fields: \"en\" or \"ar\".</p>\n","type":"text/plain"},"key":"lang","value":"en"},{"description":{"content":"<p>Field to sort by.</p>\n","type":"text/plain"},"key":"sortBy","value":"name"},{"description":{"content":"<p>Sort descending.</p>\n","type":"text/plain"},"key":"sortDescending","value":"false"}],"variable":[]}},"response":[{"id":"ff3e153b-cb7f-4232-9ea1-72c4326f874a","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/regions?lang=en&sortBy=name&sortDescending=false","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","regions"],"query":[{"key":"lang","value":"en","description":"Language for text fields: \"en\" or \"ar\"."},{"key":"sortBy","value":"name","description":"Field to sort by."},{"key":"sortDescending","value":"false","description":"Sort descending."}]},"description":"Returns the geographic **regions** eSIM plans are grouped into. Use a region `code` with **Get Plans by Region** to list its plans.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `lang` | `string` | No | `en` | Language for text fields: `en` or `ar`. |\n| `sortBy` | `string` | No | `name` | Field to sort by. |\n| `sortDescending` | `bool` | No | `false` | Sort descending. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a list of regions, each with `name`, `code`, and `countries`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": [\n    {\n      \"name\": \"Europe\",\n      \"code\": \"EU\",\n      \"countries\": [\n        \"FRA\",\n        \"DEU\",\n        \"ESP\"\n      ]\n    },\n    {\n      \"name\": \"Asia Pacific\",\n      \"code\": \"AP\",\n      \"countries\": [\n        \"JPN\",\n        \"SGP\",\n        \"AUS\"\n      ]\n    }\n  ]\n}"}],"_postman_id":"d6082f91-3a8f-4120-ba62-de5128bb4a28"},{"name":"Get Countries","id":"5fd9197e-1d04-4805-aa9b-c7250896b37e","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/countries?name=&isoCode=&continentName=&lang=en&sortBy=name&sortDescending=false&page=1&pageSize=300","description":"<p>Returns the <strong>countries</strong> eSIM plans are available for, with currency, calling codes, and dialing rules.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country name.</td>\n</tr>\n<tr>\n<td><code>isoCode</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by ISO code.</td>\n</tr>\n<tr>\n<td><code>continentName</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by continent.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>en</code></td>\n<td>Language: <code>en</code> or <code>ar</code>.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>name</code></td>\n<td>Field to sort by.</td>\n</tr>\n<tr>\n<td><code>sortDescending</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Sort descending.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>300</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of countries.</p>\n","urlObject":{"path":["api","v0","esim","countries"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Filter by country name.</p>\n","type":"text/plain"},"key":"name","value":""},{"description":{"content":"<p>Filter by ISO code.</p>\n","type":"text/plain"},"key":"isoCode","value":""},{"description":{"content":"<p>Filter by continent.</p>\n","type":"text/plain"},"key":"continentName","value":""},{"description":{"content":"<p>Language: \"en\" or \"ar\".</p>\n","type":"text/plain"},"key":"lang","value":"en"},{"key":"sortBy","value":"name"},{"key":"sortDescending","value":"false"},{"key":"page","value":"1"},{"key":"pageSize","value":"300"}],"variable":[]}},"response":[{"id":"7cc47c73-06b9-47c2-9783-09d55c2fb94c","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/countries?name=&isoCode=&continentName=&lang=en&sortBy=name&sortDescending=false&page=1&pageSize=300","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","countries"],"query":[{"key":"name","value":"","description":"Filter by country name."},{"key":"isoCode","value":"","description":"Filter by ISO code."},{"key":"continentName","value":"","description":"Filter by continent."},{"key":"lang","value":"en","description":"Language: \"en\" or \"ar\"."},{"key":"sortBy","value":"name"},{"key":"sortDescending","value":"false"},{"key":"page","value":"1"},{"key":"pageSize","value":"300"}]},"description":"Returns the **countries** eSIM plans are available for, with currency, calling codes, and dialing rules.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `name` | `string` | No | — | Filter by country name. |\n| `isoCode` | `string` | No | — | Filter by ISO code. |\n| `continentName` | `string` | No | — | Filter by continent. |\n| `lang` | `string` | No | `en` | Language: `en` or `ar`. |\n| `sortBy` | `string` | No | `name` | Field to sort by. |\n| `sortDescending` | `bool` | No | `false` | Sort descending. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `300` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of countries."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"name\": \"Saudi Arabia\",\n        \"isoCode\": \"SAU\",\n        \"continentName\": \"Asia\",\n        \"currency\": {\n          \"code\": \"SAR\",\n          \"name\": \"Saudi Riyal\",\n          \"symbol\": \"ر.س\"\n        },\n        \"flagUrl\": \"https://cdn.example.com/flags/sa.svg\",\n        \"callingCodes\": [\n          \"+966\"\n        ],\n        \"regions\": [\n          {\n            \"name\": \"Middle East\",\n            \"code\": \"ME\"\n          }\n        ],\n        \"dialingRules\": [\n          {\n            \"prefix\": \"5\",\n            \"minimumLength\": 9,\n            \"maximumLength\": 9\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"5fd9197e-1d04-4805-aa9b-c7250896b37e"},{"name":"Get Plans","id":"804e2310-d31b-4ef4-8e48-eb02dbec261f","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/plans?coverageType=REGIONAL&supportsTopup=true&sortBy=minprice&sortDescending=false&page=1&pageSize=50&lang=en","description":"<p>Returns available <strong>eSIM plans</strong> with rich filtering. Each plan carries its <code>details</code>, <code>pricing</code> (see <strong>Pricing type</strong> in the folder overview), and <code>validities</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by plan id.</td>\n</tr>\n<tr>\n<td><code>unlimited</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td>—</td>\n<td>Only unlimited-data plans.</td>\n</tr>\n<tr>\n<td><code>supportsTopup</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td>—</td>\n<td>Only plans that support top-ups.</td>\n</tr>\n<tr>\n<td><code>coverageType</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td><code>LOCAL</code>, <code>REGIONAL</code>, or <code>GLOBAL</code>.</td>\n</tr>\n<tr>\n<td><code>countryIsoCodes</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country ISO codes.</td>\n</tr>\n<tr>\n<td><code>operators</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by network operators.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>minprice</code></td>\n<td>Field to sort by.</td>\n</tr>\n<tr>\n<td><code>sortDescending</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Sort descending.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page (max 50).</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>en</code></td>\n<td>Language for text fields: <code>en</code> (English) or <code>ar</code> (Arabic).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of plans. <code>details.coverageType</code> uses the <strong>Coverage type</strong> enum and <code>pricing.type</code> the <strong>Pricing type</strong> enum (see folder overview).</p>\n","urlObject":{"path":["api","v0","esim","plans"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>LOCAL, REGIONAL, or GLOBAL.</p>\n","type":"text/plain"},"key":"coverageType","value":"REGIONAL"},{"key":"supportsTopup","value":"true"},{"key":"sortBy","value":"minprice"},{"key":"sortDescending","value":"false"},{"key":"page","value":"1"},{"key":"pageSize","value":"50"},{"description":{"content":"<p>Language for text fields: en or ar.</p>\n","type":"text/plain"},"key":"lang","value":"en"}],"variable":[]}},"response":[{"id":"268a6c83-cf3a-4360-9469-442e5149f682","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/plans?coverageType=REGIONAL&supportsTopup=true&sortBy=minprice&sortDescending=false&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","plans"],"query":[{"key":"coverageType","value":"REGIONAL","description":"LOCAL, REGIONAL, or GLOBAL."},{"key":"supportsTopup","value":"true"},{"key":"sortBy","value":"minprice"},{"key":"sortDescending","value":"false"},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Returns available **eSIM plans** with rich filtering. Each plan carries its `details`, `pricing` (see **Pricing type** in the folder overview), and `validities`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `id` | `string` | No | — | Filter by plan id. |\n| `unlimited` | `bool` | No | — | Only unlimited-data plans. |\n| `supportsTopup` | `bool` | No | — | Only plans that support top-ups. |\n| `coverageType` | `string` | No | — | `LOCAL`, `REGIONAL`, or `GLOBAL`. |\n| `countryIsoCodes` | `string[]` | No | — | Filter by country ISO codes. |\n| `operators` | `string[]` | No | — | Filter by network operators. |\n| `sortBy` | `string` | No | `minprice` | Field to sort by. |\n| `sortDescending` | `bool` | No | `false` | Sort descending. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page (max 50). |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of plans. `details.coverageType` uses the **Coverage type** enum and `pricing.type` the **Pricing type** enum (see folder overview)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"plan_eu_5gb_30d\",\n        \"details\": {\n          \"name\": \"Europe 5GB - 30 Days\",\n          \"description\": \"5GB of data across Europe, valid for 30 days.\",\n          \"coverageType\": \"REGIONAL\",\n          \"termsAndConditions\": \"Standard eSIM terms apply.\",\n          \"usageInstructions\": \"Scan the QR code and enable data roaming.\",\n          \"unlimited\": false,\n          \"supportsTopup\": true,\n          \"autoRenew\": false,\n          \"maxDownloadSpeed\": null,\n          \"maxUploadSpeed\": null,\n          \"validCountries\": [\n            {\n              \"name\": \"France\",\n              \"isoCode3\": \"FRA\"\n            },\n            {\n              \"name\": \"Germany\",\n              \"isoCode3\": \"DEU\"\n            }\n          ],\n          \"supportedOperators\": [\n            \"Orange\",\n            \"Vodafone\"\n          ]\n        },\n        \"pricing\": {\n          \"type\": \"FIXED\",\n          \"currency\": \"SAR\",\n          \"minAmount\": 75,\n          \"maxAmount\": 75,\n          \"fees\": 0,\n          \"tax\": {\n            \"taxRate\": 15,\n            \"taxType\": \"VAT\",\n            \"taxAmount\": 11.25\n          }\n        },\n        \"validities\": [\n          {\n            \"type\": \"DATA\",\n            \"unit\": \"GB\",\n            \"quantity\": 5\n          },\n          {\n            \"type\": \"DURATION\",\n            \"unit\": \"DAYS\",\n            \"quantity\": 30\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"804e2310-d31b-4ef4-8e48-eb02dbec261f"},{"name":"Get Plans by Country","id":"909568f4-3c0a-40e2-89a2-c36708a270ce","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/plans/country/:countryIsoCode?page=1&pageSize=50&lang=en","description":"<p>Returns eSIM plans available for a specific country.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>countryIsoCode</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Country ISO code (2 or 3 letters).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>en</code></td>\n<td>Language for text fields: <code>en</code> (English) or <code>ar</code> (Arabic).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of plans.</p>\n","urlObject":{"path":["api","v0","esim","plans","country",":countryIsoCode"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"},{"description":{"content":"<p>Language for text fields: en or ar.</p>\n","type":"text/plain"},"key":"lang","value":"en"}],"variable":[{"type":"any","value":"","key":"countryIsoCode"}]}},"response":[{"id":"539802c7-05bf-49a1-b422-431f20e4da5c","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/plans/country/:countryIsoCode?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","plans","country",":countryIsoCode"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[{"key":"countryIsoCode","value":""}]},"description":"Returns eSIM plans available for a specific country.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `countryIsoCode` | `string` | Yes | Country ISO code (2 or 3 letters). |\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of plans."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"plan_eu_5gb_30d\",\n        \"details\": {\n          \"name\": \"Europe 5GB - 30 Days\",\n          \"description\": \"5GB of data across Europe, valid for 30 days.\",\n          \"coverageType\": \"REGIONAL\",\n          \"termsAndConditions\": \"Standard eSIM terms apply.\",\n          \"usageInstructions\": \"Scan the QR code and enable data roaming.\",\n          \"unlimited\": false,\n          \"supportsTopup\": true,\n          \"autoRenew\": false,\n          \"maxDownloadSpeed\": null,\n          \"maxUploadSpeed\": null,\n          \"validCountries\": [\n            {\n              \"name\": \"France\",\n              \"isoCode3\": \"FRA\"\n            },\n            {\n              \"name\": \"Germany\",\n              \"isoCode3\": \"DEU\"\n            }\n          ],\n          \"supportedOperators\": [\n            \"Orange\",\n            \"Vodafone\"\n          ]\n        },\n        \"pricing\": {\n          \"type\": \"FIXED\",\n          \"currency\": \"SAR\",\n          \"minAmount\": 75,\n          \"maxAmount\": 75,\n          \"fees\": 0,\n          \"tax\": {\n            \"taxRate\": 15,\n            \"taxType\": \"VAT\",\n            \"taxAmount\": 11.25\n          }\n        },\n        \"validities\": [\n          {\n            \"type\": \"DATA\",\n            \"unit\": \"GB\",\n            \"quantity\": 5\n          },\n          {\n            \"type\": \"DURATION\",\n            \"unit\": \"DAYS\",\n            \"quantity\": 30\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"909568f4-3c0a-40e2-89a2-c36708a270ce"},{"name":"Get Plans by Region","id":"2cfc28ec-b663-4d73-a753-3f1589af2e2e","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/plans/region/:regionCode?page=1&pageSize=50&lang=en","description":"<p>Returns eSIM plans available for a specific region (region <code>code</code> from <strong>Get Regions</strong>).</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>regionCode</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Region code, e.g. <code>EU</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>en</code></td>\n<td>Language for text fields: <code>en</code> (English) or <code>ar</code> (Arabic).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of plans.</p>\n","urlObject":{"path":["api","v0","esim","plans","region",":regionCode"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"},{"description":{"content":"<p>Language for text fields: en or ar.</p>\n","type":"text/plain"},"key":"lang","value":"en"}],"variable":[{"type":"any","value":"","key":"regionCode"}]}},"response":[{"id":"48d29976-52a2-4135-9b0d-48598a7bc5ae","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/plans/region/:regionCode?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","plans","region",":regionCode"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[{"key":"regionCode","value":""}]},"description":"Returns eSIM plans available for a specific region (region `code` from **Get Regions**).\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `regionCode` | `string` | Yes | Region code, e.g. `EU`. |\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of plans."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"plan_eu_5gb_30d\",\n        \"details\": {\n          \"name\": \"Europe 5GB - 30 Days\",\n          \"description\": \"5GB of data across Europe, valid for 30 days.\",\n          \"coverageType\": \"REGIONAL\",\n          \"termsAndConditions\": \"Standard eSIM terms apply.\",\n          \"usageInstructions\": \"Scan the QR code and enable data roaming.\",\n          \"unlimited\": false,\n          \"supportsTopup\": true,\n          \"autoRenew\": false,\n          \"maxDownloadSpeed\": null,\n          \"maxUploadSpeed\": null,\n          \"validCountries\": [\n            {\n              \"name\": \"France\",\n              \"isoCode3\": \"FRA\"\n            },\n            {\n              \"name\": \"Germany\",\n              \"isoCode3\": \"DEU\"\n            }\n          ],\n          \"supportedOperators\": [\n            \"Orange\",\n            \"Vodafone\"\n          ]\n        },\n        \"pricing\": {\n          \"type\": \"FIXED\",\n          \"currency\": \"SAR\",\n          \"minAmount\": 75,\n          \"maxAmount\": 75,\n          \"fees\": 0,\n          \"tax\": {\n            \"taxRate\": 15,\n            \"taxType\": \"VAT\",\n            \"taxAmount\": 11.25\n          }\n        },\n        \"validities\": [\n          {\n            \"type\": \"DATA\",\n            \"unit\": \"GB\",\n            \"quantity\": 5\n          },\n          {\n            \"type\": \"DURATION\",\n            \"unit\": \"DAYS\",\n            \"quantity\": 30\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"2cfc28ec-b663-4d73-a753-3f1589af2e2e"},{"name":"Get Plan Networks","id":"95efda1a-ebfc-4550-aa5a-3af94ef57f6f","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/plans/:id/networks","description":"<p>Returns the network operators reachable on a plan, grouped by country.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Plan identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a list of <code>{ countryIsoCode, operators[] }</code>.</p>\n","urlObject":{"path":["api","v0","esim","plans",":id","networks"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"d420746f-f58a-4dbb-8711-d23880c540ef","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/plans/:id/networks","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","plans",":id","networks"],"variable":[{"key":"id","value":""}]},"description":"Returns the network operators reachable on a plan, grouped by country.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | Plan identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a list of `{ countryIsoCode, operators[] }`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": [\n    {\n      \"countryIsoCode\": \"FRA\",\n      \"operators\": [\n        \"Orange\",\n        \"SFR\",\n        \"Bouygues\"\n      ]\n    },\n    {\n      \"countryIsoCode\": \"DEU\",\n      \"operators\": [\n        \"Telekom\",\n        \"Vodafone\"\n      ]\n    }\n  ]\n}"}],"_postman_id":"95efda1a-ebfc-4550-aa5a-3af94ef57f6f"},{"name":"Get Plan Topups","id":"49c1eb38-bda9-4530-a944-ca005603a386","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/plans/:id/topups?page=1&pageSize=50&lang=en","description":"<p>Returns the top-up add-ons available for a plan. To buy one, call <strong>Create Transaction</strong> with <code>mainTransactionId</code> set to the original transaction.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Plan identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>en</code></td>\n<td>Language for text fields: <code>en</code> (English) or <code>ar</code> (Arabic).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of top-up plans.</p>\n","urlObject":{"path":["api","v0","esim","plans",":id","topups"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"},{"description":{"content":"<p>Language for text fields: en or ar.</p>\n","type":"text/plain"},"key":"lang","value":"en"}],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"86d11a22-62f8-4b93-b138-8970be35e63f","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/plans/:id/topups?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","plans",":id","topups"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[{"key":"id","value":""}]},"description":"Returns the top-up add-ons available for a plan. To buy one, call **Create Transaction** with `mainTransactionId` set to the original transaction.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | Plan identifier. |\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of top-up plans."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"topup_eu_2gb\",\n        \"details\": {\n          \"name\": \"Europe 2GB Add-on\",\n          \"description\": \"Add 2GB to an active Europe plan.\",\n          \"coverageType\": \"REGIONAL\",\n          \"termsAndConditions\": \"Standard eSIM terms apply.\",\n          \"usageInstructions\": \"Applied automatically to your active eSIM.\",\n          \"unlimited\": false,\n          \"autoRenew\": false,\n          \"maxDownloadSpeed\": null,\n          \"maxUploadSpeed\": null,\n          \"validCountries\": [\n            {\n              \"name\": \"France\",\n              \"isoCode3\": \"FRA\"\n            }\n          ],\n          \"supportedOperators\": [\n            \"Orange\"\n          ]\n        },\n        \"pricing\": {\n          \"type\": \"FIXED\",\n          \"currency\": \"SAR\",\n          \"minAmount\": 30,\n          \"maxAmount\": 30,\n          \"fees\": 0,\n          \"tax\": {\n            \"taxRate\": 15,\n            \"taxType\": \"VAT\",\n            \"taxAmount\": 4.5\n          }\n        },\n        \"validities\": [\n          {\n            \"type\": \"DATA\",\n            \"unit\": \"GB\",\n            \"quantity\": 2\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"49c1eb38-bda9-4530-a944-ca005603a386"},{"name":"Create Transaction","id":"edd3d7aa-e43f-4195-9d80-ef5df533571b","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-2001\",\n  \"planId\": \"plan_eu_5gb_30d\",\n  \"mainTransactionId\": null,\n  \"amount\": 75,\n  \"currency\": \"SAR\"\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/esim/transactions/async","description":"<p>Buys an eSIM plan <strong>asynchronously</strong>. Returns immediately with a <code>transactionId</code>; poll <strong>Get Transaction by ID</strong> until <code>status</code> is <code>Completed</code> to retrieve the eSIM details (ICCID, activation code, QR).</p>\n<p>To buy a <strong>top-up</strong> for an existing eSIM, set <code>mainTransactionId</code> to the original transaction id. Orders are <strong>idempotent</strong> on <code>externalReference</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Your unique id. Max 50 chars.</td>\n</tr>\n<tr>\n<td><code>planId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Plan (or top-up plan) id.</td>\n</tr>\n<tr>\n<td><code>mainTransactionId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>For top-ups: the original transaction id. Max 50 chars, numeric.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>decimal</code></td>\n<td>Yes</td>\n<td>Must be greater than <code>0</code>.</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>3-letter ISO code.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On acceptance <code>code</code> is <code>1000</code> and <code>data</code> contains the <code>transactionId</code>.</p>\n<h3 id=\"common-error-codes\">Common error codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>1107</code></td>\n<td>Validation error.</td>\n</tr>\n<tr>\n<td><code>1413</code></td>\n<td>Invalid product/plan id.</td>\n</tr>\n<tr>\n<td><code>1414</code></td>\n<td>Invalid currency code.</td>\n</tr>\n<tr>\n<td><code>1418</code></td>\n<td>Invalid external reference.</td>\n</tr>\n<tr>\n<td><code>1419</code></td>\n<td>Transaction already processed (duplicate <code>externalReference</code>).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","v0","esim","transactions","async"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[]}},"response":[{"id":"5f8283a4-dbd3-4a85-bdbf-fcbc65071e4b","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-2001\",\n  \"planId\": \"plan_eu_5gb_30d\",\n  \"mainTransactionId\": null,\n  \"amount\": 75,\n  \"currency\": \"SAR\"\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/esim/transactions/async","description":"Buys an eSIM plan **asynchronously**. Returns immediately with a `transactionId`; poll **Get Transaction by ID** until `status` is `Completed` to retrieve the eSIM details (ICCID, activation code, QR).\n\nTo buy a **top-up** for an existing eSIM, set `mainTransactionId` to the original transaction id. Orders are **idempotent** on `externalReference`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Request Body\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `externalReference` | `string` | Yes | Your unique id. Max 50 chars. |\n| `planId` | `string` | Yes | Plan (or top-up plan) id. |\n| `mainTransactionId` | `string` | No | For top-ups: the original transaction id. Max 50 chars, numeric. |\n| `amount` | `decimal` | Yes | Must be greater than `0`. |\n| `currency` | `string` | No | 3-letter ISO code. |\n\n---\n\n## Response\n\nOn acceptance `code` is `1000` and `data` contains the `transactionId`.\n\n### Common error codes\n\n| Code | Meaning |\n| --- | --- |\n| `1107` | Validation error. |\n| `1413` | Invalid product/plan id. |\n| `1414` | Invalid currency code. |\n| `1418` | Invalid external reference. |\n| `1419` | Transaction already processed (duplicate `externalReference`). |"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"esim_txn_5a1b2c3d\"\n  }\n}"}],"_postman_id":"edd3d7aa-e43f-4195-9d80-ef5df533571b"},{"name":"Get Transaction by ID","id":"8ae8e082-1554-421d-b57e-7cdf515db59f","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/transactions/:id","description":"<p>Returns a single eSIM transaction, including its <code>status</code> and — once <code>Completed</code> — the eSIM <code>product</code> (ICCID, activation code, SM-DP+ address, matching id, and a base64 <code>qrCode</code>).</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code>. <code>status</code> uses the <strong>Transaction status</strong> enum and <code>product.planType</code> / <code>product.coverageType</code> the <strong>Product type</strong> / <strong>Coverage type</strong> enums (see folder overview).</p>\n","urlObject":{"path":["api","v0","esim","transactions",":id"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"34cffbd6-dc5c-4c81-9652-e40d7c6f1e94","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/transactions/:id","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","transactions",":id"],"variable":[{"key":"id","value":""}]},"description":"Returns a single eSIM transaction, including its `status` and — once `Completed` — the eSIM `product` (ICCID, activation code, SM-DP+ address, matching id, and a base64 `qrCode`).\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | Transaction identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000`. `status` uses the **Transaction status** enum and `product.planType` / `product.coverageType` the **Product type** / **Coverage type** enums (see folder overview)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"esim_txn_5a1b2c3d\",\n    \"externalReference\": \"client-ref-2001\",\n    \"status\": \"Completed\",\n    \"timestamp\": {\n      \"requestedAt\": \"2026-07-01T09:30:00Z\",\n      \"completedAt\": \"2026-07-01T09:31:12Z\"\n    },\n    \"product\": {\n      \"id\": \"plan_eu_5gb_30d\",\n      \"name\": \"Europe 5GB - 30 Days\",\n      \"planType\": \"Plan\",\n      \"coverageType\": \"REGIONAL\",\n      \"iccid\": \"8944000000000000000\",\n      \"activationCode\": \"LPA:1$smdp.example.com$ABC123\",\n      \"smdpAddress\": \"smdp.example.com\",\n      \"matchingId\": \"ABC123\",\n      \"otp\": \"\",\n      \"qrCode\": \"iVBORw0KGgoAAAANSUhEUgAA...(base64-encoded PNG)\"\n    },\n    \"amounts\": {\n      \"requestedAmount\": {\n        \"amount\": 75,\n        \"currency\": \"SAR\"\n      },\n      \"deliveredAmount\": {\n        \"amount\": 75,\n        \"currency\": \"SAR\"\n      },\n      \"fees\": {\n        \"totalFee\": 0,\n        \"currency\": \"SAR\"\n      }\n    },\n    \"pinDetails\": {\n      \"code\": \"\",\n      \"serial\": \"\",\n      \"validity\": \"\",\n      \"additionalInfo\": []\n    },\n    \"receipt\": \"https://cdn.example.com/receipts/esim_txn_5a1b2c3d.pdf\"\n  }\n}"}],"_postman_id":"8ae8e082-1554-421d-b57e-7cdf515db59f"},{"name":"Get Transactions","id":"9b03fe91-e462-43e3-9e2e-733f1b943983","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/Transactions?transactionId=&externalReference=&status=Completed&fromDate=&toDate=&page=1&pageSize=50","description":"<p>Returns a paginated, filterable list of your eSIM transactions.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by transaction id.</td>\n</tr>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by your external reference.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by status (enum name, e.g. <code>Completed</code>).</td>\n</tr>\n<tr>\n<td><code>fromDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>Start of creation-date range.</td>\n</tr>\n<tr>\n<td><code>toDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>End of creation-date range.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of transactions. Valid <code>status</code> values: <code>Submitted</code>, <code>Pending</code>, <code>Completed</code>, <code>Failed</code>, <code>Cancelled</code>.</p>\n","urlObject":{"path":["api","v0","esim","Transactions"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"transactionId","value":""},{"key":"externalReference","value":""},{"description":{"content":"<p>Enum name, e.g. Completed.</p>\n","type":"text/plain"},"key":"status","value":"Completed"},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"bde2f812-5cad-4a7e-8d95-00c341667d14","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/Transactions?transactionId=&externalReference=&status=Completed&fromDate=&toDate=&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","Transactions"],"query":[{"key":"transactionId","value":""},{"key":"externalReference","value":""},{"key":"status","value":"Completed","description":"Enum name, e.g. Completed."},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Returns a paginated, filterable list of your eSIM transactions.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `transactionId` | `string` | No | — | Filter by transaction id. |\n| `externalReference` | `string` | No | — | Filter by your external reference. |\n| `status` | `string` | No | — | Filter by status (enum name, e.g. `Completed`). |\n| `fromDate` | `datetime` | No | — | Start of creation-date range. |\n| `toDate` | `datetime` | No | — | End of creation-date range. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of transactions. Valid `status` values: `Submitted`, `Pending`, `Completed`, `Failed`, `Cancelled`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"transactionId\": \"esim_txn_5a1b2c3d\",\n        \"externalReference\": \"client-ref-2001\",\n        \"status\": \"Completed\",\n        \"timestamp\": {\n          \"requestedAt\": \"2026-07-01T09:30:00Z\",\n          \"completedAt\": \"2026-07-01T09:31:12Z\"\n        },\n        \"product\": {\n          \"id\": \"plan_eu_5gb_30d\",\n          \"name\": \"Europe 5GB - 30 Days\",\n          \"planType\": \"Plan\",\n          \"coverageType\": \"REGIONAL\",\n          \"iccid\": \"8944000000000000000\",\n          \"activationCode\": \"LPA:1$smdp.example.com$ABC123\",\n          \"smdpAddress\": \"smdp.example.com\",\n          \"matchingId\": \"ABC123\",\n          \"otp\": \"\",\n          \"qrCode\": \"iVBORw0KGgoAAAANSUhEUgAA...(base64-encoded PNG)\"\n        },\n        \"amounts\": {\n          \"requestedAmount\": {\n            \"amount\": 75,\n            \"currency\": \"SAR\"\n          },\n          \"deliveredAmount\": {\n            \"amount\": 75,\n            \"currency\": \"SAR\"\n          },\n          \"fees\": {\n            \"totalFee\": 0,\n            \"currency\": \"SAR\"\n          }\n        },\n        \"pinDetails\": {\n          \"code\": \"\",\n          \"serial\": \"\",\n          \"validity\": \"\",\n          \"additionalInfo\": []\n        },\n        \"receipt\": \"https://cdn.example.com/receipts/esim_txn_5a1b2c3d.pdf\"\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"9b03fe91-e462-43e3-9e2e-733f1b943983"},{"name":"Get Plan Usage by Transaction","id":"11f4d60a-0381-439f-95d0-0951693a6d4f","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/transactions/:id/plans/usage","description":"<p>Returns live data-usage details for the plan attached to a transaction.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code>. <code>planStatus</code> uses the <strong>Plan status</strong> enum and <code>esimStatus</code> the <strong>eSIM status</strong> enum (see folder overview).</p>\n","urlObject":{"path":["api","v0","esim","transactions",":id","plans","usage"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"d3441c9d-458f-4f3a-af89-eff7a33ce619","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/transactions/:id/plans/usage","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","transactions",":id","plans","usage"],"variable":[{"key":"id","value":""}]},"description":"Returns live data-usage details for the plan attached to a transaction.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | Transaction identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000`. `planStatus` uses the **Plan status** enum and `esimStatus` the **eSIM status** enum (see folder overview)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"planId\": \"plan_eu_5gb_30d\",\n    \"planName\": \"Europe 5GB - 30 Days\",\n    \"totalDataAllocation\": 5,\n    \"dataUnit\": \"GB\",\n    \"dataConsumed\": 1.25,\n    \"dataRemaining\": 3.75,\n    \"usagePercentage\": 25,\n    \"unlimited\": false,\n    \"expirationDate\": \"2026-07-31T09:31:12.000\",\n    \"planStatus\": \"Active\",\n    \"esimExpirationDate\": \"2026-07-31T09:31:12.000\",\n    \"esimStatus\": \"Installed\"\n  }\n}"}],"_postman_id":"11f4d60a-0381-439f-95d0-0951693a6d4f"},{"name":"Get Plan Usage by Reference","id":"a6f05fd6-471e-49aa-ad22-171438869fa1","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/esim/transactions/reference/:externalReference/plans/usage","description":"<p>Same as <strong>Get Plan Usage by Transaction</strong>, but looked up by your <code>externalReference</code> instead of the transaction id.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Your external reference for the transaction.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is the usage object (see <strong>Get Plan Usage by Transaction</strong>).</p>\n","urlObject":{"path":["api","v0","esim","transactions","reference",":externalReference","plans","usage"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"type":"any","value":"","key":"externalReference"}]}},"response":[{"id":"71e162bb-c2ff-4674-9a9f-8266fe08dc56","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/esim/transactions/reference/:externalReference/plans/usage","host":["https://eservicespre.hoicom.net"],"path":["api","v0","esim","transactions","reference",":externalReference","plans","usage"],"variable":[{"key":"externalReference","value":""}]},"description":"Same as **Get Plan Usage by Transaction**, but looked up by your `externalReference` instead of the transaction id.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the eSIM service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `externalReference` | `string` | Yes | Your external reference for the transaction. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is the usage object (see **Get Plan Usage by Transaction**)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"planId\": \"plan_eu_5gb_30d\",\n    \"planName\": \"Europe 5GB - 30 Days\",\n    \"totalDataAllocation\": 5,\n    \"dataUnit\": \"GB\",\n    \"dataConsumed\": 1.25,\n    \"dataRemaining\": 3.75,\n    \"usagePercentage\": 25,\n    \"unlimited\": false,\n    \"expirationDate\": \"2026-07-31T09:31:12.000\",\n    \"planStatus\": \"Active\",\n    \"esimExpirationDate\": \"2026-07-31T09:31:12.000\",\n    \"esimStatus\": \"Installed\"\n  }\n}"}],"_postman_id":"a6f05fd6-471e-49aa-ad22-171438869fa1"}],"id":"b165bde1-7c03-4ce2-97ec-0269bf94fe43","description":"<p>The <strong>eSIM</strong> service lets you browse and provision data eSIM plans for travellers — discover coverage by country or region, buy a plan, receive the eSIM (QR / activation details), track the order, monitor data usage, and top up an active plan.</p>\n<hr />\n<h2 id=\"client-flow\">Client Flow</h2>\n<ol>\n<li><strong>Browse coverage</strong> — <code>GET /regions</code>, <code>GET /countries</code>, <code>GET /plans</code> (or <code>GET /plans/country/{iso}</code> / <code>GET /plans/region/{code}</code>).</li>\n<li><strong>Inspect a plan</strong> — <code>GET /plans/{id}/networks</code> (operators) and <code>GET /plans/{id}/topups</code> (add-ons).</li>\n<li><strong>Buy</strong> — <code>POST /transactions/async</code>; returns a <code>transactionId</code>, provisioning happens in the background.</li>\n<li><strong>Track</strong> — poll <code>GET /transactions/{id}</code> until <code>status</code> is <code>Completed</code>; the response then carries the eSIM <code>product</code> (ICCID, activation code, QR code).</li>\n<li><strong>Monitor usage</strong> — <code>GET /transactions/{id}/plans/usage</code> (or <code>.../reference/{externalReference}/plans/usage</code>).</li>\n<li><strong>Top up (optional)</strong> — <code>POST /transactions/async</code> again with <code>mainTransactionId</code> set to the original transaction id.</li>\n</ol>\n<p>Orders are <strong>idempotent</strong> on <code>externalReference</code>.</p>\n<hr />\n<h2 id=\"enums--reference\">Enums &amp; Reference</h2>\n<h3 id=\"transaction-status-status\">Transaction status (<code>status</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Submitted</code></td>\n<td>Received and queued for processing.</td>\n</tr>\n<tr>\n<td><code>Pending</code></td>\n<td>Being processed / provisioned.</td>\n</tr>\n<tr>\n<td><code>Completed</code></td>\n<td>Completed successfully; eSIM details available.</td>\n</tr>\n<tr>\n<td><code>Failed</code></td>\n<td>Processing failed.</td>\n</tr>\n<tr>\n<td><code>Cancelled</code></td>\n<td>Cancelled before completion.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"coverage-type-coveragetype\">Coverage type (<code>coverageType</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>LOCAL</code></td>\n<td>Covers a single country.</td>\n</tr>\n<tr>\n<td><code>REGIONAL</code></td>\n<td>Covers a region (e.g. Europe).</td>\n</tr>\n<tr>\n<td><code>GLOBAL</code></td>\n<td>Worldwide coverage.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pricing-type-pricingtype\">Pricing type (<code>pricing.type</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>FIXED</code></td>\n<td>Single fixed price (<code>minAmount</code> = <code>maxAmount</code>).</td>\n</tr>\n<tr>\n<td><code>RANGED</code></td>\n<td>Any amount between <code>minAmount</code> and <code>maxAmount</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"product-type-productplantype\">Product type (<code>product.planType</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Plan</code></td>\n<td>A primary data plan.</td>\n</tr>\n<tr>\n<td><code>Topup</code></td>\n<td>A top-up / add-on for an existing plan.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"plan-status-planstatus--usage\">Plan status (<code>planStatus</code> — usage)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>NotStarted</code></td>\n<td>Plan not started yet.</td>\n</tr>\n<tr>\n<td><code>Active</code></td>\n<td>Plan active and usable.</td>\n</tr>\n<tr>\n<td><code>Pending</code></td>\n<td>Plan pending activation.</td>\n</tr>\n<tr>\n<td><code>Expired</code></td>\n<td>Plan expired or data exhausted.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"esim-status-esimstatus--usage\">eSIM status (<code>esimStatus</code> — usage)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>NotInstalled</code></td>\n<td>eSIM profile not yet installed on the device.</td>\n</tr>\n<tr>\n<td><code>Installed</code></td>\n<td>eSIM profile installed.</td>\n</tr>\n<tr>\n<td><code>Unavailable</code></td>\n<td>eSIM profile unavailable.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"b165bde1-7c03-4ce2-97ec-0269bf94fe43"},{"name":"Topup","item":[{"name":"Get Countries","id":"8b270f77-b2a5-483a-9519-6f917b63a3b9","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Topup/countries?Name=&IsoCode=&ContinentName=&Page=1&PageSize=300","description":"<p>Returns the <strong>countries</strong> top-ups are supported for, with currency, calling codes, and dialing rules.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Name</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country name(s).</td>\n</tr>\n<tr>\n<td><code>IsoCode</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by ISO code(s).</td>\n</tr>\n<tr>\n<td><code>ContinentName</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by continent(s).</td>\n</tr>\n<tr>\n<td><code>Page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>PageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>300</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of countries.</p>\n","urlObject":{"path":["api","v0","Topup","countries"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"Name","value":""},{"key":"IsoCode","value":""},{"key":"ContinentName","value":""},{"key":"Page","value":"1"},{"key":"PageSize","value":"300"}],"variable":[]}},"response":[{"id":"301e8dd7-90fc-4eef-8ef4-eae7c1a988a5","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Topup/countries?Name=&IsoCode=&ContinentName=&Page=1&PageSize=300","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Topup","countries"],"query":[{"key":"Name","value":""},{"key":"IsoCode","value":""},{"key":"ContinentName","value":""},{"key":"Page","value":"1"},{"key":"PageSize","value":"300"}]},"description":"Returns the **countries** top-ups are supported for, with currency, calling codes, and dialing rules.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `Name` | `string[]` | No | — | Filter by country name(s). |\n| `IsoCode` | `string[]` | No | — | Filter by ISO code(s). |\n| `ContinentName` | `string[]` | No | — | Filter by continent(s). |\n| `Page` | `int` | No | `1` | Page number. |\n| `PageSize` | `int` | No | `300` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of countries."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"name\": \"Saudi Arabia\",\n        \"isoCode\": \"SA\",\n        \"continentName\": \"Asia\",\n        \"currency\": {\n          \"code\": \"SAR\",\n          \"name\": \"Saudi Riyal\",\n          \"symbol\": \"ر.س\"\n        },\n        \"flagUrl\": \"https://cdn.example.com/flags/sa.svg\",\n        \"callingCodes\": [\n          \"+966\"\n        ],\n        \"regions\": [\n          {\n            \"name\": \"Middle East\",\n            \"code\": \"ME\"\n          }\n        ],\n        \"dialingRules\": [\n          {\n            \"prefix\": \"5\",\n            \"minimumLength\": 9,\n            \"maximumLength\": 9\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"8b270f77-b2a5-483a-9519-6f917b63a3b9"},{"name":"Get Operators","id":"2d5dd362-98cb-4538-9e60-a2513020d5cc","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Topup/operators?CountryIsoCode=SA&Id=&Name=&Page=1&PageSize=50","description":"<p>Returns mobile <strong>operators</strong> (carriers), optionally filtered by country. Use an operator <code>id</code> to list its products.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>CountryIsoCode</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country ISO code.</td>\n</tr>\n<tr>\n<td><code>Id</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by operator id.</td>\n</tr>\n<tr>\n<td><code>Name</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by operator name.</td>\n</tr>\n<tr>\n<td><code>Page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>PageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of operators (with <code>logoUrls</code>).</p>\n","urlObject":{"path":["api","v0","Topup","operators"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Filter operators by country ISO code.</p>\n","type":"text/plain"},"key":"CountryIsoCode","value":"SA"},{"key":"Id","value":""},{"key":"Name","value":""},{"key":"Page","value":"1"},{"key":"PageSize","value":"50"}],"variable":[]}},"response":[{"id":"74dac85b-d842-4507-96fd-91359948f18a","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Topup/operators?CountryIsoCode=SA&Id=&Name=&Page=1&PageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Topup","operators"],"query":[{"key":"CountryIsoCode","value":"SA","description":"Filter operators by country ISO code."},{"key":"Id","value":""},{"key":"Name","value":""},{"key":"Page","value":"1"},{"key":"PageSize","value":"50"}]},"description":"Returns mobile **operators** (carriers), optionally filtered by country. Use an operator `id` to list its products.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `CountryIsoCode` | `string` | No | — | Filter by country ISO code. |\n| `Id` | `string` | No | — | Filter by operator id. |\n| `Name` | `string` | No | — | Filter by operator name. |\n| `Page` | `int` | No | `1` | Page number. |\n| `PageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of operators (with `logoUrls`)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"341\",\n        \"name\": \"STC\",\n        \"country\": {\n          \"name\": \"Saudi Arabia\",\n          \"isoCode\": \"SA\",\n          \"regions\": [\n            {\n              \"name\": \"Middle East\",\n              \"code\": \"ME\"\n            }\n          ]\n        },\n        \"logoUrls\": [\n          \"https://cdn.example.com/operators/stc.png\"\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"2d5dd362-98cb-4538-9e60-a2513020d5cc"},{"name":"Get Products","id":"f162dd52-a368-4c09-8798-520d2d2a8982","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Topup/products?Id=&OperatorId=341&CountryIso=&Type=&Page=1&PageSize=50","description":"<p>Returns top-up <strong>products</strong> (denominations/bundles), filterable by operator, country, or type. Each product carries <code>pricing</code>, <code>validities</code>, and <code>classification</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Id</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by product id.</td>\n</tr>\n<tr>\n<td><code>OperatorId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by operator id.</td>\n</tr>\n<tr>\n<td><code>CountryIso</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country ISO code.</td>\n</tr>\n<tr>\n<td><code>Type</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by product type: <code>INSTANT_FIXED</code>, <code>INSTANT_VARIABLE</code>, <code>PIN_BASED</code>.</td>\n</tr>\n<tr>\n<td><code>Page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>PageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of products. <code>type</code>, <code>validities[].type</code>/<code>unit</code>, and <code>classification.categories</code> use the enums in the folder overview.</p>\n","urlObject":{"path":["api","v0","Topup","products"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"Id","value":""},{"description":{"content":"<p>Filter by operator id.</p>\n","type":"text/plain"},"key":"OperatorId","value":"341"},{"key":"CountryIso","value":""},{"description":{"content":"<p>Filter by product type (see folder overview).</p>\n","type":"text/plain"},"key":"Type","value":""},{"key":"Page","value":"1"},{"key":"PageSize","value":"50"}],"variable":[]}},"response":[{"id":"b4c7b0e8-2254-40b9-8322-4a235548f0f2","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Topup/products?Id=&OperatorId=341&CountryIso=&Type=&Page=1&PageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Topup","products"],"query":[{"key":"Id","value":""},{"key":"OperatorId","value":"341","description":"Filter by operator id."},{"key":"CountryIso","value":""},{"key":"Type","value":"","description":"Filter by product type (see folder overview)."},{"key":"Page","value":"1"},{"key":"PageSize","value":"50"}]},"description":"Returns top-up **products** (denominations/bundles), filterable by operator, country, or type. Each product carries `pricing`, `validities`, and `classification`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `Id` | `string` | No | — | Filter by product id. |\n| `OperatorId` | `string` | No | — | Filter by operator id. |\n| `CountryIso` | `string` | No | — | Filter by country ISO code. |\n| `Type` | `string` | No | — | Filter by product type: `INSTANT_FIXED`, `INSTANT_VARIABLE`, `PIN_BASED`. |\n| `Page` | `int` | No | `1` | Page number. |\n| `PageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of products. `type`, `validities[].type`/`unit`, and `classification.categories` use the enums in the folder overview."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"6601\",\n        \"type\": \"INSTANT_FIXED\",\n        \"details\": {\n          \"name\": \"STC 50 SAR\",\n          \"description\": \"SAR 50 airtime top-up.\",\n          \"termsAndConditions\": \"Standard top-up terms apply.\",\n          \"usageInstructions\": \"Credited instantly to the mobile number.\"\n        },\n        \"pricing\": {\n          \"currency\": \"SAR\",\n          \"minAmount\": 50,\n          \"maxAmount\": 50,\n          \"destinationCurrency\": \"SAR\",\n          \"minDestinationAmount\": 50,\n          \"maxDestinationAmount\": 50,\n          \"tax\": {\n            \"taxRate\": 15,\n            \"taxType\": \"VAT\",\n            \"taxAmount\": 7.5\n          }\n        },\n        \"validities\": [\n          {\n            \"type\": \"TIME_BASED\",\n            \"unit\": \"DAYS\",\n            \"quantity\": 30\n          }\n        ],\n        \"classification\": {\n          \"isPromotional\": false,\n          \"categories\": [\n            \"AIRTIME\"\n          ]\n        },\n        \"availableRegions\": [\n          {\n            \"name\": \"Middle East\",\n            \"code\": \"ME\"\n          }\n        ],\n        \"operator\": {\n          \"id\": \"341\",\n          \"name\": \"STC\",\n          \"country\": {\n            \"name\": \"Saudi Arabia\",\n            \"isoCode\": \"SA\",\n            \"regions\": [\n              {\n                \"name\": \"Middle East\",\n                \"code\": \"ME\"\n              }\n            ]\n          },\n          \"logoUrls\": [\n            \"https://cdn.example.com/operators/stc.png\"\n          ]\n        }\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"f162dd52-a368-4c09-8798-520d2d2a8982"},{"name":"Look Up Products by Number","id":"4d41a86c-b500-4bbc-9963-d1c3ddcada5c","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Topup/products/lookup/:number?page=1&pageSize=300","description":"<p>Auto-detects the country and operator from a destination <strong>phone number</strong> and returns the matching top-up products — a shortcut for the countries → operators → products browse flow.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>number</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Destination phone number (international format).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>300</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> contains the detected <code>phoneNumber</code>, <code>country</code>, <code>operator</code>, and a paginated <code>products</code> list.</p>\n","urlObject":{"path":["api","v0","Topup","products","lookup",":number"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"300"}],"variable":[{"type":"any","value":"","key":"number"}]}},"response":[{"id":"e1fe5aca-a5cb-4de5-a19d-c343bdb25415","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Topup/products/lookup/:number?page=1&pageSize=300","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Topup","products","lookup",":number"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"300"}],"variable":[{"key":"number","value":""}]},"description":"Auto-detects the country and operator from a destination **phone number** and returns the matching top-up products — a shortcut for the countries → operators → products browse flow.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `number` | `string` | Yes | Destination phone number (international format). |\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `300` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` contains the detected `phoneNumber`, `country`, `operator`, and a paginated `products` list."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"phoneNumber\": \"+966512345678\",\n    \"country\": {\n      \"name\": \"Saudi Arabia\",\n      \"isoCode\": \"SA\"\n    },\n    \"operator\": {\n      \"id\": \"341\",\n      \"name\": \"STC\",\n      \"logoUrls\": [\n        \"https://cdn.example.com/operators/stc.png\"\n      ]\n    },\n    \"products\": {\n      \"items\": [\n        {\n          \"id\": \"6601\",\n          \"type\": \"INSTANT_FIXED\",\n          \"details\": {\n            \"name\": \"STC 50 SAR\",\n            \"description\": \"SAR 50 airtime top-up.\",\n            \"termsAndConditions\": \"Standard top-up terms apply.\",\n            \"usageInstructions\": \"Credited instantly to the mobile number.\"\n          },\n          \"pricing\": {\n            \"currency\": \"SAR\",\n            \"minAmount\": 50,\n            \"maxAmount\": 50,\n            \"destinationCurrency\": \"SAR\",\n            \"minDestinationAmount\": 50,\n            \"maxDestinationAmount\": 50,\n            \"tax\": {\n              \"taxRate\": 15,\n              \"taxType\": \"VAT\",\n              \"taxAmount\": 7.5\n            }\n          },\n          \"validities\": [\n            {\n              \"type\": \"TIME_BASED\",\n              \"unit\": \"DAYS\",\n              \"quantity\": 30\n            }\n          ],\n          \"classification\": {\n            \"isPromotional\": false,\n            \"categories\": [\n              \"AIRTIME\"\n            ]\n          },\n          \"availableRegions\": [\n            {\n              \"name\": \"Middle East\",\n              \"code\": \"ME\"\n            }\n          ],\n          \"operator\": {\n            \"id\": \"341\",\n            \"name\": \"STC\",\n            \"country\": {\n              \"name\": \"Saudi Arabia\",\n              \"isoCode\": \"SA\",\n              \"regions\": [\n                {\n                  \"name\": \"Middle East\",\n                  \"code\": \"ME\"\n                }\n              ]\n            },\n            \"logoUrls\": [\n              \"https://cdn.example.com/operators/stc.png\"\n            ]\n          }\n        }\n      ],\n      \"count\": 1,\n      \"page\": 1,\n      \"pageSize\": 50,\n      \"totalPages\": 1,\n      \"totalItems\": 1\n    }\n  }\n}"}],"_postman_id":"4d41a86c-b500-4bbc-9963-d1c3ddcada5c"},{"name":"Create Transaction","id":"12ce86cb-8c70-4906-9a7c-c310e2baa72f","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-3001\",\n  \"productId\": \"6601\",\n  \"destinationNumber\": \"+966512345678\",\n  \"amount\": 50\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/Topup/async","description":"<p>Submits a top-up <strong>asynchronously</strong>. Returns immediately with a transaction <code>id</code>; poll <strong>Get Transaction by ID</strong> until <code>status</code> is <code>Completed</code>. Orders are <strong>idempotent</strong> on <code>externalReference</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.</p>\n<hr />\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Your unique id.</td>\n</tr>\n<tr>\n<td><code>productId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Product id (numeric).</td>\n</tr>\n<tr>\n<td><code>destinationNumber</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Recipient phone number. Max 20 chars.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>decimal</code></td>\n<td>Yes</td>\n<td>Must be greater than <code>0</code>. For <code>INSTANT_VARIABLE</code> products, within the product's min/max.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On acceptance <code>code</code> is <code>1000</code> and <code>data</code> contains the transaction <code>id</code>.</p>\n<h3 id=\"common-error-codes\">Common error codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>1107</code></td>\n<td>Validation error.</td>\n</tr>\n<tr>\n<td><code>1401</code></td>\n<td>Invalid number or account.</td>\n</tr>\n<tr>\n<td><code>1413</code></td>\n<td>Invalid product id.</td>\n</tr>\n<tr>\n<td><code>1418</code></td>\n<td>Invalid external reference.</td>\n</tr>\n<tr>\n<td><code>1419</code></td>\n<td>Transaction already processed (duplicate <code>externalReference</code>).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","v0","Topup","async"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[]}},"response":[{"id":"3468f46e-a36c-4267-aa95-0be20fc5c6ef","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-3001\",\n  \"productId\": \"6601\",\n  \"destinationNumber\": \"+966512345678\",\n  \"amount\": 50\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/Topup/async","description":"Submits a top-up **asynchronously**. Returns immediately with a transaction `id`; poll **Get Transaction by ID** until `status` is `Completed`. Orders are **idempotent** on `externalReference`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.\n\n---\n\n## Request Body\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `externalReference` | `string` | Yes | Your unique id. |\n| `productId` | `string` | Yes | Product id (numeric). |\n| `destinationNumber` | `string` | Yes | Recipient phone number. Max 20 chars. |\n| `amount` | `decimal` | Yes | Must be greater than `0`. For `INSTANT_VARIABLE` products, within the product's min/max. |\n\n---\n\n## Response\n\nOn acceptance `code` is `1000` and `data` contains the transaction `id`.\n\n### Common error codes\n\n| Code | Meaning |\n| --- | --- |\n| `1107` | Validation error. |\n| `1401` | Invalid number or account. |\n| `1413` | Invalid product id. |\n| `1418` | Invalid external reference. |\n| `1419` | Transaction already processed (duplicate `externalReference`). |"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"id\": \"topup_txn_9f8e7d6c\"\n  }\n}"}],"_postman_id":"12ce86cb-8c70-4906-9a7c-c310e2baa72f"},{"name":"Get Transaction by ID","id":"23c0a662-ff92-4a5d-bc1d-0a4801307555","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Topup/transactions/:id","description":"<p>Returns a single top-up transaction, including its <code>status</code>, the <code>product</code>/<code>operator</code>, amounts, and — for PIN-based products — <code>pinDetails</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code>. <code>status</code> uses the <strong>Transaction status</strong> enum (see folder overview).</p>\n","urlObject":{"path":["api","v0","Topup","transactions",":id"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"c46b1888-d25c-455d-94dc-f7b89639200c","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Topup/transactions/:id","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Topup","transactions",":id"],"variable":[{"key":"id","value":""}]},"description":"Returns a single top-up transaction, including its `status`, the `product`/`operator`, amounts, and — for PIN-based products — `pinDetails`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | Transaction identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000`. `status` uses the **Transaction status** enum (see folder overview)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"topup_txn_9f8e7d6c\",\n    \"externalReference\": \"client-ref-3001\",\n    \"status\": \"Completed\",\n    \"timestamp\": {\n      \"requestedAt\": \"2026-07-01T10:00:00Z\",\n      \"completedAt\": \"2026-07-01T10:00:05Z\"\n    },\n    \"product\": {\n      \"id\": \"6601\",\n      \"name\": \"STC 50 SAR\",\n      \"operator\": {\n        \"id\": \"341\",\n        \"name\": \"STC\",\n        \"country\": {\n          \"name\": \"Saudi Arabia\",\n          \"isoCode\": \"SA\"\n        }\n      }\n    },\n    \"amounts\": {\n      \"requestedAmount\": {\n        \"amount\": 50,\n        \"currency\": \"SAR\"\n      },\n      \"deliveredAmount\": {\n        \"amount\": 50,\n        \"currency\": \"SAR\"\n      },\n      \"fees\": {\n        \"totalFee\": 0,\n        \"currency\": \"SAR\"\n      }\n    },\n    \"pinDetails\": null,\n    \"receipt\": \"https://cdn.example.com/receipts/topup_txn_9f8e7d6c.pdf\"\n  }\n}"}],"_postman_id":"23c0a662-ff92-4a5d-bc1d-0a4801307555"},{"name":"Get Transactions","id":"9f134ed8-ef66-48ee-88c3-bdf3c1eee500","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Topup/Transactions?transactionId=&externalReference=&status=Completed&fromDate=&toDate=&page=1&pageSize=50","description":"<p>Returns a paginated, filterable list of your top-up transactions.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by transaction id.</td>\n</tr>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by your external reference.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by status (enum name, e.g. <code>Completed</code>).</td>\n</tr>\n<tr>\n<td><code>fromDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>Start of creation-date range.</td>\n</tr>\n<tr>\n<td><code>toDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>End of creation-date range.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of transactions. Valid <code>status</code> values: <code>Submitted</code>, <code>Pending</code>, <code>Completed</code>, <code>Failed</code>, <code>Cancelled</code>.</p>\n","urlObject":{"path":["api","v0","Topup","Transactions"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"transactionId","value":""},{"key":"externalReference","value":""},{"description":{"content":"<p>Enum name, e.g. Completed.</p>\n","type":"text/plain"},"key":"status","value":"Completed"},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"afa00f5b-42ce-4e06-8068-cff17942c2f1","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Topup/Transactions?transactionId=&externalReference=&status=Completed&fromDate=&toDate=&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Topup","Transactions"],"query":[{"key":"transactionId","value":""},{"key":"externalReference","value":""},{"key":"status","value":"Completed","description":"Enum name, e.g. Completed."},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Returns a paginated, filterable list of your top-up transactions.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Topup service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `transactionId` | `string` | No | — | Filter by transaction id. |\n| `externalReference` | `string` | No | — | Filter by your external reference. |\n| `status` | `string` | No | — | Filter by status (enum name, e.g. `Completed`). |\n| `fromDate` | `datetime` | No | — | Start of creation-date range. |\n| `toDate` | `datetime` | No | — | End of creation-date range. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of transactions. Valid `status` values: `Submitted`, `Pending`, `Completed`, `Failed`, `Cancelled`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"transactionId\": \"topup_txn_9f8e7d6c\",\n        \"externalReference\": \"client-ref-3001\",\n        \"status\": \"Completed\",\n        \"timestamp\": {\n          \"requestedAt\": \"2026-07-01T10:00:00Z\",\n          \"completedAt\": \"2026-07-01T10:00:05Z\"\n        },\n        \"product\": {\n          \"id\": \"6601\",\n          \"name\": \"STC 50 SAR\",\n          \"operator\": {\n            \"id\": \"341\",\n            \"name\": \"STC\",\n            \"country\": {\n              \"name\": \"Saudi Arabia\",\n              \"isoCode\": \"SA\"\n            }\n          }\n        },\n        \"amounts\": {\n          \"requestedAmount\": {\n            \"amount\": 50,\n            \"currency\": \"SAR\"\n          },\n          \"deliveredAmount\": {\n            \"amount\": 50,\n            \"currency\": \"SAR\"\n          },\n          \"fees\": {\n            \"totalFee\": 0,\n            \"currency\": \"SAR\"\n          }\n        },\n        \"pinDetails\": null,\n        \"receipt\": \"https://cdn.example.com/receipts/topup_txn_9f8e7d6c.pdf\"\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"9f134ed8-ef66-48ee-88c3-bdf3c1eee500"}],"id":"0139080f-d0bc-4620-a76d-ee2781a0a704","description":"<p>The <strong>Topup</strong> service delivers mobile airtime and data top-ups to a destination phone number — browse supported countries, operators, and products, then submit a top-up and track it.</p>\n<hr />\n<h2 id=\"client-flow\">Client Flow</h2>\n<ol>\n<li><strong>Browse countries</strong> — <code>GET /countries</code>.</li>\n<li><strong>Browse operators</strong> — <code>GET /operators?CountryIsoCode={iso}</code>.</li>\n<li><strong>Browse products</strong> — <code>GET /products?OperatorId={id}</code> — or skip straight to <code>GET /products/lookup/{number}</code> to auto-detect country and operator from a phone number.</li>\n<li><strong>Top up</strong> — <code>POST /async</code>; returns a transaction <code>id</code>, delivery happens in the background.</li>\n<li><strong>Track</strong> — poll <code>GET /transactions/{id}</code> (or <code>GET /Transactions</code> with filters) until <code>status</code> is <code>Completed</code>.</li>\n</ol>\n<p>Orders are <strong>idempotent</strong> on <code>externalReference</code>.</p>\n<hr />\n<h2 id=\"enums--reference\">Enums &amp; Reference</h2>\n<h3 id=\"transaction-status-status\">Transaction status (<code>status</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Submitted</code></td>\n<td>Received and queued for processing.</td>\n</tr>\n<tr>\n<td><code>Pending</code></td>\n<td>Being processed / delivered.</td>\n</tr>\n<tr>\n<td><code>Completed</code></td>\n<td>Delivered successfully.</td>\n</tr>\n<tr>\n<td><code>Failed</code></td>\n<td>Delivery failed.</td>\n</tr>\n<tr>\n<td><code>Cancelled</code></td>\n<td>Cancelled before completion.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"product-type-type\">Product type (<code>type</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>INSTANT_FIXED</code></td>\n<td>Instant delivery, fixed denomination.</td>\n</tr>\n<tr>\n<td><code>INSTANT_VARIABLE</code></td>\n<td>Instant delivery, choose any amount in the allowed range.</td>\n</tr>\n<tr>\n<td><code>PIN_BASED</code></td>\n<td>Delivered as a redeemable PIN/voucher (see <code>pinDetails</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"product-categories-classificationcategories\">Product categories (<code>classification.categories</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>AIRTIME</code></td>\n<td>Voice / airtime credit.</td>\n</tr>\n<tr>\n<td><code>DATA</code></td>\n<td>Mobile data.</td>\n</tr>\n<tr>\n<td><code>BUNDLES</code></td>\n<td>Combined bundle offers.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"validity-type-validitiestype\">Validity type (<code>validities[].type</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>TIME_BASED</code></td>\n<td>Validity measured in time (see time units).</td>\n</tr>\n<tr>\n<td><code>VOLUME_BASED</code></td>\n<td>Validity measured in data volume (see volume units).</td>\n</tr>\n<tr>\n<td><code>UNLIMITED</code></td>\n<td>No validity limit.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"time-units-validitiesunit-when-type--time_based\">Time units (<code>validities[].unit</code> when type = <code>TIME_BASED</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>DAYS</code></td>\n<td>Days.</td>\n</tr>\n<tr>\n<td><code>WEEKS</code></td>\n<td>Weeks.</td>\n</tr>\n<tr>\n<td><code>MONTHS</code></td>\n<td>Months.</td>\n</tr>\n<tr>\n<td><code>YEARS</code></td>\n<td>Years.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"volume-units-validitiesunit-when-type--volume_based\">Volume units (<code>validities[].unit</code> when type = <code>VOLUME_BASED</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>MB</code></td>\n<td>Megabytes.</td>\n</tr>\n<tr>\n<td><code>GB</code></td>\n<td>Gigabytes.</td>\n</tr>\n<tr>\n<td><code>TB</code></td>\n<td>Terabytes.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"0139080f-d0bc-4620-a76d-ee2781a0a704"},{"name":"Utilities","item":[{"name":"Get Countries","id":"35916639-2a54-45eb-a0ef-fd034542ce55","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Utilities/countries?name=&isoCode=&continentName=&page=1&pageNumber=250","description":"<p>Returns the <strong>countries</strong> bill payments are supported for, with currency, calling codes, and dialing rules.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country name.</td>\n</tr>\n<tr>\n<td><code>isoCode</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by ISO code.</td>\n</tr>\n<tr>\n<td><code>continentName</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by continent.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageNumber</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>250</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of countries.</p>\n","urlObject":{"path":["api","v0","Utilities","countries"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"name","value":""},{"key":"isoCode","value":""},{"key":"continentName","value":""},{"key":"page","value":"1"},{"key":"pageNumber","value":"250"}],"variable":[]}},"response":[{"id":"fa7e6aaf-afef-4a78-a5e5-edaa30f2741e","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Utilities/countries?name=&isoCode=&continentName=&page=1&pageNumber=250","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Utilities","countries"],"query":[{"key":"name","value":""},{"key":"isoCode","value":""},{"key":"continentName","value":""},{"key":"page","value":"1"},{"key":"pageNumber","value":"250"}]},"description":"Returns the **countries** bill payments are supported for, with currency, calling codes, and dialing rules.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `name` | `string` | No | — | Filter by country name. |\n| `isoCode` | `string` | No | — | Filter by ISO code. |\n| `continentName` | `string` | No | — | Filter by continent. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageNumber` | `int` | No | `250` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of countries."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"name\": \"Saudi Arabia\",\n        \"isoCode\": \"SA\",\n        \"continentName\": \"Asia\",\n        \"currency\": {\n          \"code\": \"SAR\",\n          \"name\": \"Saudi Riyal\",\n          \"symbol\": \"ر.س\"\n        },\n        \"flagUrl\": \"https://cdn.example.com/flags/sa.svg\",\n        \"callingCodes\": [\n          \"+966\"\n        ],\n        \"regions\": [\n          {\n            \"name\": \"Middle East\",\n            \"code\": \"ME\"\n          }\n        ],\n        \"dialingRules\": [\n          {\n            \"prefix\": \"5\",\n            \"minimumLength\": 9,\n            \"maximumLength\": 9\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"35916639-2a54-45eb-a0ef-fd034542ce55"},{"name":"Get Operators","id":"6bacc91c-be17-41ba-b18e-fefb5efe7e14","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Utilities/operators?countryIsoCodes=SA&ids=&names=&page=1&pageSize=50","description":"<p>Returns billers/<strong>operators</strong>, optionally filtered by country, id, or name. Use an operator <code>id</code> to list its bills/products.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>countryIsoCodes</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country ISO code(s).</td>\n</tr>\n<tr>\n<td><code>ids</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by operator id(s).</td>\n</tr>\n<tr>\n<td><code>names</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by operator name(s).</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of operators.</p>\n","urlObject":{"path":["api","v0","Utilities","operators"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"countryIsoCodes","value":"SA"},{"key":"ids","value":""},{"key":"names","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"ded40b8d-b1a6-4577-9786-4757b9b71431","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Utilities/operators?countryIsoCodes=SA&ids=&names=&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Utilities","operators"],"query":[{"key":"countryIsoCodes","value":"SA"},{"key":"ids","value":""},{"key":"names","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Returns billers/**operators**, optionally filtered by country, id, or name. Use an operator `id` to list its bills/products.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `countryIsoCodes` | `string[]` | No | — | Filter by country ISO code(s). |\n| `ids` | `string[]` | No | — | Filter by operator id(s). |\n| `names` | `string[]` | No | — | Filter by operator name(s). |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of operators."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"op_stc\",\n        \"name\": \"STC\",\n        \"country\": {\n          \"name\": \"Saudi Arabia\",\n          \"isoCode\": \"SA\",\n          \"regions\": [\n            {\n              \"name\": \"Middle East\",\n              \"code\": \"ME\"\n            }\n          ]\n        },\n        \"logoUrls\": [\n          \"https://cdn.example.com/operators/stc.png\"\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"6bacc91c-be17-41ba-b18e-fefb5efe7e14"},{"name":"Get Operators by Country","id":"82653376-af5e-431c-b9fc-88ed9f94acf6","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Utilities/countries/:isoCode/operators?page=1&pageSize=50","description":"<p>Returns the billers/operators available in a specific country.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>isoCode</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Country ISO code.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of operators.</p>\n","urlObject":{"path":["api","v0","Utilities","countries",":isoCode","operators"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[{"type":"any","value":"","key":"isoCode"}]}},"response":[{"id":"acdfdf54-0408-4dcc-8aba-c0fa0923efd4","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Utilities/countries/:isoCode/operators?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Utilities","countries",":isoCode","operators"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[{"key":"isoCode","value":""}]},"description":"Returns the billers/operators available in a specific country.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `isoCode` | `string` | Yes | Country ISO code. |\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of operators."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"op_stc\",\n        \"name\": \"STC\",\n        \"country\": {\n          \"name\": \"Saudi Arabia\",\n          \"isoCode\": \"SA\",\n          \"regions\": [\n            {\n              \"name\": \"Middle East\",\n              \"code\": \"ME\"\n            }\n          ]\n        },\n        \"logoUrls\": [\n          \"https://cdn.example.com/operators/stc.png\"\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"82653376-af5e-431c-b9fc-88ed9f94acf6"},{"name":"Get Products by Operator","id":"b4610d56-26cf-48e6-855f-b0a9f77dfe65","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Utilities/operators/:operatorId/products?page=1&pageSize=50","description":"<p>Returns the bills/<strong>products</strong> offered by a specific operator. Each product carries its <code>pricing</code>, <code>paymentOptions</code>, and the input fields required to pay.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>operatorId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Operator identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of products. <code>type</code> uses the <strong>Payment type</strong> enum and <code>pricing.paymentCurrencyType</code> / <code>paymentOptions.allowedPaymentOptions</code> the <strong>Payment currency</strong> / <strong>Payment option</strong> enums (see folder overview).</p>\n","urlObject":{"path":["api","v0","Utilities","operators",":operatorId","products"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[{"type":"any","value":"","key":"operatorId"}]}},"response":[{"id":"02b414aa-33c6-4a4f-8298-d388a46ca372","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Utilities/operators/:operatorId/products?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Utilities","operators",":operatorId","products"],"query":[{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[{"key":"operatorId","value":""}]},"description":"Returns the bills/**products** offered by a specific operator. Each product carries its `pricing`, `paymentOptions`, and the input fields required to pay.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `operatorId` | `string` | Yes | Operator identifier. |\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of products. `type` uses the **Payment type** enum and `pricing.paymentCurrencyType` / `paymentOptions.allowedPaymentOptions` the **Payment currency** / **Payment option** enums (see folder overview)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"V1:12345\",\n        \"type\": \"RangedPayment\",\n        \"details\": {\n          \"name\": \"STC Postpaid Bill\",\n          \"serviceType\": \"Telecom\",\n          \"description\": \"Pay your STC postpaid mobile bill.\",\n          \"termsAndConditions\": \"Standard terms apply.\",\n          \"usageInstructions\": \"Enter your account number to pay.\"\n        },\n        \"pricing\": {\n          \"paymentCurrencyType\": \"ClientCurrency\",\n          \"currency\": \"SAR\",\n          \"minAmount\": 10,\n          \"maxAmount\": 5000,\n          \"destinationCurrency\": \"SAR\",\n          \"minDestinationAmount\": 10,\n          \"maxDestinationAmount\": 5000,\n          \"fees\": 0,\n          \"tax\": {\n            \"taxRate\": 15,\n            \"taxType\": \"VAT\",\n            \"taxAmount\": 0\n          }\n        },\n        \"paymentOptions\": {\n          \"supportsAccountInquiry\": true,\n          \"allowedPaymentOptions\": [\n            \"ExactAmount\",\n            \"AllowsPartialPayments\"\n          ]\n        },\n        \"validities\": [\n          {\n            \"type\": \"PostingTime\",\n            \"unit\": \"Day\",\n            \"quantity\": 1\n          }\n        ],\n        \"transactionRequiredFields\": [\n          \"accountNumber\"\n        ],\n        \"receiverRequiredFields\": [],\n        \"operator\": {\n          \"id\": \"op_stc\",\n          \"name\": \"STC\",\n          \"country\": {\n            \"name\": \"Saudi Arabia\",\n            \"isoCode\": \"SA\",\n            \"regions\": []\n          },\n          \"logoUrls\": [\n            \"https://cdn.example.com/operators/stc.png\"\n          ]\n        }\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"b4610d56-26cf-48e6-855f-b0a9f77dfe65"},{"name":"Get Products","id":"59b8a0a8-ec85-4bf2-bd99-aeec2b2f120b","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Utilities?countryIsoCodes=SA&operatorsIds=&types=&page=1&pageSize=50","description":"<p>Returns bills/<strong>products</strong> across operators, filterable by country, operator, or type.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>countryIsoCodes</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by country ISO code(s).</td>\n</tr>\n<tr>\n<td><code>operatorsIds</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by operator id(s).</td>\n</tr>\n<tr>\n<td><code>types</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by payment type: <code>RangedPayment</code>, <code>FixedRecharge</code>, <code>PINPurchase</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of products.</p>\n","urlObject":{"path":["api","v0","Utilities"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"countryIsoCodes","value":"SA"},{"key":"operatorsIds","value":""},{"description":{"content":"<p>Filter by payment type (see folder overview).</p>\n","type":"text/plain"},"key":"types","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"affedbc4-26f5-4b36-a208-808b6e5b42bd","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Utilities?countryIsoCodes=SA&operatorsIds=&types=&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Utilities"],"query":[{"key":"countryIsoCodes","value":"SA"},{"key":"operatorsIds","value":""},{"key":"types","value":"","description":"Filter by payment type (see folder overview)."},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Returns bills/**products** across operators, filterable by country, operator, or type.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `countryIsoCodes` | `string[]` | No | — | Filter by country ISO code(s). |\n| `operatorsIds` | `string[]` | No | — | Filter by operator id(s). |\n| `types` | `string[]` | No | — | Filter by payment type: `RangedPayment`, `FixedRecharge`, `PINPurchase`. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of products."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"V1:12345\",\n        \"type\": \"RangedPayment\",\n        \"details\": {\n          \"name\": \"STC Postpaid Bill\",\n          \"serviceType\": \"Telecom\",\n          \"description\": \"Pay your STC postpaid mobile bill.\",\n          \"termsAndConditions\": \"Standard terms apply.\",\n          \"usageInstructions\": \"Enter your account number to pay.\"\n        },\n        \"pricing\": {\n          \"paymentCurrencyType\": \"ClientCurrency\",\n          \"currency\": \"SAR\",\n          \"minAmount\": 10,\n          \"maxAmount\": 5000,\n          \"destinationCurrency\": \"SAR\",\n          \"minDestinationAmount\": 10,\n          \"maxDestinationAmount\": 5000,\n          \"fees\": 0,\n          \"tax\": {\n            \"taxRate\": 15,\n            \"taxType\": \"VAT\",\n            \"taxAmount\": 0\n          }\n        },\n        \"paymentOptions\": {\n          \"supportsAccountInquiry\": true,\n          \"allowedPaymentOptions\": [\n            \"ExactAmount\",\n            \"AllowsPartialPayments\"\n          ]\n        },\n        \"validities\": [\n          {\n            \"type\": \"PostingTime\",\n            \"unit\": \"Day\",\n            \"quantity\": 1\n          }\n        ],\n        \"transactionRequiredFields\": [\n          \"accountNumber\"\n        ],\n        \"receiverRequiredFields\": [],\n        \"operator\": {\n          \"id\": \"op_stc\",\n          \"name\": \"STC\",\n          \"country\": {\n            \"name\": \"Saudi Arabia\",\n            \"isoCode\": \"SA\",\n            \"regions\": []\n          },\n          \"logoUrls\": [\n            \"https://cdn.example.com/operators/stc.png\"\n          ]\n        }\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"59b8a0a8-ec85-4bf2-bd99-aeec2b2f120b"},{"name":"Account Inquiry","id":"69f93392-32af-46d3-8155-ca955d1f0383","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"productId\": \"V1:12345\",\n  \"transactionRequiredFields\": {\n    \"accountNumber\": \"123456789\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/Utilities/accounts/inquiry","description":"<p>For products where <code>paymentOptions.supportsAccountInquiry</code> is <code>true</code>, looks up the outstanding <strong>bill(s)</strong> for an account before payment — returns the amount due, issue/due dates, and a customer reference.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>productId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>The product/utility id to inquire against.</td>\n</tr>\n<tr>\n<td><code>transactionRequiredFields</code></td>\n<td><code>object</code></td>\n<td>Yes</td>\n<td>Key/value map of the product's required fields (e.g. <code>accountNumber</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a list of bills, each with <code>amountDue</code>, <code>issueDate</code>, <code>dueDate</code>, and <code>customerReference</code>.</p>\n","urlObject":{"path":["api","v0","Utilities","accounts","inquiry"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[]}},"response":[{"id":"d6d9e274-b345-47ad-b66f-f28d5935736f","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"productId\": \"V1:12345\",\n  \"transactionRequiredFields\": {\n    \"accountNumber\": \"123456789\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/Utilities/accounts/inquiry","description":"For products where `paymentOptions.supportsAccountInquiry` is `true`, looks up the outstanding **bill(s)** for an account before payment — returns the amount due, issue/due dates, and a customer reference.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Request Body\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `productId` | `string` | Yes | The product/utility id to inquire against. |\n| `transactionRequiredFields` | `object` | Yes | Key/value map of the product's required fields (e.g. `accountNumber`). |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a list of bills, each with `amountDue`, `issueDate`, `dueDate`, and `customerReference`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": [\n    {\n      \"amountDue\": {\n        \"amount\": 245.5,\n        \"currency\": \"SAR\"\n      },\n      \"issueDate\": \"2026-06-01T00:00:00Z\",\n      \"dueDate\": \"2026-07-15T00:00:00Z\",\n      \"customerReference\": \"ACC-778812\"\n    }\n  ]\n}"}],"_postman_id":"69f93392-32af-46d3-8155-ca955d1f0383"},{"name":"Create Transaction","id":"58181ec6-f609-4dd2-8790-2d73761946f3","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-4001\",\n  \"utilityId\": \"V1:12345\",\n  \"transactionRequiredFields\": {\n    \"accountNumber\": \"123456789\"\n  },\n  \"receiverRequiredFields\": null,\n  \"amount\": 245.5\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/Utilities/transactions/async","description":"<p>Pays a bill <strong>asynchronously</strong>. Returns immediately with a <code>transactionId</code>; poll <strong>Get Transaction by ID</strong> until <code>status</code> is <code>Completed</code>. Idempotent on <code>externalReference</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Your unique id (idempotency key).</td>\n</tr>\n<tr>\n<td><code>utilityId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>The product/utility id to pay.</td>\n</tr>\n<tr>\n<td><code>transactionRequiredFields</code></td>\n<td><code>object</code></td>\n<td>Yes</td>\n<td>Key/value map of the product's required fields (e.g. <code>accountNumber</code>).</td>\n</tr>\n<tr>\n<td><code>receiverRequiredFields</code></td>\n<td><code>object</code></td>\n<td>No</td>\n<td>Additional receiver fields, when the product requires them.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>decimal</code></td>\n<td>Yes</td>\n<td>Amount to pay (within the product's min/max).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On acceptance <code>code</code> is <code>1000</code> and <code>data</code> contains the <code>transactionId</code>.</p>\n<h3 id=\"common-error-codes\">Common error codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>1107</code></td>\n<td>Validation error.</td>\n</tr>\n<tr>\n<td><code>1401</code></td>\n<td>Invalid number or account.</td>\n</tr>\n<tr>\n<td><code>1413</code></td>\n<td>Invalid product id.</td>\n</tr>\n<tr>\n<td><code>1418</code></td>\n<td>Invalid external reference.</td>\n</tr>\n<tr>\n<td><code>1419</code></td>\n<td>Transaction already processed (duplicate <code>externalReference</code>).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","v0","Utilities","transactions","async"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[]}},"response":[{"id":"3ca6295b-3b33-49a9-a5a6-7656f7296ef9","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-4001\",\n  \"utilityId\": \"V1:12345\",\n  \"transactionRequiredFields\": {\n    \"accountNumber\": \"123456789\"\n  },\n  \"receiverRequiredFields\": null,\n  \"amount\": 245.5\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/Utilities/transactions/async","description":"Pays a bill **asynchronously**. Returns immediately with a `transactionId`; poll **Get Transaction by ID** until `status` is `Completed`. Idempotent on `externalReference`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Request Body\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `externalReference` | `string` | Yes | Your unique id (idempotency key). |\n| `utilityId` | `string` | Yes | The product/utility id to pay. |\n| `transactionRequiredFields` | `object` | Yes | Key/value map of the product's required fields (e.g. `accountNumber`). |\n| `receiverRequiredFields` | `object` | No | Additional receiver fields, when the product requires them. |\n| `amount` | `decimal` | Yes | Amount to pay (within the product's min/max). |\n\n---\n\n## Response\n\nOn acceptance `code` is `1000` and `data` contains the `transactionId`.\n\n### Common error codes\n\n| Code | Meaning |\n| --- | --- |\n| `1107` | Validation error. |\n| `1401` | Invalid number or account. |\n| `1413` | Invalid product id. |\n| `1418` | Invalid external reference. |\n| `1419` | Transaction already processed (duplicate `externalReference`). |"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"util_txn_7c2d\"\n  }\n}"}],"_postman_id":"58181ec6-f609-4dd2-8790-2d73761946f3"},{"name":"Get Transaction by ID","id":"3f436779-094c-4e82-b62a-385aba380b22","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Utilities/transactions/:id","description":"<p>Returns a single bill-payment transaction, including its <code>status</code>, product/operator, and amounts.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code>. <code>status</code> uses the <strong>Transaction status</strong> enum (see folder overview).</p>\n","urlObject":{"path":["api","v0","Utilities","transactions",":id"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"b6e50b17-c09d-4d8b-abd6-00e00d0400c7","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Utilities/transactions/:id","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Utilities","transactions",":id"],"variable":[{"key":"id","value":""}]},"description":"Returns a single bill-payment transaction, including its `status`, product/operator, and amounts.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | Transaction identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000`. `status` uses the **Transaction status** enum (see folder overview)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"util_txn_7c2d\",\n    \"externalReference\": \"client-ref-4001\",\n    \"status\": \"Completed\",\n    \"timestamp\": {\n      \"requestedAt\": \"2026-07-01T11:00:00Z\",\n      \"completedAt\": \"2026-07-01T11:01:30Z\"\n    },\n    \"product\": {\n      \"id\": \"V1:12345\",\n      \"name\": \"STC Postpaid Bill\",\n      \"operator\": {\n        \"id\": \"op_stc\",\n        \"name\": \"STC\",\n        \"country\": {\n          \"name\": \"Saudi Arabia\",\n          \"isoCode\": \"SA\"\n        }\n      }\n    },\n    \"amounts\": {\n      \"requestedAmount\": {\n        \"amount\": 245.5,\n        \"currency\": \"SAR\"\n      },\n      \"deliveredAmount\": {\n        \"amount\": 245.5,\n        \"currency\": \"SAR\"\n      },\n      \"fees\": {\n        \"totalFee\": 0,\n        \"currency\": \"SAR\"\n      }\n    },\n    \"pinDetails\": null,\n    \"receipt\": \"Bill payment of SAR 245.50 to STC (account ACC-778812) — completed.\"\n  }\n}"}],"_postman_id":"3f436779-094c-4e82-b62a-385aba380b22"},{"name":"Get Transactions","id":"cfaf038f-7568-4387-926c-9879b793d1de","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/Utilities/Transactions?transactionId=&externalReference=&status=Completed&fromDate=&toDate=&page=1&pageSize=50","description":"<p>Returns a paginated, filterable list of your bill-payment transactions.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by transaction id.</td>\n</tr>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by your external reference.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by status (enum name, e.g. <code>Completed</code>).</td>\n</tr>\n<tr>\n<td><code>fromDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>Start of creation-date range.</td>\n</tr>\n<tr>\n<td><code>toDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>End of creation-date range.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of transactions. Valid <code>status</code> values: <code>Submitted</code>, <code>Pending</code>, <code>Completed</code>, <code>Failed</code>, <code>Cancelled</code>.</p>\n","urlObject":{"path":["api","v0","Utilities","Transactions"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"transactionId","value":""},{"key":"externalReference","value":""},{"description":{"content":"<p>Enum name, e.g. Completed.</p>\n","type":"text/plain"},"key":"status","value":"Completed"},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"fe67b853-b7a1-412d-a430-dea2317ce0de","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/Utilities/Transactions?transactionId=&externalReference=&status=Completed&fromDate=&toDate=&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","Utilities","Transactions"],"query":[{"key":"transactionId","value":""},{"key":"externalReference","value":""},{"key":"status","value":"Completed","description":"Enum name, e.g. Completed."},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Returns a paginated, filterable list of your bill-payment transactions.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Utilities service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `transactionId` | `string` | No | — | Filter by transaction id. |\n| `externalReference` | `string` | No | — | Filter by your external reference. |\n| `status` | `string` | No | — | Filter by status (enum name, e.g. `Completed`). |\n| `fromDate` | `datetime` | No | — | Start of creation-date range. |\n| `toDate` | `datetime` | No | — | End of creation-date range. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of transactions. Valid `status` values: `Submitted`, `Pending`, `Completed`, `Failed`, `Cancelled`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"transactionId\": \"util_txn_7c2d\",\n        \"externalReference\": \"client-ref-4001\",\n        \"status\": \"Completed\",\n        \"timestamp\": {\n          \"requestedAt\": \"2026-07-01T11:00:00Z\",\n          \"completedAt\": \"2026-07-01T11:01:30Z\"\n        },\n        \"product\": {\n          \"id\": \"V1:12345\",\n          \"name\": \"STC Postpaid Bill\",\n          \"operator\": {\n            \"id\": \"op_stc\",\n            \"name\": \"STC\",\n            \"country\": {\n              \"name\": \"Saudi Arabia\",\n              \"isoCode\": \"SA\"\n            }\n          }\n        },\n        \"amounts\": {\n          \"requestedAmount\": {\n            \"amount\": 245.5,\n            \"currency\": \"SAR\"\n          },\n          \"deliveredAmount\": {\n            \"amount\": 245.5,\n            \"currency\": \"SAR\"\n          },\n          \"fees\": {\n            \"totalFee\": 0,\n            \"currency\": \"SAR\"\n          }\n        },\n        \"pinDetails\": null,\n        \"receipt\": \"Bill payment of SAR 245.50 to STC (account ACC-778812) — completed.\"\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"cfaf038f-7568-4387-926c-9879b793d1de"}],"id":"b7122c82-6166-4320-adb9-a2a4b58b51c0","description":"<p>The <strong>Utilities</strong> service pays bills and utility accounts (telecom, electricity, water, and more) via supported billers — browse countries, operators, and products, look up an outstanding bill, then pay it and track the payment.</p>\n<hr />\n<h2 id=\"client-flow\">Client Flow</h2>\n<ol>\n<li><strong>Browse countries</strong> — <code>GET /countries</code>.</li>\n<li><strong>Browse operators</strong> — <code>GET /operators?countryIsoCodes={iso}</code> or <code>GET /countries/{iso}/operators</code>.</li>\n<li><strong>Browse products</strong> — <code>GET /operators/{operatorId}/products</code> (or <code>GET /</code> with filters).</li>\n<li><strong>Look up a bill (if supported)</strong> — when a product has <code>paymentOptions.supportsAccountInquiry = true</code>, call <code>POST /accounts/inquiry</code> to fetch the amount due.</li>\n<li><strong>Pay</strong> — <code>POST /transactions/async</code>; returns a <code>transactionId</code>, payment happens in the background.</li>\n<li><strong>Track</strong> — poll <code>GET /transactions/{id}</code> (or <code>GET /Transactions</code> with filters) until <code>status</code> is <code>Completed</code>.</li>\n</ol>\n<p>Payments are <strong>idempotent</strong> on <code>externalReference</code>. Use the product's <code>transactionRequiredFields</code> list to know which key/value fields to send.</p>\n<hr />\n<h2 id=\"enums--reference\">Enums &amp; Reference</h2>\n<h3 id=\"transaction-status-status\">Transaction status (<code>status</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Submitted</code></td>\n<td>Received and queued for processing.</td>\n</tr>\n<tr>\n<td><code>Pending</code></td>\n<td>Being processed / paid.</td>\n</tr>\n<tr>\n<td><code>Completed</code></td>\n<td>Paid successfully.</td>\n</tr>\n<tr>\n<td><code>Failed</code></td>\n<td>Payment failed.</td>\n</tr>\n<tr>\n<td><code>Cancelled</code></td>\n<td>Cancelled before completion.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"payment-type-type\">Payment type (<code>type</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>RangedPayment</code></td>\n<td>Pay any amount within the product's min/max.</td>\n</tr>\n<tr>\n<td><code>FixedRecharge</code></td>\n<td>Fixed amount.</td>\n</tr>\n<tr>\n<td><code>PINPurchase</code></td>\n<td>PIN / voucher purchase.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"payment-currency-pricingpaymentcurrencytype\">Payment currency (<code>pricing.paymentCurrencyType</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>ClientCurrency</code></td>\n<td>Amount is charged in your currency (SAR).</td>\n</tr>\n<tr>\n<td><code>DestinationCurrency</code></td>\n<td>Amount is expressed in the bill's destination currency.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"payment-options-paymentoptionsallowedpaymentoptions\">Payment options (<code>paymentOptions.allowedPaymentOptions</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>ExactAmount</code></td>\n<td>The exact amount due must be paid.</td>\n</tr>\n<tr>\n<td><code>AllowsOverpayment</code></td>\n<td>Payments above the due amount are accepted.</td>\n</tr>\n<tr>\n<td><code>AcceptsLatePayments</code></td>\n<td>Payments after the due date are accepted.</td>\n</tr>\n<tr>\n<td><code>AllowsPartialPayments</code></td>\n<td>Partial payments are accepted.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"b7122c82-6166-4320-adb9-a2a4b58b51c0"},{"name":"Gift Cards (Coming Soon)","item":[{"name":"Get Brands","id":"9f2e2cf7-fe42-4603-9026-10008a90b008","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/giftcards/brands?ids=&categories=ENTERTAINMENT&countryIso3Codes=USA&searchTerms=&lang=English&page=1&pageSize=50","description":"<p>Lists the gift-card <strong>brands</strong> available to your account (e.g. iTunes, Amazon), filterable by category, country, or search term.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>ids</code></td>\n<td><code>int[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by brand id(s).</td>\n</tr>\n<tr>\n<td><code>categories</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by category (see folder overview).</td>\n</tr>\n<tr>\n<td><code>countryIso3Codes</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by ISO 3166-1 alpha-3 country code(s).</td>\n</tr>\n<tr>\n<td><code>searchTerms</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Match brand code or name.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>English</code></td>\n<td>Display language: <code>English</code> or <code>Arabic</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page (max 100).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of brands. <code>category</code> uses the <strong>Category</strong> enum (see folder overview).</p>\n","urlObject":{"path":["api","v0","giftcards","brands"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"ids","value":""},{"description":{"content":"<p>Filter by category (see folder overview).</p>\n","type":"text/plain"},"key":"categories","value":"ENTERTAINMENT"},{"key":"countryIso3Codes","value":"USA"},{"key":"searchTerms","value":""},{"description":{"content":"<p>English or Arabic.</p>\n","type":"text/plain"},"key":"lang","value":"English"},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"ac22a29c-a285-4988-affa-decbe9fd03bb","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/giftcards/brands?ids=&categories=ENTERTAINMENT&countryIso3Codes=USA&searchTerms=&lang=English&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","giftcards","brands"],"query":[{"key":"ids","value":""},{"key":"categories","value":"ENTERTAINMENT","description":"Filter by category (see folder overview)."},{"key":"countryIso3Codes","value":"USA"},{"key":"searchTerms","value":""},{"key":"lang","value":"English","description":"English or Arabic."},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Lists the gift-card **brands** available to your account (e.g. iTunes, Amazon), filterable by category, country, or search term.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `ids` | `int[]` | No | — | Filter by brand id(s). |\n| `categories` | `string[]` | No | — | Filter by category (see folder overview). |\n| `countryIso3Codes` | `string[]` | No | — | Filter by ISO 3166-1 alpha-3 country code(s). |\n| `searchTerms` | `string[]` | No | — | Match brand code or name. |\n| `lang` | `string` | No | `English` | Display language: `English` or `Arabic`. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page (max 100). |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of brands. `category` uses the **Category** enum (see folder overview)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": 123,\n        \"code\": \"GC-ENT-US-001\",\n        \"category\": \"ENTERTAINMENT\",\n        \"countryIso3\": \"USA\",\n        \"name\": \"iTunes (US)\",\n        \"description\": \"Apple iTunes US gift cards.\"\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"9f2e2cf7-fe42-4603-9026-10008a90b008"},{"name":"Get Products","id":"7baf8bdc-6e7f-42a7-8a57-4f299532a91f","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/giftcards/products?ids=&brandIds=123&categories=&countryIso3Codes=&denominationTypes=FIXED&searchTerms=&includeContent=true&includeInputFields=true&lang=English&page=1&pageSize=50","description":"<p>Lists the priced gift-card <strong>products</strong> (specific denominations of a brand). Each product carries its <code>denomination</code>, <code>pricing</code> (in SAR), <code>deliveryFormat</code>, and — when requested — descriptive <code>content</code> and required <code>transactionInputFields</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>ids</code></td>\n<td><code>int[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by product id(s). Fetch a single product this way.</td>\n</tr>\n<tr>\n<td><code>brandIds</code></td>\n<td><code>int[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by brand id(s).</td>\n</tr>\n<tr>\n<td><code>categories</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by category.</td>\n</tr>\n<tr>\n<td><code>countryIso3Codes</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by ISO alpha-3 country code(s).</td>\n</tr>\n<tr>\n<td><code>denominationTypes</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by denomination type: <code>FIXED</code>, <code>RANGE</code>, <code>OPEN</code>.</td>\n</tr>\n<tr>\n<td><code>searchTerms</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Match product code or name.</td>\n</tr>\n<tr>\n<td><code>includeContent</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Include localized descriptions / T&amp;C / images.</td>\n</tr>\n<tr>\n<td><code>includeInputFields</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Include the required transaction input fields.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>English</code></td>\n<td>Display language: <code>English</code> or <code>Arabic</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page (max 100).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of products. <code>denomination.type</code>, <code>deliveryFormat</code>, <code>pricing.mode</code>, and <code>transactionInputFields[].type</code> use the enums in the folder overview. <code>pricing.wholesale</code> is what you are billed (SAR); <code>pricing.retail</code> is the suggested customer price.</p>\n","urlObject":{"path":["api","v0","giftcards","products"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"ids","value":""},{"key":"brandIds","value":"123"},{"key":"categories","value":""},{"key":"countryIso3Codes","value":""},{"description":{"content":"<p>FIXED, RANGE, or OPEN.</p>\n","type":"text/plain"},"key":"denominationTypes","value":"FIXED"},{"key":"searchTerms","value":""},{"description":{"content":"<p>Include the localized content block.</p>\n","type":"text/plain"},"key":"includeContent","value":"true"},{"description":{"content":"<p>Include required transaction input fields.</p>\n","type":"text/plain"},"key":"includeInputFields","value":"true"},{"key":"lang","value":"English"},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"af23e1f3-d1ae-4e7d-9231-a0f14dfafc60","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/giftcards/products?ids=&brandIds=123&categories=&countryIso3Codes=&denominationTypes=FIXED&searchTerms=&includeContent=true&includeInputFields=true&lang=English&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","giftcards","products"],"query":[{"key":"ids","value":""},{"key":"brandIds","value":"123"},{"key":"categories","value":""},{"key":"countryIso3Codes","value":""},{"key":"denominationTypes","value":"FIXED","description":"FIXED, RANGE, or OPEN."},{"key":"searchTerms","value":""},{"key":"includeContent","value":"true","description":"Include the localized content block."},{"key":"includeInputFields","value":"true","description":"Include required transaction input fields."},{"key":"lang","value":"English"},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Lists the priced gift-card **products** (specific denominations of a brand). Each product carries its `denomination`, `pricing` (in SAR), `deliveryFormat`, and — when requested — descriptive `content` and required `transactionInputFields`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `ids` | `int[]` | No | — | Filter by product id(s). Fetch a single product this way. |\n| `brandIds` | `int[]` | No | — | Filter by brand id(s). |\n| `categories` | `string[]` | No | — | Filter by category. |\n| `countryIso3Codes` | `string[]` | No | — | Filter by ISO alpha-3 country code(s). |\n| `denominationTypes` | `string[]` | No | — | Filter by denomination type: `FIXED`, `RANGE`, `OPEN`. |\n| `searchTerms` | `string[]` | No | — | Match product code or name. |\n| `includeContent` | `bool` | No | `false` | Include localized descriptions / T&C / images. |\n| `includeInputFields` | `bool` | No | `false` | Include the required transaction input fields. |\n| `lang` | `string` | No | `English` | Display language: `English` or `Arabic`. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page (max 100). |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of products. `denomination.type`, `deliveryFormat`, `pricing.mode`, and `transactionInputFields[].type` use the enums in the folder overview. `pricing.wholesale` is what you are billed (SAR); `pricing.retail` is the suggested customer price."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": 456,\n        \"code\": \"GC-ENT-US-001-10USD\",\n        \"info\": {\n          \"brandId\": 123,\n          \"brandCode\": \"GC-ENT-US-001\",\n          \"category\": \"ENTERTAINMENT\",\n          \"countryIso3\": \"USA\",\n          \"name\": \"iTunes US $10\"\n        },\n        \"amountCurrency\": null,\n        \"deliveryFormat\": \"PIN\",\n        \"transactionInputFields\": [\n          {\n            \"key\": \"email\",\n            \"label\": \"Recipient Email\",\n            \"type\": \"EMAIL\",\n            \"required\": true,\n            \"validation\": {\n              \"regex\": \"^[^@]+@[^@]+$\",\n              \"minLength\": null,\n              \"maxLength\": 255,\n              \"min\": null,\n              \"max\": null,\n              \"allowedValues\": []\n            }\n          }\n        ],\n        \"denomination\": {\n          \"type\": \"FIXED\",\n          \"currency\": \"USD\",\n          \"value\": 10,\n          \"min\": null,\n          \"max\": null,\n          \"increment\": null\n        },\n        \"pricing\": {\n          \"currency\": \"SAR\",\n          \"mode\": \"WHOLESALE\",\n          \"wholesale\": {\n            \"value\": 37.5,\n            \"rate\": null,\n            \"min\": null,\n            \"max\": null,\n            \"increment\": null\n          },\n          \"retail\": {\n            \"value\": 45,\n            \"rate\": null,\n            \"min\": null,\n            \"max\": null,\n            \"increment\": null\n          },\n          \"discount\": null\n        },\n        \"content\": {\n          \"description\": \"Redeem for apps, games, music and more on the US App Store / iTunes.\",\n          \"shortDescription\": \"iTunes US gift card\",\n          \"termsAndConditions\": \"Valid for 12 months from purchase. US accounts only.\",\n          \"redemptionInstructions\": \"Redeem at itunes.com/redeem.\",\n          \"disclaimer\": \"Non-refundable.\",\n          \"validityText\": \"12 Months\",\n          \"images\": [\n            {\n              \"type\": \"LOGO\",\n              \"url\": \"https://cdn.example.com/giftcards/itunes-logo.png\"\n            },\n            {\n              \"type\": \"CARD\",\n              \"url\": \"https://cdn.example.com/giftcards/itunes-card.png\"\n            }\n          ]\n        }\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"7baf8bdc-6e7f-42a7-8a57-4f299532a91f"},{"name":"Create Transaction","id":"66a6858e-a616-4636-9cfb-fdf81ec91322","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-5001\",\n  \"productId\": 456,\n  \"amount\": null,\n  \"amountCurrency\": null,\n  \"transactionInputs\": [\n    {\n      \"key\": \"email\",\n      \"value\": \"recipient@example.com\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/giftcards/transactions/async","description":"<p>Orders a gift card <strong>asynchronously</strong>. Returns immediately with a <code>transactionId</code>; poll <strong>Get Transaction by ID</strong> until <code>status</code> is <code>Completed</code> to retrieve the delivered card (PIN / redemption URL / QR). Idempotent on <code>externalReference</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.</p>\n<hr />\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Your unique id (idempotency key).</td>\n</tr>\n<tr>\n<td><code>productId</code></td>\n<td><code>int</code></td>\n<td>Yes</td>\n<td>The catalogue product to order.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>decimal</code></td>\n<td>No</td>\n<td>Order amount — required for <code>RANGE</code>/<code>OPEN</code> products; omit for <code>FIXED</code>.</td>\n</tr>\n<tr>\n<td><code>amountCurrency</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Currency of <code>amount</code>: <code>LOCAL</code> (SAR) or <code>DESTINATION</code> (card currency).</td>\n</tr>\n<tr>\n<td><code>transactionInputs</code></td>\n<td><code>array</code></td>\n<td>Yes</td>\n<td>Values for the product's required input fields, as <code>{ key, value }</code> pairs.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On acceptance <code>code</code> is <code>1000</code> and <code>data</code> contains the <code>transactionId</code>.</p>\n<h3 id=\"common-error-codes\">Common error codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>1107</code></td>\n<td>Validation error.</td>\n</tr>\n<tr>\n<td><code>1403</code></td>\n<td>Transaction rejected.</td>\n</tr>\n<tr>\n<td><code>1404</code></td>\n<td>Declined by provider.</td>\n</tr>\n<tr>\n<td><code>1413</code></td>\n<td>Invalid product id.</td>\n</tr>\n<tr>\n<td><code>1419</code></td>\n<td>Transaction already processed (duplicate <code>externalReference</code>).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","v0","giftcards","transactions","async"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[]}},"response":[{"id":"6bd0b669-e919-48aa-860e-7daaae25f6c5","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"client-ref-5001\",\n  \"productId\": 456,\n  \"amount\": null,\n  \"amountCurrency\": null,\n  \"transactionInputs\": [\n    {\n      \"key\": \"email\",\n      \"value\": \"recipient@example.com\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/giftcards/transactions/async","description":"Orders a gift card **asynchronously**. Returns immediately with a `transactionId`; poll **Get Transaction by ID** until `status` is `Completed` to retrieve the delivered card (PIN / redemption URL / QR). Idempotent on `externalReference`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.\n\n---\n\n## Request Body\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `externalReference` | `string` | Yes | Your unique id (idempotency key). |\n| `productId` | `int` | Yes | The catalogue product to order. |\n| `amount` | `decimal` | No | Order amount — required for `RANGE`/`OPEN` products; omit for `FIXED`. |\n| `amountCurrency` | `string` | No | Currency of `amount`: `LOCAL` (SAR) or `DESTINATION` (card currency). |\n| `transactionInputs` | `array` | Yes | Values for the product's required input fields, as `{ key, value }` pairs. |\n\n---\n\n## Response\n\nOn acceptance `code` is `1000` and `data` contains the `transactionId`.\n\n### Common error codes\n\n| Code | Meaning |\n| --- | --- |\n| `1107` | Validation error. |\n| `1403` | Transaction rejected. |\n| `1404` | Declined by provider. |\n| `1413` | Invalid product id. |\n| `1419` | Transaction already processed (duplicate `externalReference`). |"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"gc_txn_20260701_00123\"\n  }\n}"}],"_postman_id":"66a6858e-a616-4636-9cfb-fdf81ec91322"},{"name":"Get Transaction by ID","id":"e5c36ce0-7372-4a37-b33c-eef4e5bc8b29","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/giftcards/transactions/:id","description":"<p>Returns a single gift-card transaction — its <code>status</code>, ordered <code>denomination</code>, billed <code>price</code>, and (once <code>Completed</code>) the delivered card artifact in <code>delivery</code>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code>. <code>status</code> uses the <strong>Transaction status</strong> enum; <code>delivery.format</code> the <strong>Delivery format</strong> enum (see folder overview). <code>delivery</code> is populated only when <code>status</code> is <code>Completed</code>; <code>errorDetails</code> only when <code>Failed</code>. <code>spReference</code> is the fulfilling partner's order id (for support).</p>\n","urlObject":{"path":["api","v0","giftcards","transactions",":id"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"2807a818-c0b9-4962-acda-75d0586e1496","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/giftcards/transactions/:id","host":["https://eservicespre.hoicom.net"],"path":["api","v0","giftcards","transactions",":id"],"variable":[{"key":"id","value":""}]},"description":"Returns a single gift-card transaction — its `status`, ordered `denomination`, billed `price`, and (once `Completed`) the delivered card artifact in `delivery`.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | Transaction identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000`. `status` uses the **Transaction status** enum; `delivery.format` the **Delivery format** enum (see folder overview). `delivery` is populated only when `status` is `Completed`; `errorDetails` only when `Failed`. `spReference` is the fulfilling partner's order id (for support)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"gc_txn_20260701_00123\",\n    \"externalReference\": \"client-ref-5001\",\n    \"productId\": 456,\n    \"productCode\": \"GC-ENT-US-001-10USD\",\n    \"status\": \"Completed\",\n    \"denomination\": {\n      \"type\": \"FIXED\",\n      \"currency\": \"USD\",\n      \"value\": 10,\n      \"min\": null,\n      \"max\": null,\n      \"increment\": null\n    },\n    \"amountCurrency\": null,\n    \"price\": {\n      \"currency\": \"SAR\",\n      \"wholesale\": 37.5,\n      \"retail\": 45,\n      \"discount\": null\n    },\n    \"delivery\": {\n      \"format\": \"PIN\",\n      \"code\": \"X7Y2-9931-ABCD\",\n      \"pin\": \"5678\",\n      \"cardNumber\": null,\n      \"serial\": \"ITUNES-USA-001122\",\n      \"redemptionUrl\": null,\n      \"qrCode\": null,\n      \"instructions\": \"Redeem at itunes.com/redeem.\"\n    },\n    \"spReference\": \"SP-ORD-9876543\",\n    \"createdAt\": \"2026-07-01T14:30:00Z\",\n    \"completedAt\": \"2026-07-01T14:31:20Z\",\n    \"errorDetails\": null\n  }\n}"}],"_postman_id":"e5c36ce0-7372-4a37-b33c-eef4e5bc8b29"},{"name":"Get Transactions","id":"41279ef4-9e17-4d14-b1ff-a128b121af62","request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/giftcards/transactions?transactionIds=&externalReferences=&productIds=&statuses=Completed&fromDate=&toDate=&page=1&pageSize=50","description":"<p>Returns a paginated, filterable list of your gift-card transactions.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionIds</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by transaction id(s).</td>\n</tr>\n<tr>\n<td><code>externalReferences</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by your external reference(s).</td>\n</tr>\n<tr>\n<td><code>productIds</code></td>\n<td><code>int[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by product id(s).</td>\n</tr>\n<tr>\n<td><code>statuses</code></td>\n<td><code>string[]</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by status (enum names, e.g. <code>Completed</code>).</td>\n</tr>\n<tr>\n<td><code>fromDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>Created on/after.</td>\n</tr>\n<tr>\n<td><code>toDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>Created on/before.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Items per page (max 100).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> is a paginated list of transactions. Valid <code>status</code> values: <code>Submitted</code>, <code>Pending</code>, <code>Completed</code>, <code>Failed</code>, <code>Cancelled</code>.</p>\n","urlObject":{"path":["api","v0","giftcards","transactions"],"host":["https://eservicespre.hoicom.net"],"query":[{"key":"transactionIds","value":""},{"key":"externalReferences","value":""},{"key":"productIds","value":""},{"description":{"content":"<p>Enum name, e.g. Completed.</p>\n","type":"text/plain"},"key":"statuses","value":"Completed"},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"3c0c300b-a573-4550-beaf-bf7359956d6b","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/giftcards/transactions?transactionIds=&externalReferences=&productIds=&statuses=Completed&fromDate=&toDate=&page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","giftcards","transactions"],"query":[{"key":"transactionIds","value":""},{"key":"externalReferences","value":""},{"key":"productIds","value":""},{"key":"statuses","value":"Completed","description":"Enum name, e.g. Completed."},{"key":"fromDate","value":""},{"key":"toDate","value":""},{"key":"page","value":"1"},{"key":"pageSize","value":"50"}]},"description":"Returns a paginated, filterable list of your gift-card transactions.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gift Cards service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `transactionIds` | `string[]` | No | — | Filter by transaction id(s). |\n| `externalReferences` | `string[]` | No | — | Filter by your external reference(s). |\n| `productIds` | `int[]` | No | — | Filter by product id(s). |\n| `statuses` | `string[]` | No | — | Filter by status (enum names, e.g. `Completed`). |\n| `fromDate` | `datetime` | No | — | Created on/after. |\n| `toDate` | `datetime` | No | — | Created on/before. |\n| `page` | `int` | No | `1` | Page number. |\n| `pageSize` | `int` | No | `50` | Items per page (max 100). |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` is a paginated list of transactions. Valid `status` values: `Submitted`, `Pending`, `Completed`, `Failed`, `Cancelled`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"transactionId\": \"gc_txn_20260701_00123\",\n        \"externalReference\": \"client-ref-5001\",\n        \"productId\": 456,\n        \"productCode\": \"GC-ENT-US-001-10USD\",\n        \"status\": \"Completed\",\n        \"denomination\": {\n          \"type\": \"FIXED\",\n          \"currency\": \"USD\",\n          \"value\": 10,\n          \"min\": null,\n          \"max\": null,\n          \"increment\": null\n        },\n        \"amountCurrency\": null,\n        \"price\": {\n          \"currency\": \"SAR\",\n          \"wholesale\": 37.5,\n          \"retail\": 45,\n          \"discount\": null\n        },\n        \"delivery\": {\n          \"format\": \"PIN\",\n          \"code\": \"X7Y2-9931-ABCD\",\n          \"pin\": \"5678\",\n          \"cardNumber\": null,\n          \"serial\": \"ITUNES-USA-001122\",\n          \"redemptionUrl\": null,\n          \"qrCode\": null,\n          \"instructions\": \"Redeem at itunes.com/redeem.\"\n        },\n        \"spReference\": \"SP-ORD-9876543\",\n        \"createdAt\": \"2026-07-01T14:30:00Z\",\n        \"completedAt\": \"2026-07-01T14:31:20Z\",\n        \"errorDetails\": null\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"}],"_postman_id":"41279ef4-9e17-4d14-b1ff-a128b121af62"}],"id":"b9f2673c-e2df-4de6-a35d-7c3c87d62f8a","description":"<blockquote>\n<p>🚧 <strong>Coming soon</strong> — the Gift Cards service is under active development. The <strong>Brands</strong> and <strong>Products</strong> catalogue is available; the <strong>transaction</strong> endpoints are being finalized and their contract may still change.</p>\n</blockquote>\n<p>The <strong>Gift Cards</strong> service sells digital gift cards (retail, gaming, entertainment, and more) — browse brands and their priced products, order a card, and retrieve the delivered redemption artifact (PIN, redemption URL, or QR code).</p>\n<hr />\n<h2 id=\"client-flow\">Client Flow</h2>\n<ol>\n<li><strong>Browse brands</strong> — <code>GET /brands</code> (filter by category / country / search).</li>\n<li><strong>Browse products</strong> — <code>GET /products?brandIds={id}&amp;includeContent=true&amp;includeInputFields=true</code>. Check <code>denomination</code> (FIXED vs RANGE/OPEN), <code>pricing.wholesale</code> (what you're billed) / <code>pricing.retail</code> (suggested price), and the required <code>transactionInputFields</code>.</li>\n<li><strong>Order</strong> — <code>POST /transactions/async</code> with the product id and required inputs; returns a <code>transactionId</code>.</li>\n<li><strong>Retrieve card</strong> — poll <code>GET /transactions/{id}</code> until <code>status</code> is <code>Completed</code>; the <code>delivery</code> block then carries the PIN / redemption URL / QR.</li>\n<li><strong>History</strong> — <code>GET /transactions</code> (filter by reference, product, status, date).</li>\n</ol>\n<p>Orders are <strong>idempotent</strong> on <code>externalReference</code>. Prices are always in <strong>SAR</strong>.</p>\n<hr />\n<h2 id=\"enums--reference\">Enums &amp; Reference</h2>\n<h3 id=\"transaction-status-status\">Transaction status (<code>status</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Submitted</code></td>\n<td>Received and queued.</td>\n</tr>\n<tr>\n<td><code>Pending</code></td>\n<td>Being processed / fulfilled.</td>\n</tr>\n<tr>\n<td><code>Completed</code></td>\n<td>Delivered; <code>delivery</code> is populated.</td>\n</tr>\n<tr>\n<td><code>Failed</code></td>\n<td>Failed; see <code>errorDetails</code>.</td>\n</tr>\n<tr>\n<td><code>Cancelled</code></td>\n<td>Cancelled before completion.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"category-category\">Category (<code>category</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>RETAIL</code></td>\n<td>General retail / shopping.</td>\n</tr>\n<tr>\n<td><code>GAMING</code></td>\n<td>Games and gaming platforms.</td>\n</tr>\n<tr>\n<td><code>CASH_CARDS</code></td>\n<td>Open-loop / prepaid cash.</td>\n</tr>\n<tr>\n<td><code>FOOD</code></td>\n<td>Food, restaurants, delivery.</td>\n</tr>\n<tr>\n<td><code>ENTERTAINMENT</code></td>\n<td>Streaming, music, video.</td>\n</tr>\n<tr>\n<td><code>TRAVEL_TRANSPORT</code></td>\n<td>Travel, transport, fuel.</td>\n</tr>\n<tr>\n<td><code>OTHER</code></td>\n<td>Uncategorized.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"denomination-type-denominationtype\">Denomination type (<code>denomination.type</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>FIXED</code></td>\n<td>A single preset value.</td>\n</tr>\n<tr>\n<td><code>RANGE</code></td>\n<td>Any value between <code>min</code> and <code>max</code>, stepped by <code>increment</code>.</td>\n</tr>\n<tr>\n<td><code>OPEN</code></td>\n<td>Any value, no bounds.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"delivery-format-deliveryformat--deliveryformat\">Delivery format (<code>deliveryFormat</code> / <code>delivery.format</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>PIN</code></td>\n<td>PIN / code (plus optional card number / serial).</td>\n</tr>\n<tr>\n<td><code>REDEMPTION_URL</code></td>\n<td>A hosted redemption URL.</td>\n</tr>\n<tr>\n<td><code>QR_CODE</code></td>\n<td>A scannable QR code.</td>\n</tr>\n<tr>\n<td><code>DIRECT_CREDIT</code></td>\n<td>Credited directly to an account (no artifact).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"order-amount-currency-amountcurrency\">Order amount currency (<code>amountCurrency</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>LOCAL</code></td>\n<td>The amount is in SAR.</td>\n</tr>\n<tr>\n<td><code>DESTINATION</code></td>\n<td>The amount is in the card's currency.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pricing-mode-pricingmode\">Pricing mode (<code>pricing.mode</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>WHOLESALE</code></td>\n<td>You are billed a fixed wholesale price; you set the retail.</td>\n</tr>\n<tr>\n<td><code>DISCOUNT</code></td>\n<td>You are billed retail minus a discount (<code>pricing.discount</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"input-field-type-transactioninputfieldstype\">Input field type (<code>transactionInputFields[].type</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>TEXT</code></td>\n<td>Free text.</td>\n</tr>\n<tr>\n<td><code>EMAIL</code></td>\n<td>Email address.</td>\n</tr>\n<tr>\n<td><code>PHONE_NUMBER</code></td>\n<td>Phone number.</td>\n</tr>\n<tr>\n<td><code>NUMBER</code></td>\n<td>Numeric value.</td>\n</tr>\n<tr>\n<td><code>DATE</code></td>\n<td>Date.</td>\n</tr>\n<tr>\n<td><code>SELECT</code></td>\n<td>One of <code>validation.allowedValues</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"image-type-contentimagestype\">Image type (<code>content.images[].type</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>LOGO</code></td>\n<td>Brand logo.</td>\n</tr>\n<tr>\n<td><code>PROVIDER_LOGO</code></td>\n<td>Provider logo.</td>\n</tr>\n<tr>\n<td><code>CARD</code></td>\n<td>Card artwork.</td>\n</tr>\n<tr>\n<td><code>ARTICLE</code></td>\n<td>Article / promo image.</td>\n</tr>\n<tr>\n<td><code>THUMBNAIL</code></td>\n<td>Thumbnail.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"language-lang-request-parameter\">Language (<code>lang</code> request parameter)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>English</code></td>\n<td>English display text.</td>\n</tr>\n<tr>\n<td><code>Arabic</code></td>\n<td>Arabic display text.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"b9f2673c-e2df-4de6-a35d-7c3c87d62f8a"},{"name":"Gifts","item":[{"name":"Get Locations","id":"c86834cb-b8ba-4ab0-8f2f-8f81fe5552f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/gifts/locations?page=1&pageSize=50","description":"<p>Returns the locations available for gift delivery, each with its associated <strong>fulfillment centers</strong>. A fulfillment center is the hub that prepares and dispatches orders for a delivery area — you use its <code>fulfillmentCenterId</code> to filter products and to check delivery time slots.</p>\n<p>This is typically the <strong>first call</strong> in the gift ordering journey.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number for pagination.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Number of items per page.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds a paginated list of countries, their cities, and each city's fulfillment centers. See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","locations"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Page number for pagination (default: 1).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Number of items per page (default: 50).</p>\n","type":"text/plain"},"key":"pageSize","value":"50"}],"variable":[]}},"response":[{"id":"ea570931-8d92-4c16-8155-5fa4e44e6d9e","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/locations?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","locations"],"query":[{"key":"page","value":"1","description":"Page number for pagination (default: 1)."},{"key":"pageSize","value":"50","description":"Number of items per page (default: 50)."}]},"description":"Returns the locations available for gift delivery, each with its associated **fulfillment centers**. A fulfillment center is the hub that prepares and dispatches orders for a delivery area — you use its `fulfillmentCenterId` to filter products and to check delivery time slots.\n\nThis is typically the **first call** in the gift ordering journey.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.\n\n---\n\n## Query Parameters\n\n| Parameter | Type | Required | Default | Description |\n| --- | --- | --- | --- | --- |\n| `page` | `int` | No | `1` | Page number for pagination. |\n| `pageSize` | `int` | No | `50` | Number of items per page. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` holds a paginated list of countries, their cities, and each city's fulfillment centers. See the example below."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"name\": \"Saudi Arabia\",\n        \"isoCode\": \"SA\",\n        \"cities\": [\n          {\n            \"name\": \"Riyadh\",\n            \"fulfillmentCenters\": [\n              {\n                \"id\": \"fc_riyadh_01\",\n                \"name\": \"Riyadh Central\"\n              },\n              {\n                \"id\": \"fc_riyadh_02\",\n                \"name\": \"Riyadh North\"\n              }\n            ]\n          }\n        ]\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"},{"id":"36671adf-cac2-4856-b2a0-f1a680631fc8","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/locations?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","locations"],"query":[{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"e00ba23b-6147-4667-8efb-9265a8555317","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/locations?page=1&pageSize=50","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","locations"],"query":[{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"c86834cb-b8ba-4ab0-8f2f-8f81fe5552f7"},{"name":"Get Products by Fulfillment Center","id":"d5bc9587-115b-4385-8e77-75c4c166f1fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":"https://eservicespre.hoicom.net/api/v0/gifts/products/fc/:fulfillmentCenterId?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","description":"<p>Returns the gift products (flowers, chocolates, gift baskets, etc.) available for delivery by a specific <strong>fulfillment center</strong>, with full search, filtering, and sorting support. Prices and quantities reflect what that fulfillment center can offer.</p>\n<p>Use this after selecting a location/fulfillment center from <strong>Get Locations</strong>.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fulfillmentCenterId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>The fulfillment center to list products for.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>searchTerm</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Keyword to search in product names or descriptions.</td>\n</tr>\n<tr>\n<td><code>sku</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Exact product SKU to filter by.</td>\n</tr>\n<tr>\n<td><code>productId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Product ID to filter by.</td>\n</tr>\n<tr>\n<td><code>minPrice</code></td>\n<td><code>decimal</code></td>\n<td>No</td>\n<td>—</td>\n<td>Minimum price filter.</td>\n</tr>\n<tr>\n<td><code>maxPrice</code></td>\n<td><code>decimal</code></td>\n<td>No</td>\n<td>—</td>\n<td>Maximum price filter.</td>\n</tr>\n<tr>\n<td><code>minQty</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td>—</td>\n<td>Minimum available-quantity filter.</td>\n</tr>\n<tr>\n<td><code>maxQty</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td>—</td>\n<td>Maximum available-quantity filter.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>Details.ProductName</code></td>\n<td>Sort field. One of: <code>Details.ProductName</code>, <code>Details.Sku</code>, <code>Pricing.Price</code>, <code>Availability.Qty</code>.</td>\n</tr>\n<tr>\n<td><code>sortDescending</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Sort in descending order.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number for pagination.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Number of items per page.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>ar</code></td>\n<td>Language for text fields: <code>ar</code> (Arabic) or <code>en</code> (English).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds a paginated list of products, each with its <code>details</code> (name, SKU, images, description) and <code>pricing</code> (price, VAT, currency, total). See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","products","fc",":fulfillmentCenterId"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Optional keyword to search in product names or descriptions.</p>\n","type":"text/plain"},"key":"searchTerm","value":"string"},{"description":{"content":"<p>Optional exact product SKU to filter by.</p>\n","type":"text/plain"},"key":"sku","value":"string"},{"description":{"content":"<p>Optional product ID to filter by.</p>\n","type":"text/plain"},"key":"productId","value":"string"},{"description":{"content":"<p>Optional minimum price filter.</p>\n","type":"text/plain"},"key":"minPrice","value":"6039.208844241599"},{"description":{"content":"<p>Optional maximum price filter.</p>\n","type":"text/plain"},"key":"maxPrice","value":"6039.208844241599"},{"description":{"content":"<p>Optional minimum quantity filter.</p>\n","type":"text/plain"},"key":"minQty","value":"6997"},{"description":{"content":"<p>Optional maximum quantity filter.</p>\n","type":"text/plain"},"key":"maxQty","value":"6997"},{"description":{"content":"<p>Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.</p>\n","type":"text/plain"},"key":"sortBy","value":"Details.ProductName"},{"description":{"content":"<p>Optional whether to sort descending (default: false).</p>\n","type":"text/plain"},"key":"sortDescending","value":"false"},{"description":{"content":"<p>Page number for pagination (default: 1).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Number of items per page (default: 50).</p>\n","type":"text/plain"},"key":"pageSize","value":"50"},{"description":{"content":"<p>Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).</p>\n","type":"text/plain"},"key":"lang","value":"ar"}],"variable":[{"description":{"content":"<p>The fulfillment center identifier to filter products by.</p>\n","type":"text/plain"},"type":"any","value":"string","key":"fulfillmentCenterId"}]}},"response":[{"id":"e8fc37ae-2209-46fb-9302-d5a94b532779","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/products/fc/:fulfillmentCenterId?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","products","fc",":fulfillmentCenterId"],"query":[{"description":"Optional keyword to search in product names or descriptions.","key":"searchTerm","value":"string"},{"description":"Optional exact product SKU to filter by.","key":"sku","value":"string"},{"description":"Optional product ID to filter by.","key":"productId","value":"string"},{"description":"Optional minimum price filter.","key":"minPrice","value":"6039.208844241599"},{"description":"Optional maximum price filter.","key":"maxPrice","value":"6039.208844241599"},{"description":"Optional minimum quantity filter.","key":"minQty","value":"6997"},{"description":"Optional maximum quantity filter.","key":"maxQty","value":"6997"},{"description":"Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.","key":"sortBy","value":"Details.ProductName"},{"description":"Optional whether to sort descending (default: false).","key":"sortDescending","value":"false"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).","key":"lang","value":"ar"}],"variable":[{"key":"fulfillmentCenterId","value":"string","description":"The fulfillment center identifier to filter products by."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"prod_10021\",\n        \"details\": {\n          \"name\": \"Red Roses Bouquet\",\n          \"sku\": \"FLW-ROSE-RED-12\",\n          \"mainImage\": \"https://cdn.example.com/products/roses-red.jpg\",\n          \"imageUrls\": [\n            \"https://cdn.example.com/products/roses-red-1.jpg\",\n            \"https://cdn.example.com/products/roses-red-2.jpg\"\n          ],\n          \"description\": \"A dozen premium long-stem red roses, hand-arranged.\",\n          \"shortDescription\": \"12 premium red roses\"\n        },\n        \"pricing\": {\n          \"price\": 199,\n          \"vat\": 29.85,\n          \"currency\": \"SAR\",\n          \"total\": 228.85\n        }\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"},{"id":"0c90832d-8359-4b10-b4ad-e2a5056bfc8d","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/products/fc/:fulfillmentCenterId?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","products","fc",":fulfillmentCenterId"],"query":[{"description":"Optional keyword to search in product names or descriptions.","key":"searchTerm","value":"string"},{"description":"Optional exact product SKU to filter by.","key":"sku","value":"string"},{"description":"Optional product ID to filter by.","key":"productId","value":"string"},{"description":"Optional minimum price filter.","key":"minPrice","value":"6039.208844241599"},{"description":"Optional maximum price filter.","key":"maxPrice","value":"6039.208844241599"},{"description":"Optional minimum quantity filter.","key":"minQty","value":"6997"},{"description":"Optional maximum quantity filter.","key":"maxQty","value":"6997"},{"description":"Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.","key":"sortBy","value":"Details.ProductName"},{"description":"Optional whether to sort descending (default: false).","key":"sortDescending","value":"false"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).","key":"lang","value":"ar"}],"variable":[{"key":"fulfillmentCenterId","value":"string","description":"The fulfillment center identifier to filter products by."}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"acb3fbc4-1777-41d0-89c3-f42a23a469b1","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/products/fc/:fulfillmentCenterId?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","products","fc",":fulfillmentCenterId"],"query":[{"description":"Optional keyword to search in product names or descriptions.","key":"searchTerm","value":"string"},{"description":"Optional exact product SKU to filter by.","key":"sku","value":"string"},{"description":"Optional product ID to filter by.","key":"productId","value":"string"},{"description":"Optional minimum price filter.","key":"minPrice","value":"6039.208844241599"},{"description":"Optional maximum price filter.","key":"maxPrice","value":"6039.208844241599"},{"description":"Optional minimum quantity filter.","key":"minQty","value":"6997"},{"description":"Optional maximum quantity filter.","key":"maxQty","value":"6997"},{"description":"Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.","key":"sortBy","value":"Details.ProductName"},{"description":"Optional whether to sort descending (default: false).","key":"sortDescending","value":"false"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).","key":"lang","value":"ar"}],"variable":[{"key":"fulfillmentCenterId","value":"string","description":"The fulfillment center identifier to filter products by."}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"d5bc9587-115b-4385-8e77-75c4c166f1fa"},{"name":"Get Products","id":"7d37b92a-9b42-4e36-bea8-c431a767922e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":"https://eservicespre.hoicom.net/api/v0/gifts/products?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","description":"<p>Returns gift products <strong>across all fulfillment centers</strong>, with the same search, filtering, and sorting options as <strong>Get Products by Fulfillment Center</strong>. Use this to browse the full catalogue when you are not yet tied to a specific fulfillment center.</p>\n<blockquote>\n<p>To order a product, the recipient's fulfillment center must be able to fulfill it — prefer <strong>Get Products by Fulfillment Center</strong> once a delivery area is known.</p>\n</blockquote>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>searchTerm</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Keyword to search in product names or descriptions.</td>\n</tr>\n<tr>\n<td><code>sku</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Exact product SKU to filter by.</td>\n</tr>\n<tr>\n<td><code>productId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Product ID to filter by.</td>\n</tr>\n<tr>\n<td><code>minPrice</code></td>\n<td><code>decimal</code></td>\n<td>No</td>\n<td>—</td>\n<td>Minimum price filter.</td>\n</tr>\n<tr>\n<td><code>maxPrice</code></td>\n<td><code>decimal</code></td>\n<td>No</td>\n<td>—</td>\n<td>Maximum price filter.</td>\n</tr>\n<tr>\n<td><code>minQty</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td>—</td>\n<td>Minimum available-quantity filter.</td>\n</tr>\n<tr>\n<td><code>maxQty</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td>—</td>\n<td>Maximum available-quantity filter.</td>\n</tr>\n<tr>\n<td><code>sortBy</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>Details.ProductName</code></td>\n<td>Sort field. One of: <code>Details.ProductName</code>, <code>Details.Sku</code>, <code>Pricing.Price</code>, <code>Availability.Qty</code>.</td>\n</tr>\n<tr>\n<td><code>sortDescending</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Sort in descending order.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number for pagination.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Number of items per page.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td><code>ar</code></td>\n<td>Language for text fields: <code>ar</code> (Arabic) or <code>en</code> (English).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds a paginated list of products (details + pricing). See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","products"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Optional keyword to search in product names or descriptions.</p>\n","type":"text/plain"},"key":"searchTerm","value":"string"},{"description":{"content":"<p>Optional exact product SKU to filter by.</p>\n","type":"text/plain"},"key":"sku","value":"string"},{"description":{"content":"<p>Optional product ID to filter by.</p>\n","type":"text/plain"},"key":"productId","value":"string"},{"description":{"content":"<p>Optional minimum price filter.</p>\n","type":"text/plain"},"key":"minPrice","value":"6039.208844241599"},{"description":{"content":"<p>Optional maximum price filter.</p>\n","type":"text/plain"},"key":"maxPrice","value":"6039.208844241599"},{"description":{"content":"<p>Optional minimum quantity filter.</p>\n","type":"text/plain"},"key":"minQty","value":"6997"},{"description":{"content":"<p>Optional maximum quantity filter.</p>\n","type":"text/plain"},"key":"maxQty","value":"6997"},{"description":{"content":"<p>Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.</p>\n","type":"text/plain"},"key":"sortBy","value":"Details.ProductName"},{"description":{"content":"<p>Optional whether to sort descending (default: false).</p>\n","type":"text/plain"},"key":"sortDescending","value":"false"},{"description":{"content":"<p>Page number for pagination (default: 1).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Number of items per page (default: 50).</p>\n","type":"text/plain"},"key":"pageSize","value":"50"},{"description":{"content":"<p>Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).</p>\n","type":"text/plain"},"key":"lang","value":"ar"}],"variable":[]}},"response":[{"id":"5b6da409-153e-4a5a-9f40-aed589d9a536","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/products?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","products"],"query":[{"description":"Optional keyword to search in product names or descriptions.","key":"searchTerm","value":"string"},{"description":"Optional exact product SKU to filter by.","key":"sku","value":"string"},{"description":"Optional product ID to filter by.","key":"productId","value":"string"},{"description":"Optional minimum price filter.","key":"minPrice","value":"6039.208844241599"},{"description":"Optional maximum price filter.","key":"maxPrice","value":"6039.208844241599"},{"description":"Optional minimum quantity filter.","key":"minQty","value":"6997"},{"description":"Optional maximum quantity filter.","key":"maxQty","value":"6997"},{"description":"Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.","key":"sortBy","value":"Details.ProductName"},{"description":"Optional whether to sort descending (default: false).","key":"sortDescending","value":"false"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).","key":"lang","value":"ar"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"prod_10021\",\n        \"details\": {\n          \"name\": \"Red Roses Bouquet\",\n          \"sku\": \"FLW-ROSE-RED-12\",\n          \"mainImage\": \"https://cdn.example.com/products/roses-red.jpg\",\n          \"imageUrls\": [\n            \"https://cdn.example.com/products/roses-red-1.jpg\",\n            \"https://cdn.example.com/products/roses-red-2.jpg\"\n          ],\n          \"description\": \"A dozen premium long-stem red roses, hand-arranged.\",\n          \"shortDescription\": \"12 premium red roses\"\n        },\n        \"pricing\": {\n          \"price\": 199,\n          \"vat\": 29.85,\n          \"currency\": \"SAR\",\n          \"total\": 228.85\n        }\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"},{"id":"53a31442-f9f5-47e1-b1cb-bded0a3951e1","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/products?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","products"],"query":[{"description":"Optional keyword to search in product names or descriptions.","key":"searchTerm","value":"string"},{"description":"Optional exact product SKU to filter by.","key":"sku","value":"string"},{"description":"Optional product ID to filter by.","key":"productId","value":"string"},{"description":"Optional minimum price filter.","key":"minPrice","value":"6039.208844241599"},{"description":"Optional maximum price filter.","key":"maxPrice","value":"6039.208844241599"},{"description":"Optional minimum quantity filter.","key":"minQty","value":"6997"},{"description":"Optional maximum quantity filter.","key":"maxQty","value":"6997"},{"description":"Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.","key":"sortBy","value":"Details.ProductName"},{"description":"Optional whether to sort descending (default: false).","key":"sortDescending","value":"false"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).","key":"lang","value":"ar"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"3e5ed2b4-2484-4668-8294-1e5256b3a5c7","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/products?searchTerm=string&sku=string&productId=string&minPrice=6039.208844241599&maxPrice=6039.208844241599&minQty=6997&maxQty=6997&sortBy=Details.ProductName&sortDescending=false&page=1&pageSize=50&lang=ar","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","products"],"query":[{"description":"Optional keyword to search in product names or descriptions.","key":"searchTerm","value":"string"},{"description":"Optional exact product SKU to filter by.","key":"sku","value":"string"},{"description":"Optional product ID to filter by.","key":"productId","value":"string"},{"description":"Optional minimum price filter.","key":"minPrice","value":"6039.208844241599"},{"description":"Optional maximum price filter.","key":"maxPrice","value":"6039.208844241599"},{"description":"Optional minimum quantity filter.","key":"minQty","value":"6997"},{"description":"Optional maximum quantity filter.","key":"maxQty","value":"6997"},{"description":"Optional field to sort by: Details.ProductName, Details.Sku, Pricing.Price, Availability.Qty.","key":"sortBy","value":"Details.ProductName"},{"description":"Optional whether to sort descending (default: false).","key":"sortDescending","value":"false"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Language for text fields: \"ar\" (Arabic, default) or \"en\" (English).","key":"lang","value":"ar"}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"7d37b92a-9b42-4e36-bea8-c431a767922e"},{"name":"Get Delivery Time Slots","id":"08484a03-cca2-4749-b70b-f6d5a8bc26e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/gifts/delivery/fc/:fulfillmentCenterId/timeslots/:date","description":"<p>Returns the delivery <strong>time slots</strong> a fulfillment center can serve on a given date. The slot <code>id</code> returned here is what you pass in <code>delivery.slotId</code> when creating an order.</p>\n<p>Call this after choosing products, to confirm the recipient can receive the gift on the intended date.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fulfillmentCenterId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>The fulfillment center to check availability for.</td>\n</tr>\n<tr>\n<td><code>date</code></td>\n<td><code>string</code> (date)</td>\n<td>Yes</td>\n<td>The delivery date to check, in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds the date and its available slots, each with an <code>id</code> and a human-readable <code>name</code> (time window). See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","delivery","fc",":fulfillmentCenterId","timeslots",":date"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"description":{"content":"<p>The fulfillment center identifier.</p>\n","type":"text/plain"},"type":"any","value":"string","key":"fulfillmentCenterId"},{"description":{"content":"<p>The delivery date to check availability for.</p>\n","type":"text/plain"},"type":"any","value":"1960-01-01","key":"date"}]}},"response":[{"id":"0fdfbf51-7db6-44c5-a2f6-ec879c4662c7","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/delivery/fc/:fulfillmentCenterId/timeslots/:date","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","delivery","fc",":fulfillmentCenterId","timeslots",":date"],"variable":[{"key":"fulfillmentCenterId","value":"string","description":"The fulfillment center identifier."},{"key":"date","value":"1960-01-01","description":"The delivery date to check availability for."}]},"description":"Returns the delivery **time slots** a fulfillment center can serve on a given date. The slot `id` returned here is what you pass in `delivery.slotId` when creating an order.\n\nCall this after choosing products, to confirm the recipient can receive the gift on the intended date.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `fulfillmentCenterId` | `string` | Yes | The fulfillment center to check availability for. |\n| `date` | `string` (date) | Yes | The delivery date to check, in `YYYY-MM-DD` format. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` holds the date and its available slots, each with an `id` and a human-readable `name` (time window). See the example below."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"deliveryDate\": \"2026-07-10\",\n    \"slots\": [\n      {\n        \"id\": \"slot_morning\",\n        \"name\": \"09:00 - 12:00\"\n      },\n      {\n        \"id\": \"slot_evening\",\n        \"name\": \"16:00 - 19:00\"\n      }\n    ]\n  }\n}"},{"id":"f60d0b5b-fca6-4c13-adef-9d58fa3af3b7","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/delivery/fc/:fulfillmentCenterId/timeslots/:date","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","delivery","fc",":fulfillmentCenterId","timeslots",":date"],"variable":[{"key":"fulfillmentCenterId","value":"string","description":"The fulfillment center identifier."},{"key":"date","value":"1960-01-01","description":"The delivery date to check availability for."}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"26a603d9-9040-4126-80c4-091372d7efa5","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/delivery/fc/:fulfillmentCenterId/timeslots/:date","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","delivery","fc",":fulfillmentCenterId","timeslots",":date"],"variable":[{"key":"fulfillmentCenterId","value":"string","description":"The fulfillment center identifier."},{"key":"date","value":"1960-01-01","description":"The delivery date to check availability for."}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"08484a03-cca2-4749-b70b-f6d5a8bc26e4"},{"name":"Create Order","id":"3ad4724d-9abd-4b88-aae6-d22dc0847d6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"string\",\n  \"recipient\": {\n    \"name\": \"string\",\n    \"phone\": \"string\",\n    \"fulfillmentCenterId\": \"string\"\n  },\n  \"sender\": {\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"phone\": \"string\",\n    \"countryCode\": \"string\"\n  },\n  \"items\": [\n    {\n      \"productId\": \"string\",\n      \"quantity\": 2035\n    },\n    {\n      \"productId\": \"string\",\n      \"quantity\": 141\n    }\n  ],\n  \"delivery\": {\n    \"slotId\": \"string\",\n    \"deliveryDate\": \"1967-09-20T22:20:15.581Z\"\n  },\n  \"cardMessage\": {\n    \"from\": \"string\",\n    \"to\": \"string\",\n    \"message\": \"string\",\n    \"cardType\": \"string\"\n  },\n  \"amount\": 712.2471014755782,\n  \"currency\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders/async","description":"<p>Submits a gift order for <strong>asynchronous</strong> processing. The request returns immediately once accepted; the order is then processed in the background and moves through the fulfillment stages described in the folder overview. Poll <strong>Get Order by ID</strong> to track progress.</p>\n<p>Orders are <strong>idempotent</strong> on <code>externalReference</code> — reusing a reference that has already been processed will not create a duplicate order.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Client-provided unique id. Max 100 chars.</td>\n</tr>\n<tr>\n<td><code>recipient</code></td>\n<td><code>object</code></td>\n<td>Yes</td>\n<td>See <strong>Recipient</strong> below.</td>\n</tr>\n<tr>\n<td><code>sender</code></td>\n<td><code>object</code></td>\n<td>Yes</td>\n<td>See <strong>Sender</strong> below.</td>\n</tr>\n<tr>\n<td><code>items</code></td>\n<td><code>array</code></td>\n<td>Yes</td>\n<td>At least one item. See <strong>Item</strong> below.</td>\n</tr>\n<tr>\n<td><code>delivery</code></td>\n<td><code>object</code></td>\n<td>Yes</td>\n<td>See <strong>Delivery</strong> below.</td>\n</tr>\n<tr>\n<td><code>cardMessage</code></td>\n<td><code>object</code></td>\n<td>No</td>\n<td>See <strong>Card Message</strong> below.</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>decimal</code></td>\n<td>Yes</td>\n<td>Total order amount. Must be greater than <code>0</code>.</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>3-letter ISO code (e.g. <code>SAR</code>, <code>USD</code>). Defaults to <code>SAR</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"recipient\">Recipient</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Max 100 chars.</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Digits and <code>+ - ( ) space</code> only. Max 20 chars.</td>\n</tr>\n<tr>\n<td><code>fulfillmentCenterId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Max 50 chars.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sender\">Sender</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Max 100 chars.</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Valid email. Max 150 chars.</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Digits and <code>+ - ( ) space</code> only. Max 20 chars.</td>\n</tr>\n<tr>\n<td><code>countryCode</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>2–3 chars (e.g. <code>SA</code>, <code>+966</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"item\">Item</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>productId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>Max 50 chars.</td>\n</tr>\n<tr>\n<td><code>quantity</code></td>\n<td><code>int</code></td>\n<td>Yes</td>\n<td>Between <code>1</code> and <code>99</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"delivery\">Delivery</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>slotId</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>From <strong>Get Delivery Time Slots</strong>. Max 50 chars.</td>\n</tr>\n<tr>\n<td><code>deliveryDate</code></td>\n<td><code>datetime</code></td>\n<td>Yes</td>\n<td>Must be in the future and within 1 year.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"card-message-optional\">Card Message (optional)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Constraints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>from</code></td>\n<td><code>string</code></td>\n<td>Yes*</td>\n<td>*Required when <code>cardMessage</code> is present. Max 100 chars.</td>\n</tr>\n<tr>\n<td><code>to</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Max 100 chars.</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Max 500 chars.</td>\n</tr>\n<tr>\n<td><code>cardType</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>Max 50 chars.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On acceptance <code>code</code> is <code>1000</code> and <code>data</code> contains the <code>transactionId</code> used to track the order. See the example below.</p>\n<h3 id=\"common-error-codes\">Common error codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>1107</code></td>\n<td>Validation error (a field failed the constraints above).</td>\n</tr>\n<tr>\n<td><code>1413</code></td>\n<td>Invalid product id.</td>\n</tr>\n<tr>\n<td><code>1414</code></td>\n<td>Invalid currency code.</td>\n</tr>\n<tr>\n<td><code>1418</code></td>\n<td>Invalid external reference.</td>\n</tr>\n<tr>\n<td><code>1419</code></td>\n<td>Transaction already processed (duplicate <code>externalReference</code>).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","v0","gifts","orders","async"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[]}},"response":[{"id":"c95a2d78-9ae7-4678-ac20-2f57cd9841d9","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"string\",\n  \"recipient\": {\n    \"name\": \"string\",\n    \"phone\": \"string\",\n    \"fulfillmentCenterId\": \"string\"\n  },\n  \"sender\": {\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"phone\": \"string\",\n    \"countryCode\": \"string\"\n  },\n  \"items\": [\n    {\n      \"productId\": \"string\",\n      \"quantity\": 2035\n    },\n    {\n      \"productId\": \"string\",\n      \"quantity\": 141\n    }\n  ],\n  \"delivery\": {\n    \"slotId\": \"string\",\n    \"deliveryDate\": \"1967-09-20T22:20:15.581Z\"\n  },\n  \"cardMessage\": {\n    \"from\": \"string\",\n    \"to\": \"string\",\n    \"message\": \"string\",\n    \"cardType\": \"string\"\n  },\n  \"amount\": 712.2471014755782,\n  \"currency\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders/async","description":"Submits a gift order for **asynchronous** processing. The request returns immediately once accepted; the order is then processed in the background and moves through the fulfillment stages described in the folder overview. Poll **Get Order by ID** to track progress.\n\nOrders are **idempotent** on `externalReference` — reusing a reference that has already been processed will not create a duplicate order.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.\n\n---\n\n## Request Body\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `externalReference` | `string` | Yes | Client-provided unique id. Max 100 chars. |\n| `recipient` | `object` | Yes | See **Recipient** below. |\n| `sender` | `object` | Yes | See **Sender** below. |\n| `items` | `array` | Yes | At least one item. See **Item** below. |\n| `delivery` | `object` | Yes | See **Delivery** below. |\n| `cardMessage` | `object` | No | See **Card Message** below. |\n| `amount` | `decimal` | Yes | Total order amount. Must be greater than `0`. |\n| `currency` | `string` | No | 3-letter ISO code (e.g. `SAR`, `USD`). Defaults to `SAR`. |\n\n### Recipient\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `name` | `string` | Yes | Max 100 chars. |\n| `phone` | `string` | Yes | Digits and `+ - ( ) space` only. Max 20 chars. |\n| `fulfillmentCenterId` | `string` | Yes | Max 50 chars. |\n\n### Sender\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `name` | `string` | Yes | Max 100 chars. |\n| `email` | `string` | Yes | Valid email. Max 150 chars. |\n| `phone` | `string` | Yes | Digits and `+ - ( ) space` only. Max 20 chars. |\n| `countryCode` | `string` | Yes | 2–3 chars (e.g. `SA`, `+966`). |\n\n### Item\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `productId` | `string` | Yes | Max 50 chars. |\n| `quantity` | `int` | Yes | Between `1` and `99`. |\n\n### Delivery\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `slotId` | `string` | Yes | From **Get Delivery Time Slots**. Max 50 chars. |\n| `deliveryDate` | `datetime` | Yes | Must be in the future and within 1 year. |\n\n### Card Message (optional)\n\n| Field | Type | Required | Constraints |\n| --- | --- | --- | --- |\n| `from` | `string` | Yes* | *Required when `cardMessage` is present. Max 100 chars. |\n| `to` | `string` | No | Max 100 chars. |\n| `message` | `string` | No | Max 500 chars. |\n| `cardType` | `string` | No | Max 50 chars. |\n\n---\n\n## Response\n\nOn acceptance `code` is `1000` and `data` contains the `transactionId` used to track the order. See the example below.\n\n### Common error codes\n\n| Code | Meaning |\n| --- | --- |\n| `1107` | Validation error (a field failed the constraints above). |\n| `1413` | Invalid product id. |\n| `1414` | Invalid currency code. |\n| `1418` | Invalid external reference. |\n| `1419` | Transaction already processed (duplicate `externalReference`). |"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"gift_txn_8f3a2b7c\"\n  }\n}"},{"id":"5c1b4395-e5a6-4faa-8058-ba90b843c5b9","name":"Internal Server Error","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"string\",\n  \"recipient\": {\n    \"name\": \"string\",\n    \"phone\": \"string\",\n    \"fulfillmentCenterId\": \"string\"\n  },\n  \"sender\": {\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"phone\": \"string\",\n    \"countryCode\": \"string\"\n  },\n  \"items\": [\n    {\n      \"productId\": \"string\",\n      \"quantity\": 2035\n    },\n    {\n      \"productId\": \"string\",\n      \"quantity\": 141\n    }\n  ],\n  \"delivery\": {\n    \"slotId\": \"string\",\n    \"deliveryDate\": \"1967-09-20T22:20:15.581Z\"\n  },\n  \"cardMessage\": {\n    \"from\": \"string\",\n    \"to\": \"string\",\n    \"message\": \"string\",\n    \"cardType\": \"string\"\n  },\n  \"amount\": 712.2471014755782,\n  \"currency\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders/async"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"45ba52d0-6c03-4c94-9823-39834c1130e5","name":"Service Unavailable","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"externalReference\": \"string\",\n  \"recipient\": {\n    \"name\": \"string\",\n    \"phone\": \"string\",\n    \"fulfillmentCenterId\": \"string\"\n  },\n  \"sender\": {\n    \"name\": \"string\",\n    \"email\": \"string\",\n    \"phone\": \"string\",\n    \"countryCode\": \"string\"\n  },\n  \"items\": [\n    {\n      \"productId\": \"string\",\n      \"quantity\": 2035\n    },\n    {\n      \"productId\": \"string\",\n      \"quantity\": 141\n    }\n  ],\n  \"delivery\": {\n    \"slotId\": \"string\",\n    \"deliveryDate\": \"1967-09-20T22:20:15.581Z\"\n  },\n  \"cardMessage\": {\n    \"from\": \"string\",\n    \"to\": \"string\",\n    \"message\": \"string\",\n    \"cardType\": \"string\"\n  },\n  \"amount\": 712.2471014755782,\n  \"currency\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders/async"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"3ad4724d-9abd-4b88-aae6-d22dc0847d6a"},{"name":"Get Order by ID","id":"504fe16d-809a-4665-9977-6f345245964e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id?includeProducts=false&includeCardMessages=false","description":"<p>Returns a single gift order by its transaction id, including its overall <code>status</code> and detailed <code>processingStage</code> (see the folder overview for the stage lifecycle). Use this to <strong>poll</strong> an order after creating it.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>The gift order transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>includeProducts</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Include the ordered products in the response.</td>\n</tr>\n<tr>\n<td><code>includeCardMessages</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Include attached card messages in the response.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds the order — status, processing stage, timestamps, recipient, sender, delivery, and amounts. Products and card messages are included only when the matching <code>include</code> flag is <code>true</code>. If the order is not found the response carries <code>1105</code>. See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","orders",":id"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Include product details in the response (default: false).</p>\n","type":"text/plain"},"key":"includeProducts","value":"false"},{"description":{"content":"<p>Include card messages in the response (default: false).</p>\n","type":"text/plain"},"key":"includeCardMessages","value":"false"}],"variable":[{"description":{"content":"<p>The unique identifier of the gift order transaction.</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"a65bf598-aee9-4ca8-b3c0-c77222e3e702","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id?includeProducts=false&includeCardMessages=false","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id"],"query":[{"description":"Include product details in the response (default: false).","key":"includeProducts","value":"false"},{"description":"Include card messages in the response (default: false).","key":"includeCardMessages","value":"false"}],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"gift_txn_8f3a2b7c\",\n    \"externalReference\": \"client-ref-1001\",\n    \"status\": \"Completed\",\n    \"processingStage\": \"Delivered\",\n    \"timestamp\": {\n      \"requestedAt\": \"2026-07-01T09:30:00Z\",\n      \"completedAt\": \"2026-07-02T14:05:00Z\"\n    },\n    \"recipient\": {\n      \"name\": \"Sara Al-Ahmad\",\n      \"phone\": \"+966500000000\"\n    },\n    \"sender\": {\n      \"name\": \"Omar Khan\",\n      \"email\": \"omar@example.com\",\n      \"phone\": \"+966511111111\"\n    },\n    \"delivery\": {\n      \"deliveryTimeSlot\": \"09:00 - 12:00\",\n      \"deliveryDate\": \"2026-07-02T00:00:00Z\",\n      \"requestedDeliveryDate\": \"2026-07-02T00:00:00Z\",\n      \"actualDeliveryDate\": \"2026-07-02T11:15:00Z\",\n      \"fulfillmentCenter\": {\n        \"id\": \"fc_riyadh_01\",\n        \"name\": \"Riyadh Central\",\n        \"city\": \"Riyadh\",\n        \"countryCode\": \"SA\"\n      }\n    },\n    \"amounts\": {\n      \"requestedAmount\": {\n        \"amount\": 228.85,\n        \"currency\": \"SAR\"\n      },\n      \"finalAmount\": {\n        \"amount\": 228.85,\n        \"currency\": \"SAR\"\n      },\n      \"pricing\": {\n        \"subTotal\": 199,\n        \"vatAmount\": 29.85,\n        \"vatPercentage\": 15,\n        \"deliveryCost\": 0,\n        \"discount\": 0,\n        \"currency\": \"SAR\"\n      }\n    }\n  }\n}"},{"id":"61acd115-8b0d-4624-9b2d-0fe3e8c354b6","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id?includeProducts=false&includeCardMessages=false","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id"],"query":[{"description":"Include product details in the response (default: false).","key":"includeProducts","value":"false"},{"description":"Include card messages in the response (default: false).","key":"includeCardMessages","value":"false"}],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"b1b67ce8-6710-431e-bdc7-fd22eb55c16f","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id?includeProducts=false&includeCardMessages=false","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id"],"query":[{"description":"Include product details in the response (default: false).","key":"includeProducts","value":"false"},{"description":"Include card messages in the response (default: false).","key":"includeCardMessages","value":"false"}],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"504fe16d-809a-4665-9977-6f345245964e"},{"name":"Get Order Products","id":"45d16dd2-ef31-4f1f-80ac-52048f9a796a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/products","description":"<p>Returns just the <strong>products</strong> belonging to a gift order. Equivalent to calling <strong>Get Order by ID</strong> with <code>includeProducts=true</code> and reading only the products.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>The gift order transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds the order's <code>transactionId</code> and its list of products (details, quantity, pricing). See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","orders",":id","products"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"description":{"content":"<p>The unique identifier of the gift order transaction.</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"3b5b9656-3b28-4d44-b230-30019c88380f","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/products","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id","products"],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]},"description":"Returns just the **products** belonging to a gift order. Equivalent to calling **Get Order by ID** with `includeProducts=true` and reading only the products.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | The gift order transaction identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` holds the order's `transactionId` and its list of products (details, quantity, pricing). See the example below."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"gift_txn_8f3a2b7c\",\n    \"products\": [\n      {\n        \"id\": \"prod_10021\",\n        \"details\": {\n          \"name\": \"Red Roses Bouquet\",\n          \"nameAr\": \"باقة ورد أحمر\",\n          \"mainImage\": \"https://cdn.example.com/products/roses-red.jpg\",\n          \"sku\": \"FLW-ROSE-RED-12\"\n        },\n        \"quantity\": 1,\n        \"pricing\": {\n          \"currency\": \"SAR\",\n          \"unitPrice\": 199,\n          \"totalPrice\": 199,\n          \"vat\": 29.85\n        }\n      }\n    ]\n  }\n}"},{"id":"c2765b3d-74fe-42db-909f-1826b85e10fc","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/products","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id","products"],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"1e9e3c4a-433b-4682-97ea-6f608b347c54","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/products","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id","products"],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"45d16dd2-ef31-4f1f-80ac-52048f9a796a"},{"name":"Get Order Card Messages","id":"ea378616-0852-4440-8beb-e87508e4921e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/card-messages","description":"<p>Returns just the <strong>card / gift messages</strong> attached to a gift order. Equivalent to calling <strong>Get Order by ID</strong> with <code>includeCardMessages=true</code> and reading only the card messages.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td><code>string</code></td>\n<td>Yes</td>\n<td>The gift order transaction identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds the order's <code>transactionId</code> and its list of card messages (<code>from</code>, <code>to</code>, <code>message</code>, <code>cardType</code>). See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","orders",":id","card-messages"],"host":["https://eservicespre.hoicom.net"],"query":[],"variable":[{"description":{"content":"<p>The unique identifier of the gift order transaction.</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"77d08a3a-f8bf-4c78-a994-a2211d0aa191","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/card-messages","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id","card-messages"],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]},"description":"Returns just the **card / gift messages** attached to a gift order. Equivalent to calling **Get Order by ID** with `includeCardMessages=true` and reading only the card messages.\n\n---\n\n## Authorization\n\nRequires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | Yes | The gift order transaction identifier. |\n\n---\n\n## Response\n\nOn success `code` is `1000` and `data` holds the order's `transactionId` and its list of card messages (`from`, `to`, `message`, `cardType`). See the example below."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"transactionId\": \"gift_txn_8f3a2b7c\",\n    \"cardMessages\": [\n      {\n        \"from\": \"Omar\",\n        \"to\": \"Sara\",\n        \"message\": \"Happy Birthday!\",\n        \"cardType\": \"Birthday\"\n      }\n    ]\n  }\n}"},{"id":"a668c31a-68c4-4869-921a-f1834ace7408","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/card-messages","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id","card-messages"],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"1b198d97-6bb6-41c6-b026-a20e4da4c503","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders/:id/card-messages","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders",":id","card-messages"],"variable":[{"key":"id","value":"string","description":"The unique identifier of the gift order transaction."}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"ea378616-0852-4440-8beb-e87508e4921e"},{"name":"Get Orders","id":"e5dc07e1-57f7-4abe-b84a-80325961cc82","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":"https://eservicespre.hoicom.net/api/v0/gifts/orders?transactionId=string&externalReference=string&status=string&fromDate=2024-09-26T09:33:32.577Z&toDate=2024-09-26T09:33:32.577Z&page=1&pageSize=50&includeProducts=false&includeCardMessages=false","description":"<p>Returns a paginated, filterable list of gift orders for your account. Use it to look up orders by transaction id, external reference, status, or date range.</p>\n<hr />\n<h2 id=\"authorization\">Authorization</h2>\n<p>Requires Basic Authentication with your client credentials. Your account must be enabled for the Gifts service.</p>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transactionId</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by transaction id.</td>\n</tr>\n<tr>\n<td><code>externalReference</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by your external reference.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>No</td>\n<td>—</td>\n<td>Filter by status (enum name, e.g. <code>Completed</code>).</td>\n</tr>\n<tr>\n<td><code>fromDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>Start of the creation-date range.</td>\n</tr>\n<tr>\n<td><code>toDate</code></td>\n<td><code>datetime</code></td>\n<td>No</td>\n<td>—</td>\n<td>End of the creation-date range.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>1</code></td>\n<td>Page number for pagination.</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td><code>int</code></td>\n<td>No</td>\n<td><code>50</code></td>\n<td>Number of items per page.</td>\n</tr>\n<tr>\n<td><code>includeProducts</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Include ordered products for each order.</td>\n</tr>\n<tr>\n<td><code>includeCardMessages</code></td>\n<td><code>bool</code></td>\n<td>No</td>\n<td><code>false</code></td>\n<td>Include card messages for each order.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"response\">Response</h2>\n<p>On success <code>code</code> is <code>1000</code> and <code>data</code> holds a paginated list of orders. Valid <code>status</code> values: <code>Submitted</code>, <code>Pending</code>, <code>Completed</code>, <code>Failed</code>, <code>Cancelled</code>. See the example below.</p>\n","urlObject":{"path":["api","v0","gifts","orders"],"host":["https://eservicespre.hoicom.net"],"query":[{"description":{"content":"<p>Optional transaction ID to filter by.</p>\n","type":"text/plain"},"key":"transactionId","value":"string"},{"description":{"content":"<p>Optional external reference to filter by.</p>\n","type":"text/plain"},"key":"externalReference","value":"string"},{"description":{"content":"<p>Optional transaction status to filter by (enum name, e.g. \"Completed\").</p>\n","type":"text/plain"},"key":"status","value":"string"},{"description":{"content":"<p>Optional start date for filtering.</p>\n","type":"text/plain"},"key":"fromDate","value":"2024-09-26T09:33:32.577Z"},{"description":{"content":"<p>Optional end date for filtering.</p>\n","type":"text/plain"},"key":"toDate","value":"2024-09-26T09:33:32.577Z"},{"description":{"content":"<p>Page number for pagination (default: 1).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Number of items per page (default: 50).</p>\n","type":"text/plain"},"key":"pageSize","value":"50"},{"description":{"content":"<p>Include product details in the response (default: false).</p>\n","type":"text/plain"},"key":"includeProducts","value":"false"},{"description":{"content":"<p>Include card messages in the response (default: false).</p>\n","type":"text/plain"},"key":"includeCardMessages","value":"false"}],"variable":[]}},"response":[{"id":"477c62bb-2ddd-4662-9eae-d0acc4f43851","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"text/plain"}],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders?transactionId=string&externalReference=string&status=string&fromDate=2024-09-26T09:33:32.577Z&toDate=2024-09-26T09:33:32.577Z&page=1&pageSize=50&includeProducts=false&includeCardMessages=false","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders"],"query":[{"description":"Optional transaction ID to filter by.","key":"transactionId","value":"string"},{"description":"Optional external reference to filter by.","key":"externalReference","value":"string"},{"description":"Optional transaction status to filter by (enum name, e.g. \"Completed\").","key":"status","value":"string"},{"description":"Optional start date for filtering.","key":"fromDate","value":"2024-09-26T09:33:32.577Z"},{"description":"Optional end date for filtering.","key":"toDate","value":"2024-09-26T09:33:32.577Z"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Include product details in the response (default: false).","key":"includeProducts","value":"false"},{"description":"Include card messages in the response (default: false).","key":"includeCardMessages","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 1000,\n  \"message\": \"Success\",\n  \"data\": {\n    \"items\": [\n      {\n        \"transactionId\": \"gift_txn_8f3a2b7c\",\n        \"externalReference\": \"client-ref-1001\",\n        \"status\": \"Completed\",\n        \"processingStage\": \"Delivered\",\n        \"timestamp\": {\n          \"requestedAt\": \"2026-07-01T09:30:00Z\",\n          \"completedAt\": \"2026-07-02T14:05:00Z\"\n        },\n        \"recipient\": {\n          \"name\": \"Sara Al-Ahmad\",\n          \"phone\": \"+966500000000\"\n        },\n        \"sender\": {\n          \"name\": \"Omar Khan\",\n          \"email\": \"omar@example.com\",\n          \"phone\": \"+966511111111\"\n        },\n        \"delivery\": {\n          \"deliveryTimeSlot\": \"09:00 - 12:00\",\n          \"deliveryDate\": \"2026-07-02T00:00:00Z\",\n          \"requestedDeliveryDate\": \"2026-07-02T00:00:00Z\",\n          \"actualDeliveryDate\": \"2026-07-02T11:15:00Z\",\n          \"fulfillmentCenter\": {\n            \"id\": \"fc_riyadh_01\",\n            \"name\": \"Riyadh Central\",\n            \"city\": \"Riyadh\",\n            \"countryCode\": \"SA\"\n          }\n        },\n        \"amounts\": {\n          \"requestedAmount\": {\n            \"amount\": 228.85,\n            \"currency\": \"SAR\"\n          },\n          \"finalAmount\": {\n            \"amount\": 228.85,\n            \"currency\": \"SAR\"\n          },\n          \"pricing\": {\n            \"subTotal\": 199,\n            \"vatAmount\": 29.85,\n            \"vatPercentage\": 15,\n            \"deliveryCost\": 0,\n            \"discount\": 0,\n            \"currency\": \"SAR\"\n          }\n        }\n      }\n    ],\n    \"count\": 1,\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalPages\": 1,\n    \"totalItems\": 1\n  }\n}"},{"id":"8c0b81ae-e137-46c2-8635-da6ea42f9452","name":"Internal Server Error","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders?transactionId=string&externalReference=string&status=string&fromDate=2024-09-26T09:33:32.577Z&toDate=2024-09-26T09:33:32.577Z&page=1&pageSize=50&includeProducts=false&includeCardMessages=false","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders"],"query":[{"description":"Optional transaction ID to filter by.","key":"transactionId","value":"string"},{"description":"Optional external reference to filter by.","key":"externalReference","value":"string"},{"description":"Optional transaction status to filter by (enum name, e.g. \"Completed\").","key":"status","value":"string"},{"description":"Optional start date for filtering.","key":"fromDate","value":"2024-09-26T09:33:32.577Z"},{"description":"Optional end date for filtering.","key":"toDate","value":"2024-09-26T09:33:32.577Z"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Include product details in the response (default: false).","key":"includeProducts","value":"false"},{"description":"Include card messages in the response (default: false).","key":"includeCardMessages","value":"false"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"4b496f94-6768-4da4-a80c-b23a25fd5b57","name":"Service Unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://eservicespre.hoicom.net/api/v0/gifts/orders?transactionId=string&externalReference=string&status=string&fromDate=2024-09-26T09:33:32.577Z&toDate=2024-09-26T09:33:32.577Z&page=1&pageSize=50&includeProducts=false&includeCardMessages=false","host":["https://eservicespre.hoicom.net"],"path":["api","v0","gifts","orders"],"query":[{"description":"Optional transaction ID to filter by.","key":"transactionId","value":"string"},{"description":"Optional external reference to filter by.","key":"externalReference","value":"string"},{"description":"Optional transaction status to filter by (enum name, e.g. \"Completed\").","key":"status","value":"string"},{"description":"Optional start date for filtering.","key":"fromDate","value":"2024-09-26T09:33:32.577Z"},{"description":"Optional end date for filtering.","key":"toDate","value":"2024-09-26T09:33:32.577Z"},{"description":"Page number for pagination (default: 1).","key":"page","value":"1"},{"description":"Number of items per page (default: 50).","key":"pageSize","value":"50"},{"description":"Include product details in the response (default: false).","key":"includeProducts","value":"false"},{"description":"Include card messages in the response (default: false).","key":"includeCardMessages","value":"false"}]}},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"e5dc07e1-57f7-4abe-b84a-80325961cc82"}],"id":"929999d6-c4ee-4663-9e8d-79bb2ffaefb2","description":"<p>The Gifts service enables ordering and delivering physical gift products (flowers, chocolates, gift baskets, etc.) to recipients. It covers the full lifecycle — from browsing available products and locations, to placing orders and tracking their fulfillment status.</p>\n<hr />\n<h2 id=\"order-lifecycle\">Order Lifecycle</h2>\n<p>A gift order follows this flow:</p>\n<ol>\n<li><p><strong>Browse locations</strong> — get available locations with fulfillment centers</p>\n</li>\n<li><p><strong>Browse products</strong> — search and filter products by fulfillment center</p>\n</li>\n<li><p><strong>Check delivery slots</strong> — get available time slots for the chosen date and fulfillment center</p>\n</li>\n<li><p><strong>Place order</strong> — submit an asynchronous order with recipient, delivery, and product details</p>\n</li>\n<li><p><strong>Track order</strong> — poll the order status and processing stage until fulfillment</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"processing-stage\">Processing Stage</h2>\n<p>The <code>processingStage</code> field provides detailed fulfillment progress, independent of the overall status. It tracks the physical journey of the order:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Stage</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>OrderSubmitted</strong></td>\n<td>The order has been submitted to the fulfillment partner.</td>\n</tr>\n<tr>\n<td><strong>OrderConfirmed</strong></td>\n<td>The fulfillment partner has confirmed and accepted the order.</td>\n</tr>\n<tr>\n<td><strong>PreparingOrder</strong></td>\n<td>The order is being prepared (printed, assembled, quality checked, packed).</td>\n</tr>\n<tr>\n<td><strong>OutForDelivery</strong></td>\n<td>The order has left the fulfillment center and is on its way to the recipient.</td>\n</tr>\n<tr>\n<td><strong>Delivered</strong></td>\n<td>The order has been successfully delivered to the recipient.</td>\n</tr>\n<tr>\n<td><strong>Cancelled</strong></td>\n<td>The order has been cancelled.</td>\n</tr>\n<tr>\n<td><strong>Rescheduled</strong></td>\n<td>The delivery has been rescheduled to a new date or time.</td>\n</tr>\n<tr>\n<td><strong>Returned</strong></td>\n<td>The order was returned after a failed delivery attempt.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"typical-progression\">Typical progression</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>OrderSubmitted → OrderConfirmed → PreparingOrder → OutForDelivery → Delivered\n\n</code></pre><hr />\n<h2 id=\"optional-includes\">Optional Includes</h2>\n<p>Order responses can include additional detail via query parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>includeProducts</code></td>\n<td><code>false</code></td>\n<td>Include the list of products in the order.</td>\n</tr>\n<tr>\n<td><code>includeCardMessages</code></td>\n<td><code>false</code></td>\n<td>Include card/gift messages attached to the order.</td>\n</tr>\n</tbody>\n</table>\n</div><p>These apply to both single order (<code>GET /orders/{id}</code>) and order list (<code>GET /orders</code>) endpoints. Products and card messages are also available as dedicated sub-endpoints:</p>\n<ul>\n<li><p><code>GET /orders/{id}/products</code></p>\n</li>\n<li><p><code>GET /orders/{id}/card-messages</code></p>\n</li>\n</ul>\n","_postman_id":"929999d6-c4ee-4663-9e8d-79bb2ffaefb2"}],"variable":[{"key":"baseUrl","value":"https://eservicespre.hoicom.net"}]}