{"info":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","description":"<html><head></head><body><h1 id=\"healthpay-payment-gateway-merchant-api-documentation\">HealthPay Payment Gateway Merchant API Documentation</h1>\n<p><strong>Version:</strong> 1.0<br><strong>Audience:</strong> Merchant developers, technical teams, and integration partners<br><strong>Source:</strong> HealthPay Merchant API Postman collection<br><strong>Last updated:</strong> 23 September 2026</p>\n<hr>\n<h1 id=\"1-introduction\">1. Introduction</h1>\n<h2 id=\"11-what-is-healthpay\">1.1 What is HealthPay?</h2>\n<p>HealthPay provides a merchant-facing API for creating payment orders and checkout links and for managing related payment operations such as refunds, invoices, subscriptions, balances, settlements, and card-session tokenization.</p>\n<p>The supplied collection separates the API into two HealthPay services:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Service</th>\n<th>Base URL</th>\n<th>Used for</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Gateway</td>\n<td><code>https://gateway.pg.healthpay.com.eg</code></td>\n<td>Orders and card sessions</td>\n</tr>\n<tr>\n<td>Dashboard/API</td>\n<td><code>https://dashboard.healthpay.com.eg</code></td>\n<td>Checkout links, refunds, invoices, subscriptions, balance and settlements</td>\n</tr>\n</tbody>\n</table>\n</div><p>The collection description states that order creation/checkout is split between these services and that the merchant should configure an API key before running requests.</p>\n<h2 id=\"12-what-a-merchant-can-do\">1.2 What a merchant can do</h2>\n<p>The supplied API collection covers:</p>\n<ul>\n<li>Create a payment order</li>\n<li>Retrieve an order by UUID</li>\n<li>Retrieve an order by internal ID</li>\n<li>Cancel an order</li>\n<li>Generate a checkout URL</li>\n<li>List refund requests</li>\n<li>Request a full or partial refund</li>\n<li>Retrieve a refund</li>\n<li>List invoices</li>\n<li>Create a draft invoice</li>\n<li>Retrieve an invoice</li>\n<li>Send an invoice</li>\n<li>Download an invoice PDF</li>\n<li>Void an invoice</li>\n<li>Delete a draft invoice</li>\n<li>List subscriptions</li>\n<li>Create a subscription</li>\n<li>Pause a subscription</li>\n<li>Resume a subscription</li>\n<li>Cancel a subscription</li>\n<li>Retrieve the current ledger balance</li>\n<li>Retrieve settlement history</li>\n<li>Create a card-iframe session</li>\n</ul>\n<h2 id=\"13-recommended-integration-path\">1.3 Recommended integration path</h2>\n<p>For a standard payment:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">Merchant System\n      |\n      | 1. Create Order\n      v\nHealthPay Gateway\n      |\n      | 2. Return order UUID\n      v\nMerchant System\n      |\n      | 3. Create Checkout URL\n      v\nHealthPay\n      |\n      | 4. Return checkout URL\n      v\nMerchant\n      |\n      | 5. Redirect customer\n      v\nCustomer\n      |\n      | 6. Pay\n      v\nHealthPay Checkout\n      |\n      +--  --&gt; Merchant notification URL (if configured)\n      |\n      v\nMerchant System\n      |\n      | 7. Verify order status\n      v\nHealthPay\n\n</code></pre>\n<p>The collection explicitly demonstrates creating an order, storing its UUID, creating a checkout URL from that UUID, and looking the order up again after payment.</p>\n<hr>\n<h1 id=\"2-getting-started\">2. Getting Started</h1>\n<h2 id=\"21-prerequisites\">2.1 Prerequisites</h2>\n<p>Before integrating, the merchant needs:</p>\n<ol>\n<li>A HealthPay merchant account.</li>\n<li>A HealthPay API key.</li>\n<li>A server-side application capable of making HTTPS requests.</li>\n<li>A publicly reachable notification/webhook URL if the merchant uses the <code>notificationUrl</code> field.</li>\n<li>A browser/client application if the merchant uses the checkout page or card iframe.</li>\n</ol>\n<p>The collection states that the test API key is obtained from:</p>\n<p><strong>Dashboard → Developer → API keys</strong></p>\n<h2 id=\"22-api-credentials\">2.2 API credentials</h2>\n<p>The collection uses:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">Authorization: Bearer YOUR_API_KEY\n\n</code></pre>\n<p>The Postman collection defines a collection-level Bearer authentication token whose value is <code></code>.</p>\n<h3 id=\"never-expose-the-api-key\">Never expose the API key</h3>\n<p>The API key should be kept server-side.</p>\n<p>Do not:</p>\n<ul>\n<li>Put the API key in browser JavaScript.</li>\n<li>Put the API key inside a mobile application.</li>\n<li>Commit the API key to Git.</li>\n<li>Send the API key to customers.</li>\n<li>Put the API key in publicly accessible frontend code.</li>\n</ul>\n<p>The supplied collection does not define API-key rotation, scopes, expiration, or permissions. These should be confirmed by HealthPay before being documented as supported behavior.</p>\n<h2 id=\"23-base-urls\">2.3 Base URLs</h2>\n<h3 id=\"gateway-api\">Gateway API</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">https://gateway.pg.healthpay.com.eg\n\n</code></pre>\n<p>Used by the supplied collection for:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">POST /v1/orders\nGET  /v1/orders/uuid/{order_uuid}\nGET  /v1/orders/{order_id}\nPOST /v1/orders/{order_id}/cancel\nPOST /v1/card-sessions\n\n</code></pre>\n<h3 id=\"dashboard-api\">Dashboard API</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">https://dashboard.healthpay.com.eg\n\n</code></pre>\n<p>Used by the supplied collection for:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">POST   /api/v1/orders/{order_uuid}/checkout-url\nGET    /api/v1/refunds\nPOST   /api/v1/refunds\nGET    /api/v1/refunds/{refund_id}\nGET    /api/v1/invoices\nPOST   /api/v1/invoices\nGET    /api/v1/invoices/{invoice_uuid}\nPOST   /api/v1/invoices/{invoice_uuid}/send\nGET    /api/v1/invoices/{invoice_uuid}/pdf\nPOST   /api/v1/invoices/{invoice_uuid}/void\nDELETE /api/v1/invoices/{invoice_uuid}\nGET    /api/v1/subscriptions\nPOST   /api/v1/subscriptions\nPOST   /api/v1/subscriptions/{subscription_uuid}/pause\nPOST   /api/v1/subscriptions/{subscription_uuid}/resume\nPOST   /api/v1/subscriptions/{subscription_uuid}/cancel\nGET    /api/v1/balance\nGET    /api/v1/settlements\n\n</code></pre>\n<h2 id=\"24-common-headers\">2.4 Common headers</h2>\n<p>For JSON requests:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">Authorization: Bearer YOUR_API_KEY\nContent-Type: application/json\n\n</code></pre>\n<p>GET requests in the supplied collection do not define a <code>Content-Type</code> header.</p>\n<h2 id=\"25-your-first-request\">2.5 Your first request</h2>\n<p>Start with <strong>Create Order</strong>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X POST \"https://gateway.pg.healthpay.com.eg/v1/orders\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"environment\": \"test\",\n    \"reference\": \"ORDER-10001\",\n    \"amount\": 100,\n    \"currency\": \"EGP\",\n    \"apiOperation\": \"PAY\",\n    \"notificationUrl\": \"https://merchant.example.com/webhooks/healthpay\",\n    \"city\": \"CAIRO\",\n    \"country\": \"EGY\",\n    \"street\": \"12 Tahrir Street\"\n  }'\n\n</code></pre>\n<p>The collection expects a successful response to contain a string <code>uuid</code>.</p>\n<hr>\n<h1 id=\"3-integration-flow\">3. Integration Flow</h1>\n<h2 id=\"31-standard-payment-flow\">3.1 Standard payment flow</h2>\n<h3 id=\"step-1--create-an-order\">Step 1 — Create an order</h3>\n<p>Call:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /v1/orders\n\n</code></pre>\n<p>Save the returned order UUID.</p>\n<h3 id=\"step-2--create-the-checkout-url\">Step 2 — Create the checkout URL</h3>\n<p>Call:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /api/v1/orders/{order_uuid}/checkout-url\n\n</code></pre>\n<p>The response contains <code>checkoutUrl</code>.</p>\n<h3 id=\"step-3--send-the-customer-to-checkout\">Step 3 — Send the customer to checkout</h3>\n<p>Open the returned checkout URL in the customer's browser.</p>\n<h3 id=\"step-4--customer-pays\">Step 4 — Customer pays</h3>\n<p>The customer completes payment on the HealthPay checkout page.</p>\n<h3 id=\"step-5--determine-the-final-payment-status\">Step 5 — Determine the final payment status</h3>\n<p>The collection provides:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/orders/uuid/{order_uuid}\n\n</code></pre>\n<p>The collection description specifically says to run this again after paying through the checkout URL to see the order status change to a success/failure state.</p>\n<h3 id=\"step-6--process-the-result\">Step 6 — Process the result</h3>\n<p>The merchant should only fulfill the order after its own integration has confirmed the final HealthPay order/payment state.</p>\n<blockquote>\n<p>The exact complete list of order statuses and their meanings is not defined in the supplied collection and must be confirmed from the API implementation before being published as a fixed status table. </p>\n</blockquote>\n<hr>\n<h1 id=\"4-orders-api\">4. Orders API</h1>\n<h2 id=\"41-create-order\">4.1 Create Order</h2>\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://gateway.pg.healthpay.com.eg/v1/orders\n\n</code></pre>\n<h3 id=\"authentication\">Authentication</h3>\n<p>Bearer API key.</p>\n<h3 id=\"request-body\">Request body</h3>\n<p>The supplied collection demonstrates:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"environment\": \"test\",\n  \"reference\": \"POSTMAN-TEST-001\",\n  \"amount\": 100,\n  \"currency\": \"EGP\",\n  \"apiOperation\": \"PAY\",\n  \"notificationUrl\": \"https://example.com/webhooks/healthpay\",\n  \"city\": \"CAIRO\",\n  \"country\": \"EGY\",\n  \"street\": \"12 Tahrir Street\"\n}\n\n</code></pre>\n<h3 id=\"fields\">Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Example</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>environment</code></td>\n<td><code>test</code></td>\n<td>Environment value demonstrated by the collection</td>\n</tr>\n<tr>\n<td><code>reference</code></td>\n<td><code>POSTMAN-TEST-001</code></td>\n<td>Merchant's order/reference value</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td><code>100</code></td>\n<td>Payment amount</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td><code>EGP</code></td>\n<td>Currency</td>\n</tr>\n<tr>\n<td><code>apiOperation</code></td>\n<td><code>PAY</code></td>\n<td>Operation demonstrated by the collection</td>\n</tr>\n<tr>\n<td><code>notificationUrl</code></td>\n<td>HTTPS URL</td>\n<td>Merchant notification endpoint</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td><code>CAIRO</code></td>\n<td>Customer/order location information</td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td><code>EGY</code></td>\n<td>Country</td>\n</tr>\n<tr>\n<td><code>street</code></td>\n<td><code>12 Tahrir Street</code></td>\n<td>Street</td>\n</tr>\n</tbody>\n</table>\n</div><p>The collection does not specify which fields are formally mandatory, field-length limits, accepted currencies, or amount precision rules. Those should be confirmed from the API implementation.</p>\n<h3 id=\"successful-response\">Successful response</h3>\n<p>The Postman test expects HTTP <code>200</code> or <code>201</code> and requires:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"uuid\": \"...\"\n}\n\n</code></pre>\n<p>The UUID is saved as the collection variable <code>order_uuid</code>.</p>\n<h2 id=\"42-look-up-order-by-uuid\">4.2 Look up order by UUID</h2>\n<h3 id=\"endpoint-1\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://gateway.pg.healthpay.com.eg/v1/orders/uuid/{order_uuid}\n\n</code></pre>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl \"https://gateway.pg.healthpay.com.eg/v1/orders/uuid/ORDER-UUID\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n\n</code></pre>\n<p>The supplied collection expects HTTP <code>200</code>.</p>\n<p>Use this endpoint when the merchant has the HealthPay order UUID.</p>\n<h2 id=\"43-look-up-order-by-id\">4.3 Look up order by ID</h2>\n<h3 id=\"endpoint-2\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://gateway.pg.healthpay.com.eg/v1/orders/{order_id}\n\n</code></pre>\n<p>The collection extracts <code>_id</code> from the UUID lookup response and stores it as <code>order_id</code>.</p>\n<p>Use the ID endpoint when the merchant has the internal order ID.</p>\n<h2 id=\"44-cancel-order\">4.4 Cancel order</h2>\n<h3 id=\"endpoint-3\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://gateway.pg.healthpay.com.eg/v1/orders/{order_id}/cancel\n\n</code></pre>\n<h3 id=\"request\">Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"reason\": \"Customer cancelled the order\"\n}\n\n</code></pre>\n<p>The collection notes that cancellation is refused if the order is already paid or mid-flight.</p>\n<p>Use cancellation only for an order that should no longer proceed to payment.</p>\n<hr>\n<h1 id=\"5-checkout-api\">5. Checkout API</h1>\n<h2 id=\"51-get-checkout-url\">5.1 Get Checkout URL</h2>\n<h3 id=\"endpoint-4\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://dashboard.healthpay.com.eg/api/v1/orders/{order_uuid}/checkout-url\n\n</code></pre>\n<h3 id=\"request-1\">Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"customer_name\": \"Test Customer\",\n  \"customer_email\": \"test@example.com\",\n  \"customer_mobile\": \"+201001234567\"\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>The supplied Postman test expects HTTP <code>200</code> and a string:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"checkoutUrl\": \"...\"\n}\n\n</code></pre>\n<p>The collection stores the value in <code>checkout_url</code>.</p>\n<h2 id=\"52-customer-checkout\">5.2 Customer checkout</h2>\n<p>After receiving <code>checkoutUrl</code>, redirect or open the customer in that URL.</p>\n<p>Example server-side response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">Create order\n    ↓\nCreate checkout URL\n    ↓\nReceive checkoutUrl\n    ↓\nRedirect customer to checkoutUrl\n\n</code></pre>\n<h2 id=\"53-checkout-test-cards\">5.3 Checkout test cards</h2>\n<p>The supplied collection provides these test cards:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Card</th>\n<th>Expiry</th>\n<th>CVV</th>\n<th>Expected result</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>4111 1111 1111 1111</code></td>\n<td><code>12/26</code></td>\n<td><code>123</code></td>\n<td>Visa — success</td>\n</tr>\n<tr>\n<td><code>4111 1111 1111 1112</code></td>\n<td><code>12/26</code></td>\n<td><code>123</code></td>\n<td>Visa — hard decline</td>\n</tr>\n<tr>\n<td><code>5123 4567 8901 2346</code></td>\n<td><code>12/25</code></td>\n<td><code>123</code></td>\n<td>Mastercard — success</td>\n</tr>\n<tr>\n<td><code>5078 0362 3198 5581</code></td>\n<td><code>05/25</code></td>\n<td><code>632</code></td>\n<td>Meeza — success</td>\n</tr>\n</tbody>\n</table>\n</div><p>These values are test credentials supplied by the collection and must not be used for production transactions.</p>\n<blockquote>\n<p>The supplied collection contains expiry dates that are now historical relative to the document date. Confirm whether the sandbox still accepts these exact cards before publishing them as currently valid test credentials. </p>\n</blockquote>\n<hr>\n<h1 id=\"6-webhooks-notifications\">6. Webhooks / Notifications</h1>\n<h2 id=\"61-notification-url\">6.1 Notification URL</h2>\n<p>The order request supports:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"notificationUrl\": \"https://merchant.example.com/webhooks/healthpay\"\n}\n\n</code></pre>\n<p>The field is demonstrated in the Create Order request.</p>\n<h2 id=\"62-merchant-endpoint-requirements\">6.2 Merchant endpoint requirements</h2>\n<p>The merchant's endpoint should:</p>\n<ol>\n<li>Be reachable by HealthPay.</li>\n<li>Use HTTPS in production.</li>\n<li>Accept the notification request.</li>\n<li>Validate the received data.</li>\n<li>Locate the corresponding merchant order.</li>\n<li>Verify the current HealthPay order/payment state.</li>\n<li>Make processing idempotent.</li>\n<li>Return an appropriate HTTP response.</li>\n</ol>\n<h2 id=\"63-important-limitation\">6.3 Important limitation</h2>\n<p>The supplied collection does <strong>not</strong> define:</p>\n<ul>\n<li>Webhook payload schema</li>\n<li>Webhook event names</li>\n<li>Signature header</li>\n<li>Signature algorithm</li>\n<li>Retry schedule</li>\n<li>Retry count</li>\n<li>Delivery timeout</li>\n<li>Whether notifications are sent once or repeatedly</li>\n<li>Expected merchant response body</li>\n<li>Event ordering guarantees</li>\n</ul>\n<p>Therefore these items should not be guessed. They must be confirmed from the HealthPay webhook implementation before merchants rely on them.</p>\n<h2 id=\"64-recommended-payment-verification\">6.4 Recommended payment verification</h2>\n<p>A notification should not by itself be treated as proof of a successful payment unless the notification contract explicitly guarantees that behavior.</p>\n<p>The collection provides an order lookup endpoint that can be used to retrieve the current order state:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/orders/uuid/{order_uuid}\n\n</code></pre>\n<p>The merchant integration should use the documented HealthPay status as the source for fulfillment.</p>\n<hr>\n<h1 id=\"7-refunds\">7. Refunds</h1>\n<h2 id=\"71-list-refund-requests\">7.1 List refund requests</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/refunds\n\n</code></pre>\n<p>Returns the merchant's refund requests according to the API's response contract.</p>\n<p>Pagination/filter parameters are not defined in the supplied collection.</p>\n<h2 id=\"72-request-a-refund\">7.2 Request a refund</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://dashboard.healthpay.com.eg/api/v1/refunds\n\n</code></pre>\n<h3 id=\"full-refund\">Full refund</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_uuid\": \"\",\n  \"reason\": \"Customer requested refund\"\n}\n\n</code></pre>\n<p>The collection explicitly states that omitting <code>amount</code> requests a full refund.</p>\n<h3 id=\"partial-refund\">Partial refund</h3>\n<p>The collection states that an <code>amount</code> may be supplied for a partial refund, but does not provide a sample payload. A likely structure is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_uuid\": \"ORDER-UUID\",\n  \"amount\": 50,\n  \"reason\": \"Partial refund\"\n}\n\n</code></pre>\n<blockquote>\n<p>Confirm the exact partial-refund field type and rules before publishing this example as a guaranteed contract. </p>\n</blockquote>\n<h2 id=\"73-refund-prerequisites\">7.3 Refund prerequisites</h2>\n<p>The collection states that the order must be settled/paid before requesting a refund.</p>\n<p>The request is queued for admin review.</p>\n<p>The collection says the refund can be approved from:</p>\n<p><strong>Admin → Refunds → Refund Requests</strong></p>\n<h2 id=\"74-look-up-refund\">7.4 Look up refund</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/refunds/{refund_id}\n\n</code></pre>\n<p>The refund ID is returned by the refund request and stored in the Postman variable <code>refund_id</code>.</p>\n<h2 id=\"75-refund-lifecycle\">7.5 Refund lifecycle</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">Paid Order\n    ↓\nRefund Request\n    ↓\nPending Review\n    ↓\nAdmin Approval\n    ↓\nRefund Processing\n    ↓\nFinal Refund Result\n\n</code></pre>\n<p>The collection only explicitly documents the review/approval stage. Exact refund status values are not supplied.</p>\n<hr>\n<h1 id=\"8-invoices\">8. Invoices</h1>\n<h2 id=\"81-list-invoices\">8.1 List invoices</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/invoices\n\n</code></pre>\n<h2 id=\"82-create-draft-invoice\">8.2 Create draft invoice</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://dashboard.healthpay.com.eg/api/v1/invoices\n\n</code></pre>\n<h3 id=\"example\">Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"customer_name\": \"Test Customer\",\n  \"customer_email\": \"test@example.com\",\n  \"currency\": \"EGP\",\n  \"due_date\": \"2026-10-01\",\n  \"items\": [\n    {\n      \"description\": \"Consultation\",\n      \"quantity\": 1,\n      \"unit_price\": 500\n    }\n  ]\n}\n\n</code></pre>\n<p>The response's <code>uuid</code> is saved as <code>invoice_uuid</code>.</p>\n<h2 id=\"83-invoice-fields\">8.3 Invoice fields</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Example</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>customer_name</code></td>\n<td><code>Test Customer</code></td>\n<td>Customer name</td>\n</tr>\n<tr>\n<td><code>customer_email</code></td>\n<td><code>test@example.com</code></td>\n<td>Customer email</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td><code>EGP</code></td>\n<td>Invoice currency</td>\n</tr>\n<tr>\n<td><code>due_date</code></td>\n<td><code>2026-10-01</code></td>\n<td>Invoice due date</td>\n</tr>\n<tr>\n<td><code>items</code></td>\n<td>array</td>\n<td>Invoice line items</td>\n</tr>\n<tr>\n<td><code>items[].description</code></td>\n<td><code>Consultation</code></td>\n<td>Item description</td>\n</tr>\n<tr>\n<td><code>items[].quantity</code></td>\n<td><code>1</code></td>\n<td>Quantity</td>\n</tr>\n<tr>\n<td><code>items[].unit_price</code></td>\n<td><code>500</code></td>\n<td>Unit price</td>\n</tr>\n</tbody>\n</table>\n</div><p>The collection does not define validation rules or maximum values for these fields.</p>\n<h2 id=\"84-look-up-invoice\">8.4 Look up invoice</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/invoices/{invoice_uuid}\n\n</code></pre>\n<h2 id=\"85-send-invoice\">8.5 Send invoice</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://dashboard.healthpay.com.eg/api/v1/invoices/{invoice_uuid}/send\n\n</code></pre>\n<p>The request changes the invoice into a payable state according to the endpoint name and collection organization.</p>\n<h2 id=\"86-download-invoice-pdf\">8.6 Download invoice PDF</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/invoices/{invoice_uuid}/pdf\n\n</code></pre>\n<p>The response is expected to represent/download the invoice PDF.</p>\n<h2 id=\"87-void-invoice\">8.7 Void invoice</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://dashboard.healthpay.com.eg/api/v1/invoices/{invoice_uuid}/void\n\n</code></pre>\n<p>The collection states that voiding is blocked once the invoice has been paid.</p>\n<h2 id=\"88-delete-draft-invoice\">8.8 Delete draft invoice</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">DELETE https://dashboard.healthpay.com.eg/api/v1/invoices/{invoice_uuid}\n\n</code></pre>\n<p>The collection states that deletion works only for a draft that has not been sent.</p>\n<h2 id=\"89-invoice-lifecycle\">8.9 Invoice lifecycle</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">Draft\n  |\n  +--  --&gt; Delete\n  |\n  v\nSend\n  |\n  v\nPayable\n  |\n  v\nPaid\nDraft/Payable\n  |\n  v\nVoid\n\n</code></pre>\n<p>The exact API status values are not supplied by the collection.</p>\n<hr>\n<h1 id=\"9-subscriptions\">9. Subscriptions</h1>\n<h2 id=\"91-list-subscriptions\">9.1 List subscriptions</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/subscriptions\n\n</code></pre>\n<h2 id=\"92-create-subscription\">9.2 Create subscription</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://dashboard.healthpay.com.eg/api/v1/subscriptions\n\n</code></pre>\n<h3 id=\"example-1\">Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"customer_name\": \"Test Customer\",\n  \"customer_email\": \"test@example.com\",\n  \"currency\": \"EGP\",\n  \"interval_unit\": \"month\",\n  \"interval_count\": 1,\n  \"due_days\": 7,\n  \"items\": [\n    {\n      \"description\": \"Monthly plan\",\n      \"quantity\": 1,\n      \"unit_price\": 300\n    }\n  ]\n}\n\n</code></pre>\n<p>The response's <code>uuid</code> is stored as <code>subscription_uuid</code>.</p>\n<h2 id=\"93-subscription-behavior\">9.3 Subscription behavior</h2>\n<p>The collection description states:</p>\n<blockquote>\n<p>A normal invoice is automatically generated and sent every billing cycle; no card is charged silently. </p>\n</blockquote>\n<p>Therefore the documented flow is invoice-based rather than silent automatic card charging.</p>\n<h2 id=\"94-billing-interval\">9.4 Billing interval</h2>\n<p>The example uses:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"interval_unit\": \"month\",\n  \"interval_count\": 1\n}\n\n</code></pre>\n<p>The collection does not define the complete set of accepted <code>interval_unit</code> values. Confirm supported units before documenting them as exhaustive.</p>\n<h2 id=\"95-due-days\">9.5 Due days</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"due_days\": 7\n}\n\n</code></pre>\n<p>The example indicates a seven-day due period.</p>\n<p>The collection does not define whether zero/negative values are accepted or the maximum value.</p>\n<h2 id=\"96-pause-subscription\">9.6 Pause subscription</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /api/v1/subscriptions/{subscription_uuid}/pause\n\n</code></pre>\n<h2 id=\"97-resume-subscription\">9.7 Resume subscription</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /api/v1/subscriptions/{subscription_uuid}/resume\n\n</code></pre>\n<h2 id=\"98-cancel-subscription\">9.8 Cancel subscription</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /api/v1/subscriptions/{subscription_uuid}/cancel\n\n</code></pre>\n<h2 id=\"99-subscription-lifecycle\">9.9 Subscription lifecycle</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">Created\n   |\n   v\nActive\n  / \\\n /   \\\nPause  Cancel\n |\n v\nPaused\n |\n v\nResume\n |\n v\nActive\n\n</code></pre>\n<p>The exact status values are not specified by the supplied collection.</p>\n<hr>\n<h1 id=\"10-balance-settlements\">10. Balance &amp; Settlements</h1>\n<h2 id=\"101-current-ledger-balance\">10.1 Current ledger balance</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/balance\n\n</code></pre>\n<p>This is a read-only endpoint according to the collection.</p>\n<p>Use it to retrieve the current merchant ledger balance.</p>\n<h2 id=\"102-settlement-history\">10.2 Settlement history</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://dashboard.healthpay.com.eg/api/v1/settlements\n\n</code></pre>\n<p>This is also read-only.</p>\n<p>Use it to retrieve settlement batch history.</p>\n<h2 id=\"103-settlement-information\">10.3 Settlement information</h2>\n<p>The collection does not define:</p>\n<ul>\n<li>Settlement status values</li>\n<li>Settlement frequency</li>\n<li>Settlement schedule</li>\n<li>Minimum settlement amount</li>\n<li>Bank-account information</li>\n<li>Fees</li>\n<li>Settlement currency rules</li>\n<li>Pagination</li>\n<li>Settlement response schema</li>\n</ul>\n<p>These must be documented from the actual API response/implementation before being promised to merchants.</p>\n<hr>\n<h1 id=\"11-card-sessions\">11. Card Sessions</h1>\n<h2 id=\"111-what-is-a-card-session\">11.1 What is a card session?</h2>\n<p>The card-session API creates a short-lived/session token intended for use by the HealthPay card iframe.</p>\n<h2 id=\"112-create-card-iframe-session\">11.2 Create card iframe session</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://gateway.pg.healthpay.com.eg/v1/card-sessions\n\n</code></pre>\n<h3 id=\"request-2\">Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"origin\": \"https://your-store.example.com\"\n}\n\n</code></pre>\n<p>The collection requires the origin to be the exact HTTPS origin that will host the iframe.</p>\n<p>It must contain:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">scheme + host\n\n</code></pre>\n<p>and no path.</p>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">https://shop.example.com\n\n</code></pre>\n<p>Not:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-text\">https://shop.example.com/checkout\n\n</code></pre>\n<h2 id=\"113-response\">11.3 Response</h2>\n<p>The collection expects HTTP <code>201</code> and a string:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"token\": \"...\"\n}\n\n</code></pre>\n<p>The token is stored in the Postman variable <code>card_session_token</code>.</p>\n<h2 id=\"114-embed-the-card-iframe\">11.4 Embed the card iframe</h2>\n<p>The collection provides this structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-html\">&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  src=\"https://card-iframe.healthpay.com.eg/?merchant_id=YOUR_MERCHANT_ID&amp;customer_id=test-customer-1#session=YOUR_SESSION_TOKEN\"&gt;\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&amp;lt;/iframe&amp;gt;\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Replace:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;YOUR_MERCHANT_ID&lt;/code&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;test-customer-1&lt;/code&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;YOUR_SESSION_TOKEN&lt;/code&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;with the merchant/customer/session values.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;11.5 Tokenization result&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection states that the browser should listen for:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=javascript&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;window.addEventListener(&amp;#x27;message&amp;#x27;, (event) =&gt; {\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    if (event.data?.type === &amp;#x27;healthpay.card.tokenized&amp;#x27;) {\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;        // Read the tokenized card information from event.data\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    }\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;});\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The exact &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;event.data&lt;/code&gt; schema is not defined in the supplied collection.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;11.6 Important browser limitation&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection explicitly notes that Postman cannot perform the browser iframe / &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;postMessage&lt;/code&gt; handshake.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Therefore card tokenization must be tested in an actual browser environment.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;12. Error Handling&lt;/h1&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;12.1 HTTP status codes&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection explicitly expects the following successful response codes for some operations:&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;table class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;tbody class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;th class=&amp;#x27;preserveHtml&amp;#x27; &gt;Operation&lt;/th&gt;&lt;th class=&amp;#x27;preserveHtml&amp;#x27; &gt;Expected code in collection&lt;/th&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Create order&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;200&lt;/code&gt; or &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;201&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Look up order&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;200&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Get checkout URL&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;200&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Create card session&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;201&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Other endpoint-specific status codes are not defined in the collection.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;12.2 Merchant error handling&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;For every API request:&lt;/p&gt;&lt;ol class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Check the HTTP status code.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Parse the JSON response when applicable.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Log the request correlation/reference information available to your application.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Do not expose the API key in logs.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Do not treat every non-2xx response as a permanent failure.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;For payment operations, verify the final order status before fulfilling the customer&amp;#x27;s order.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;12.3 Error response format&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The supplied collection does not provide a standard HealthPay error response example.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Therefore the following should be confirmed before publishing:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=json&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;{\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  \"error\": \"...\",\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  \"message\": \"...\",\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  \"code\": \"...\",\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  \"details\": {}\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;}\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The above is only an illustrative structure and is &lt;strong class=&amp;#x27;preserveHtml&amp;#x27; &gt;not&lt;/b&gt; a HealthPay contract.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;13. Security&lt;/h1&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;13.1 API key&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Keep the API key on the merchant backend.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Example:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Customer Browser\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;       |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;       | no HealthPay secret\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;       v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Backend\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;       |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;       | Authorization: Bearer API_KEY\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;       v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HealthPay API\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;13.2 HTTPS&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;All supplied HealthPay API base URLs use HTTPS.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Merchant notification endpoints should also use HTTPS in production.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;13.3 Card data&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The supplied card-session flow is designed around a HealthPay-hosted card iframe.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection specifically describes using the iframe and receiving a tokenization event rather than directly collecting card details in Postman.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Merchants should not store or process raw card data unless their approved integration and compliance scope explicitly permits it.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;13.4 Webhook security&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The supplied collection does not document webhook signatures or verification.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Do not invent a signature-validation algorithm. Obtain the official HealthPay webhook security specification before implementing it.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;13.5 PCI considerations&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The Postman collection alone does not define HealthPay&amp;#x27;s PCI responsibilities, merchant PCI scope, SAQ requirements, or compliance obligations.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;These must be supplied separately in the merchant onboarding/compliance documentation.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;14. Testing&lt;/h1&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;14.1 Test environment&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The Create Order example uses:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=json&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;{\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  \"environment\": \"test\"\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;}\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection description identifies the API key as a test key obtained from:&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;strong class=&amp;#x27;preserveHtml&amp;#x27; &gt;Dashboard → Developer → API keys&lt;/b&gt;&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;14.2 Recommended test plan&lt;/h2&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 1 — Create order&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Expected:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HTTP &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;200&lt;/code&gt; or &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;201&lt;/code&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Response contains &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;uuid&lt;/code&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 2 — Retrieve order&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Call:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=http&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;GET /v1/orders/uuid/{order_uuid}\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Expected:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HTTP &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;200&lt;/code&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 3 — Generate checkout&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Call:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=http&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;POST /api/v1/orders/{order_uuid}/checkout-url\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Expected:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HTTP &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;200&lt;/code&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;checkoutUrl&lt;/code&gt; is present&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 4 — Successful payment&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Open the checkout URL and use a valid sandbox test card.&lt;/p&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 5 — Verify payment&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Retrieve the order again and confirm its final status.&lt;/p&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 6 — Failed payment&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Use the documented hard-decline test card and verify that the merchant does not fulfill the order.&lt;/p&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 7 — Refund&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;After a successful/settled payment:&lt;/p&gt;&lt;ol class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create a refund request.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Record the returned refund ID.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Check the refund.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete the configured approval process.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Verify the final refund result.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 8 — Invoice&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create draft\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Get invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Send invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Download PDF\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Also test:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create draft\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Delete draft\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;and:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create/send invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Void when allowed\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 9 — Subscription&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Pause\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Resume\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;  ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Cancel\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test 10 — Card session&lt;/h3&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Test:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create session\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Embed iframe\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Enter test card\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Receive postMessage tokenization event\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;15. Production / Go-Live&lt;/h1&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;15.1 Production readiness checklist&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Before going live, the merchant should verify:&lt;/p&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Credentials&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Production API credentials have been issued.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Production credentials are stored securely.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Test credentials are not used in production.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Server&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Backend communicates with HealthPay over HTTPS.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; API key is server-side.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Secrets are stored in environment variables/secret storage.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Sensitive API responses are not written to application logs.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Orders&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant reference is unique.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant stores HealthPay order UUID.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant can query order status.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant handles successful payments.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant handles failed payments.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant handles cancelled orders.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Checkout&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Checkout URL is generated correctly.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Customer is redirected correctly.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant does not assume payment success from redirect alone.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Notifications&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Notification URL is configured.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Endpoint is publicly reachable.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Endpoint uses HTTPS.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Notification processing is idempotent.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant verifies the corresponding order status.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Refunds&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant understands refund approval flow.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Full refunds have been tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Partial refunds have been tested if supported.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Invoices&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Invoice creation tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Invoice sending tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; PDF download tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Void behavior tested.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Subscriptions&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Subscription creation tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Billing cycle behavior understood.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Pause/resume tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Cancellation tested.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Settlement&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Balance endpoint tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Settlement history endpoint tested.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Merchant understands the settlement process.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Card tokenization&lt;/h3&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Card iframe origin is configured correctly.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Card iframe works on the actual merchant domain.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;postMessage&lt;/code&gt; handling is implemented.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt; Tokenization result is stored securely.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;15.2 Production URLs&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The supplied collection provides the following URLs but does not separately identify production versus sandbox base URLs:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;https://gateway.pg.healthpay.com.eg\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;https://dashboard.healthpay.com.eg\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Confirm with HealthPay whether these are the final production endpoints and whether separate sandbox endpoints exist.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16. Troubleshooting&lt;/h1&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.1 401 / authentication failure&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Check:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;API key is correct.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;API key has not been revoked.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;Authorization&lt;/code&gt; header is present.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Header uses the Bearer format.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Correct:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=http&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Authorization: Bearer YOUR_API_KEY\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.2 Order creation fails&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Check:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;JSON is valid.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;Content-Type: application/json&lt;/code&gt; is present.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;API key is valid.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;environment&lt;/code&gt; is correct.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Amount and currency are valid.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Required order fields are present.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Notification URL is valid if being supplied.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.3 Checkout URL is not generated&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Check:&lt;/p&gt;&lt;ol class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The order UUID is correct.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The order exists.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The API key is correct.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The request is sent to the Dashboard API, not the Gateway URL.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Customer information is valid.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Correct endpoint:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;https://dashboard.healthpay.com.eg/api/v1/orders/{order_uuid}/checkout-url\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.4 Payment appears successful but merchant order is not updated&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Do not rely only on the browser redirect.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Use:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=http&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;GET /v1/orders/uuid/{order_uuid}\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;and compare the current HealthPay order state with the merchant&amp;#x27;s stored state.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Also verify the notification endpoint if one is configured.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.5 Cancellation fails&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection explicitly says cancellation is refused when the order is already paid or mid-flight.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Use cancellation only for an eligible order.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.6 Refund request fails&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Confirm that:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The order has been paid/settled.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The correct &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;order_uuid&lt;/code&gt; is supplied.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The refund request is valid.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The merchant understands that the request is queued for admin review.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.7 Invoice cannot be deleted&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection states that deletion only works for an unsent draft.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.8 Invoice cannot be voided&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection states that voiding is blocked after payment.&lt;/p&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.9 Card iframe does not work&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Check:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;origin&lt;/code&gt; exactly matches the HTTPS origin hosting the iframe.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;No path is included in &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;origin&lt;/code&gt;.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The session token belongs to that origin.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;The iframe is loaded from the HealthPay card iframe URL.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Browser &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;postMessage&lt;/code&gt; handling is implemented.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Example origin:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;https://shop.example.com\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Not:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;https://shop.example.com/checkout\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;16.10 Postman card-session testing does not complete&lt;/h2&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;This is expected from the collection documentation: Postman cannot perform the browser iframe and &lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;postMessage&lt;/code&gt; handshake.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Use a browser-based test page hosted on the same origin used to create the card session.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;17. Postman Collection&lt;/h1&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The supplied Postman collection contains these folders:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;1. Orders (gateway-pg)\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Create order\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Look up order by uuid\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Look up order by id\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   └── Cancel order\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;2. Checkout (pg-lrvl)\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   └── Get checkout URL\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;3. Refunds (pg-lrvl)\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── List refund requests\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Request a refund\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   └── Look up a refund\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;4. Invoices (pg-lrvl)\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── List invoices\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Create a draft invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Look up an invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Send invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Download invoice PDF\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Void invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   └── Delete draft invoice\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;5. Subscriptions (pg-lrvl)\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── List subscriptions\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Create a subscription\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Pause subscription\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Resume subscription\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   └── Cancel subscription\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;6. Balance &amp; Settlements (pg-lrvl, read-only)\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   ├── Current ledger balance\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   └── Settlement batch history\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;7. Card Sessions (gateway-pg)\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   └── Create card-iframe session\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The collection also automatically stores intermediate values such as order UUID, order ID, checkout URL, refund ID, invoice UUID, subscription UUID, and card session token.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;18. Complete Merchant Integration Example&lt;/h1&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;18.1 Backend&lt;/h2&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Customer\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | Buy product\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Website\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | Create HealthPay order\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Backend\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | POST /v1/orders\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HealthPay\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | uuid\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Backend\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | POST /api/v1/orders/{uuid}/checkout-url\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HealthPay\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | checkoutUrl\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Backend\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | redirect\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Customer\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | payment\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HealthPay Checkout\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   +----&amp;lt;/comment&amp;gt; notificationUrl\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Backend\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | GET /v1/orders/uuid/{uuid}\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HealthPay\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | final status\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Backend\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   | fulfill order\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;   v\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Customer\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&amp;#x27;preserveHtml&amp;#x27; &gt;18.2 Example pseudo-code&lt;/h2&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=javascript&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;// 1. Create order\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;const order = await healthpay.createOrder({\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    environment: \"test\",\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    reference: merchantOrderReference,\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    amount: orderAmount,\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    currency: \"EGP\",\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    apiOperation: \"PAY\",\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    notificationUrl: webhookUrl\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;});\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;// 2. Create checkout URL\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;const checkout = await healthpay.createCheckoutUrl(order.uuid, {\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    customer_name: customer.name,\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    customer_email: customer.email,\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    customer_mobile: customer.mobile\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;});\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;// 3. Redirect customer\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;return redirect(checkout.checkoutUrl);\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;After payment:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=javascript&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;// Never fulfill solely because the customer returned to your site.\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;// Verify the HealthPay order state.\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;const order = await healthpay.getOrderByUuid(orderUuid);\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;if (isConfirmedSuccessful(order)) {\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    fulfillMerchantOrder();\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;}\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;isConfirmedSuccessful()&lt;/code&gt; must use the actual documented HealthPay status values once those values are confirmed.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;19. API Reference Summary&lt;/h1&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;table class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;tbody class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;th class=&amp;#x27;preserveHtml&amp;#x27; &gt;Method&lt;/th&gt;&lt;th class=&amp;#x27;preserveHtml&amp;#x27; &gt;Endpoint&lt;/th&gt;&lt;th class=&amp;#x27;preserveHtml&amp;#x27; &gt;Purpose&lt;/th&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/v1/orders&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Create order&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/v1/orders/uuid/{order_uuid}&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Get order by UUID&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/v1/orders/{order_id}&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Get order by ID&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/v1/orders/{order_id}/cancel&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Cancel order&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/orders/{order_uuid}/checkout-url&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Create checkout URL&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/refunds&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;List refunds&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/refunds&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Request refund&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/refunds/{refund_id}&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Get refund&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/invoices&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;List invoices&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/invoices&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Create invoice&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/invoices/{invoice_uuid}&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Get invoice&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/invoices/{invoice_uuid}/send&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Send invoice&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/invoices/{invoice_uuid}/pdf&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Download PDF&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/invoices/{invoice_uuid}/void&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Void invoice&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;DELETE&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/invoices/{invoice_uuid}&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Delete draft&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/subscriptions&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;List subscriptions&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/subscriptions&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Create subscription&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/subscriptions/{subscription_uuid}/pause&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Pause&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/subscriptions/{subscription_uuid}/resume&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Resume&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/subscriptions/{subscription_uuid}/cancel&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Cancel&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/balance&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Current balance&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;GET&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/api/v1/settlements&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Settlement history&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;POST&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;/v1/card-sessions&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Create card session&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;20. Information That Must Be Confirmed Before Publishing as Final API Contract&lt;/h1&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The supplied Postman collection is enough to document the available operations and basic integration flows, but the following are not defined in it:&lt;/p&gt;&lt;ol class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete response schemas for every endpoint.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete order status list.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete refund status list.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete invoice status list.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete subscription status list.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete settlement status list.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Error response schema.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Error code catalog.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Required/optional status of every request field.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Field validation rules and maximum lengths.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Amount precision/unit rules.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Pagination parameters and response format.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Rate limits.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;API key scopes/permissions.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;API key expiration/rotation behavior.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Webhook payload schema.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Webhook event names.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Webhook signature/authentication.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Webhook retries and timeout behavior.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Idempotency mechanism.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Production/sandbox endpoint separation.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Production test procedure.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Exact card-tokenization event payload.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Supported subscription interval units.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Refund approval/processing status transitions.&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Settlement schedule and fee behavior.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;These should be obtained from the API implementation or official HealthPay backend specification before being presented to merchants as guaranteed behavior.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;21. Merchant Support Philosophy&lt;/h1&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;A merchant should be able to complete the following without contacting HealthPay engineering:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Get credentials\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Configure API\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create order\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Create checkout\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Test payment\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Verify payment\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Configure notifications\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Handle failures\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Request refund\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Use invoices\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Use subscriptions\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Check balance\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Check settlements\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Integrate card sessions\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;      ↓\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Complete production checklist\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;If a merchant reaches a point where they need engineering assistance for one of these standard flows, the documentation should contain either a concrete example, a troubleshooting procedure, or an explicit explanation of the missing requirement.&lt;/p&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;hr class=&amp;#x27;preserveHtml&amp;#x27; contenteditable=\"false\" /&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Appendix A — Postman Variables&lt;/h1&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;table class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;tbody class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;th class=&amp;#x27;preserveHtml&amp;#x27; &gt;Variable&lt;/th&gt;&lt;th class=&amp;#x27;preserveHtml&amp;#x27; &gt;Purpose&lt;/th&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;base_gateway&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Gateway API base URL&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;base_dashboard&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Dashboard API base URL&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;api_key&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Bearer API key&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;order_uuid&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Current order UUID&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;order_id&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Current internal order ID&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;checkout_url&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Generated checkout URL&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;refund_id&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Current refund ID&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;invoice_uuid&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Current invoice UUID&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;subscription_uuid&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Current subscription UUID&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;card_session_origin&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Browser origin used for card session&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; &gt;card_session_token&lt;/code&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;Generated card session token&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27;  contenteditable=\"false\"&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Appendix B — Recommended Merchant Data Mapping&lt;/h1&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;A merchant should normally maintain its own mapping between its resources and HealthPay resources.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Example:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Order\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- merchant_reference\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- healthpay_order_uuid\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- healthpay_order_id\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- amount\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- currency\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- current_payment_status\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- checkout_url\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- created_at\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- updated_at\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;For refunds:&lt;/p&gt;&lt;pre class=&amp;#x27;preserveHtml&amp;#x27; class=text&gt;&lt;code class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant Refund\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    |\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- merchant_order_reference\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- healthpay_order_uuid\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- healthpay_refund_id\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- amount\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- reason\n&amp;#013;&lt;/div&gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;    +-- status\n&amp;#013;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;The exact status values should be populated from the confirmed HealthPay API contract.&lt;/p&gt;&lt;h1 class=&amp;#x27;preserveHtml&amp;#x27; &gt;Appendix C — Support Request Checklist&lt;/h1&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;If technical support is required, the merchant should provide:&lt;/p&gt;&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant name/identifier&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Environment&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;API endpoint&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HTTP method&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Timestamp&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Merchant reference&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HealthPay order UUID where applicable&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HealthPay resource ID where applicable&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;HTTP status code&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Sanitized response body&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Relevant request body with secrets and sensitive data removed&lt;/div&gt;&lt;/li&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;div class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Steps to reproduce&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;Never send an API key or other secret in a support ticket.&lt;/p&gt;&lt;p class=&amp;#x27;preserveHtml&amp;#x27; &gt;&lt;/p&gt;&lt;/x-turndown&gt;\n\n</code></pre>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"HealthPay Payment Gateway Merchant API Documentation","slug":"healthpay-payment-gateway-merchant-api-documentation"},{"content":"1. Introduction","slug":"1-introduction"},{"content":"2. Getting Started","slug":"2-getting-started"},{"content":"3. Integration Flow","slug":"3-integration-flow"},{"content":"4. Orders API","slug":"4-orders-api"},{"content":"5. Checkout API","slug":"5-checkout-api"},{"content":"6. Webhooks / Notifications","slug":"6-webhooks-notifications"},{"content":"7. Refunds","slug":"7-refunds"},{"content":"8. Invoices","slug":"8-invoices"},{"content":"9. Subscriptions","slug":"9-subscriptions"},{"content":"10. Balance & Settlements","slug":"10-balance-settlements"},{"content":"11. Card Sessions","slug":"11-card-sessions"}],"owner":"22876315","collectionId":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","publishedId":"2sBYB2rTNP","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"148f8c"},"publishDate":"2026-09-23T13:19:21.000Z"},"item":[{"name":"1. Orders (gateway-pg)","item":[{"name":"Create order","event":[{"listen":"test","script":{"exec":["const json = pm.response.json();","if (json.uuid) { pm.collectionVariables.set('order_uuid', json.uuid); }","pm.test('201/200 with a uuid', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201]);","  pm.expect(json.uuid).to.be.a('string');","});"],"type":"text/javascript","id":"29dd536a-53a1-4874-ad67-893b31260e43"}}],"id":"c438818a-888d-4a47-8257-4b6688a18894","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"environment\": \"test\",\n  \"reference\": \"POSTMAN-TEST-001\",\n  \"amount\": 100,\n  \"currency\": \"EGP\",\n  \"apiOperation\": \"PAY\",\n  \"notificationUrl\": \"https://example.com/webhooks/healthpay\",\n  \"city\": \"CAIRO\",\n  \"country\": \"EGY\",\n  \"street\": \"12 Tahrir Street\"\n}"},"url":"https://gateway.pg.healthpay.com.eg/v1/orders","description":"<p>Creates a test-mode order. Saves the returned uuid into  for the next requests.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["v1","orders"],"host":["https://gateway.pg.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"c438818a-888d-4a47-8257-4b6688a18894"},{"name":"Look up order by uuid","event":[{"listen":"test","script":{"exec":["const json = pm.response.json();","if (json._id) { pm.collectionVariables.set('order_id', json._id); }","pm.test('order found', function () { pm.expect(pm.response.code).to.equal(200); });"],"type":"text/javascript","id":"6945beb4-9b11-4101-a2b6-44a9e694f6be"}}],"id":"d8e2c52b-62d6-4f99-b603-01a6cd4125a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://gateway.pg.healthpay.com.eg/v1/orders/uuid/","description":"<p>Check the order's status — run this again after paying via the checkout URL to see it flip to succeeded/failed.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["v1","orders","uuid",""],"host":["https://gateway.pg.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"d8e2c52b-62d6-4f99-b603-01a6cd4125a7"},{"name":"Look up order by id","id":"daabd3ca-8f3f-4040-9f68-c2df0c018393","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://gateway.pg.healthpay.com.eg/v1/orders/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["v1","orders",""],"host":["https://gateway.pg.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"daabd3ca-8f3f-4040-9f68-c2df0c018393"},{"name":"Cancel order","id":"c0ee65b2-0b78-437d-98e0-a663a0f8fe52","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"reason\": \"Testing cancellation\"\n}"},"url":"https://gateway.pg.healthpay.com.eg/v1/orders//cancel","description":"<p>Refused if the order is already paid or mid-flight — run this on a fresh order you don't intend to pay.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["v1","orders","","cancel"],"host":["https://gateway.pg.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0ee65b2-0b78-437d-98e0-a663a0f8fe52"}],"id":"6b34151b-7216-47e6-91dc-e927d97ace4a","_postman_id":"6b34151b-7216-47e6-91dc-e927d97ace4a","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}}},{"name":"2. Checkout (pg-lrvl)","item":[{"name":"Get checkout URL","event":[{"listen":"test","script":{"exec":["const json = pm.response.json();","if (json.checkoutUrl) { pm.collectionVariables.set('checkout_url', json.checkoutUrl); }","pm.test('got a checkoutUrl', function () {","  pm.expect(pm.response.code).to.equal(200);","  pm.expect(json.checkoutUrl).to.be.a('string');","});"],"type":"text/javascript","id":"a1bb85f2-7f95-4c81-9228-ae15c3ab5b74"}}],"id":"33f44552-df01-4080-8a73-07aa48dfe747","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"customer_name\": \"Test Customer\",\n  \"customer_email\": \"test@example.com\",\n  \"customer_mobile\": \"+201001234567\"\n}"},"url":"https://dashboard.healthpay.com.eg/api/v1/orders//checkout-url","description":"<p>Turns the order into a payable link. Open  (check the response, or the collection variable after running) in a browser and pay with a test card:</p>\n<p>4111 1111 1111 1111 / 12/26 / 123 — Visa, success\n4111 1111 1111 1112 / 12/26 / 123 — Visa, hard decline\n5123 4567 8901 2346 / 12/25 / 123 — Mastercard, success\n5078 0362 3198 5581 / 05/25 / 632 — Meeza, success</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","orders","","checkout-url"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"33f44552-df01-4080-8a73-07aa48dfe747"}],"id":"e1c2e2ca-adb1-4310-98fd-24998dc9156a","_postman_id":"e1c2e2ca-adb1-4310-98fd-24998dc9156a","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}}},{"name":"3. Refunds (pg-lrvl)","item":[{"name":"List refund requests","id":"266f6667-bd02-47d2-8194-1eda20abe58e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/refunds","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","refunds"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"266f6667-bd02-47d2-8194-1eda20abe58e"},{"name":"Request a refund","event":[{"listen":"test","script":{"exec":["const json = pm.response.json();","if (json.id) { pm.collectionVariables.set('refund_id', json.id); }"],"type":"text/javascript","id":"e395815a-af78-44b2-9a17-f901080b0a01"}}],"id":"486849a1-afad-4b0e-9fb5-96b9a7357a09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"order_uuid\": \"\",\n  \"reason\": \"Testing refund flow\"\n}"},"url":"https://dashboard.healthpay.com.eg/api/v1/refunds","description":"<p>Only works on a settled (paid) order — pay via the checkout URL first. Omit \"amount\" for a full refund. Queues for admin review; approve it from Admin → Refunds → Refund Requests.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","refunds"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"486849a1-afad-4b0e-9fb5-96b9a7357a09"},{"name":"Look up a refund","id":"46abdbc4-bbd5-41f1-89fa-ead4726ad7ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/refunds/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","refunds",""],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"46abdbc4-bbd5-41f1-89fa-ead4726ad7ae"}],"id":"e68bb464-344f-4fec-83ac-02d3f3815cad","_postman_id":"e68bb464-344f-4fec-83ac-02d3f3815cad","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}}},{"name":"4. Invoices (pg-lrvl)","item":[{"name":"List invoices","id":"1fce7f4f-77c8-4dfa-bc2a-1c4048115b10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/invoices","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","invoices"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"1fce7f4f-77c8-4dfa-bc2a-1c4048115b10"},{"name":"Create a draft invoice","event":[{"listen":"test","script":{"exec":["const json = pm.response.json();","if (json.uuid) { pm.collectionVariables.set('invoice_uuid', json.uuid); }"],"type":"text/javascript","id":"b5cbcf8c-88b2-4848-9d48-7e4a794da2aa"}}],"id":"a53b0b1f-ae57-4042-8a2d-d7d2cce87dda","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"customer_name\": \"Test Customer\",\n  \"customer_email\": \"test@example.com\",\n  \"currency\": \"EGP\",\n  \"due_date\": \"2026-10-01\",\n  \"items\": [\n    { \"description\": \"Consultation\", \"quantity\": 1, \"unit_price\": 500 }\n  ]\n}"},"url":"https://dashboard.healthpay.com.eg/api/v1/invoices","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","invoices"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"a53b0b1f-ae57-4042-8a2d-d7d2cce87dda"},{"name":"Look up an invoice","id":"367159aa-b018-48ba-a373-e8e62632e6e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/invoices/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","invoices",""],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"367159aa-b018-48ba-a373-e8e62632e6e0"},{"name":"Send invoice (makes it payable)","id":"9b5effd9-affe-40cd-846c-1c8f5050d9ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/invoices//send","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","invoices","","send"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"9b5effd9-affe-40cd-846c-1c8f5050d9ad"},{"name":"Download invoice PDF","id":"1a995e46-c384-48a8-8967-22e977fb6ebe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/invoices//pdf","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","invoices","","pdf"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"1a995e46-c384-48a8-8967-22e977fb6ebe"},{"name":"Void invoice","id":"27a82c6a-9bae-413b-9621-6b49e05ba39e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/invoices//void","description":"<p>Blocked once the invoice has been paid.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","invoices","","void"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"27a82c6a-9bae-413b-9621-6b49e05ba39e"},{"name":"Delete draft invoice","id":"a28b63a7-5c0b-442d-9927-96435d73a51a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/invoices/","description":"<p>Only works on a draft that hasn't been sent yet.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","invoices",""],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"a28b63a7-5c0b-442d-9927-96435d73a51a"}],"id":"5aeac13c-dd8f-4778-87d9-12bd0f5f1fce","_postman_id":"5aeac13c-dd8f-4778-87d9-12bd0f5f1fce","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}}},{"name":"5. Subscriptions (pg-lrvl)","item":[{"name":"List subscriptions","id":"9ac1c5bc-a882-4c5f-a1c8-9b25adb8f879","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/subscriptions","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","subscriptions"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"9ac1c5bc-a882-4c5f-a1c8-9b25adb8f879"},{"name":"Create a subscription","event":[{"listen":"test","script":{"exec":["const json = pm.response.json();","if (json.uuid) { pm.collectionVariables.set('subscription_uuid', json.uuid); }"],"type":"text/javascript","id":"aab122c8-6d2a-4938-919b-3e990ab348af"}}],"id":"f3556d33-bcb9-4838-b6eb-528d91b478a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"customer_name\": \"Test Customer\",\n  \"customer_email\": \"test@example.com\",\n  \"currency\": \"EGP\",\n  \"interval_unit\": \"month\",\n  \"interval_count\": 1,\n  \"due_days\": 7,\n  \"items\": [\n    { \"description\": \"Monthly plan\", \"quantity\": 1, \"unit_price\": 300 }\n  ]\n}"},"url":"https://dashboard.healthpay.com.eg/api/v1/subscriptions","description":"<p>Auto-generates and sends a normal invoice every billing cycle — no card is ever charged silently.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","subscriptions"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"f3556d33-bcb9-4838-b6eb-528d91b478a2"},{"name":"Pause subscription","id":"63a9cb55-b6ca-440a-a192-15d4ec6092c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/subscriptions//pause","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","subscriptions","","pause"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"63a9cb55-b6ca-440a-a192-15d4ec6092c5"},{"name":"Resume subscription","id":"9b0a61e9-7531-48a1-977a-2e144d95ddf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/subscriptions//resume","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","subscriptions","","resume"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"9b0a61e9-7531-48a1-977a-2e144d95ddf3"},{"name":"Cancel subscription","id":"ebfc0eca-e4ec-4a93-9223-a95d629f22f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/subscriptions//cancel","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","subscriptions","","cancel"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"ebfc0eca-e4ec-4a93-9223-a95d629f22f6"}],"id":"cc43797d-44e7-4f0e-a450-a188831a1afe","_postman_id":"cc43797d-44e7-4f0e-a450-a188831a1afe","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}}},{"name":"6. Balance & Settlements (pg-lrvl, read-only)","item":[{"name":"Current ledger balance","id":"79d01ebc-e678-4f17-9478-0bdd82bbf58a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/balance","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","balance"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"79d01ebc-e678-4f17-9478-0bdd82bbf58a"},{"name":"Settlement batch history","id":"417a2af8-d6e9-4b46-9b08-8caa7e41a667","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://dashboard.healthpay.com.eg/api/v1/settlements","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["api","v1","settlements"],"host":["https://dashboard.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"417a2af8-d6e9-4b46-9b08-8caa7e41a667"}],"id":"192e34e6-19c0-4d9e-b7ec-33be206b4170","_postman_id":"192e34e6-19c0-4d9e-b7ec-33be206b4170","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}}},{"name":"7. Card Sessions (gateway-pg)","item":[{"name":"Create card-iframe session","event":[{"listen":"test","script":{"exec":["const json = pm.response.json();","if (json.token) { pm.collectionVariables.set('card_session_token', json.token); }","pm.test('got a token', function () {","  pm.expect(pm.response.code).to.equal(201);","  pm.expect(json.token).to.be.a('string');","});"],"type":"text/javascript","id":"b8d69064-161a-4d00-9471-b49061e7bf03"}}],"id":"b3097489-f9d8-43ba-970a-dd690035fd95","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"origin\": \"https://your-store.example.com\"\n}"},"url":"https://gateway.pg.healthpay.com.eg/v1/card-sessions","description":"<p>origin must be the exact https:// origin (scheme + host, no path) you'll embed card-iframe on — the token only works there. This request only gets you the token; actually saving a card needs a browser (Postman can't run the iframe / postMessage handshake). Next: open a blank HTML page on that same origin with</p>\n\n\n<p>(swap in the real token value — Postman variables don't resolve inside a browser) and enter a test card. Listen for window.addEventListener('message', ...) with data.type === 'healthpay.card.tokenized' to get the saved token.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}},"urlObject":{"path":["v1","card-sessions"],"host":["https://gateway.pg.healthpay.com.eg"],"query":[],"variable":[]}},"response":[],"_postman_id":"b3097489-f9d8-43ba-970a-dd690035fd95"}],"id":"449366c2-471a-4b1f-9de9-d39c781cb42c","_postman_id":"449366c2-471a-4b1f-9de9-d39c781cb42c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","id":"7ff6414d-f6f1-4d0c-9fc9-66841d4d7300","name":"HealthPay PG Merchant API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"event":[{"listen":"prerequest","script":{"id":"c96fdb12-0503-4f05-8ea4-392c9ddc46fb","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"2b65a0f8-d281-42cc-80c9-82fa969aecc5","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"base_gateway","value":"https://gateway.pg.healthpay.com.eg"},{"key":"base_dashboard","value":"https://dashboard.healthpay.com.eg"},{"key":"api_key","value":""},{"key":"order_uuid","value":""},{"key":"order_id","value":""},{"key":"checkout_url","value":""},{"key":"refund_id","value":""},{"key":"invoice_uuid","value":""},{"key":"subscription_uuid","value":""},{"key":"card_session_origin","value":"https://your-store.example.com"},{"key":"card_session_token","value":""}]}