{"info":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"42656202","collectionId":"19891c09-8068-478a-9933-9452ba0ca218","publishedId":"2sBXcKAce4","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-03-02T20:15:53.000Z"},"item":[{"name":"Checkout API","item":[{"name":"Customers","item":[{"name":"Blacklist Customer","id":"2f2d06b0-a049-46c3-98c2-0b316052cee2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"reason","value":"chargeback","type":"text"},{"key":"types[]","value":"email","type":"text","disabled":true},{"key":"types[]","value":"phone","type":"text","disabled":true},{"key":"cancel_subscriptions","value":"true","type":"text","disabled":true},{"key":"cancel_fulfillments","value":"true","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/checkout/customers/{{customer_number}}/blacklist","description":"<h1 id=\"blacklist-customer\">Blacklist Customer</h1>\n<p>Add a customer to the blacklist to prevent future transactions</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token with permission: <code>api:customers.blacklist.add</code></p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>types</td>\n<td><em>array (optional)</em>  <br />Types of customer data to blacklist. If not provided, all types will be blacklisted. Valid values: <code>email</code>, <code>phone</code>, <code>ip</code>, <code>address</code></td>\n</tr>\n<tr>\n<td>reason</td>\n<td><strong>string (required)</strong>  <br />Reason for blacklisting the customer. Minimum length: 3 characters, Maximum length: 500 characters</td>\n</tr>\n<tr>\n<td>cancel_subscriptions</td>\n<td><em>boolean (optional)</em>  <br />Whether to cancel active subscriptions. Default: true. Accepted values: true, false, 1, 0</td>\n</tr>\n<tr>\n<td>cancel_fulfillments</td>\n<td><em>boolean (optional)</em>  <br />Whether to cancel pending fulfillments. Default: true. Accepted values: true, false, 1, 0</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.customer_id</td>\n<td><strong>string</strong>  <br />The UUID of the blacklisted customer</td>\n</tr>\n<tr>\n<td>data.customer_number</td>\n<td><strong>string</strong>  <br />The unique customer number</td>\n</tr>\n<tr>\n<td>data.blacklisted_items</td>\n<td><strong>array</strong>  <br />List of items that were blacklisted (e.g., [\"Email: <a href=\"https://mailto:john@example.com\">john@example.com</a>\", \"Phone: +1234567890\"])</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions</td>\n<td><strong>object</strong>  <br />Information about canceled subscriptions</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions.count</td>\n<td><strong>integer</strong>  <br />Number of subscriptions that were canceled</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions.subscription_numbers</td>\n<td><strong>array</strong>  <br />List of subscription numbers that were canceled</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments</td>\n<td><strong>object</strong>  <br />Information about canceled fulfillments</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments.count</td>\n<td><strong>integer</strong>  <br />Number of fulfillments that were canceled</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments.fulfillment_ids</td>\n<td><strong>array</strong>  <br />List of fulfillment IDs that were canceled</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>422</td>\n<td>Customer is already blacklisted</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Customer not found</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Failed to blacklist customer due to server error</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","customers","{{customer_number}}","blacklist"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"cc726c04-b26c-4c05-a87c-025a02c29e95","name":"Success","originalRequest":{"method":"POST","header":[],"url":{"raw":"https://api.healthsuite.io/checkout/customers/{{customer_number}}/blacklist?reason=chargeback","protocol":"https","host":["api","healthsuite","io"],"path":["checkout","customers","{{customer_number}}","blacklist"],"query":[{"key":"reason","value":"chargeback"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.10"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Fri, 01 Aug 2025 03:39:08 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Customer successfully blacklisted\",\n    \"data\": {\n        \"customer_number\": \"CUST-250724-00093\",\n        \"blacklisted_items\": [\n            \"Email: ssmitham@example.net\",\n            \"Phone: +13528407944\",\n            \"IP: 164.165.94.14\",\n            \"Address: 274 Myah Valley Suite 430, New Sasha\"\n        ],\n        \"canceled_subscriptions\": {\n            \"count\": 0,\n            \"subscription_numbers\": []\n        },\n        \"canceled_fulfillments\": {\n            \"count\": 0,\n            \"fulfillment_ids\": []\n        }\n    }\n}"}],"_postman_id":"2f2d06b0-a049-46c3-98c2-0b316052cee2"},{"name":"Remove Blacklist","id":"ceed572d-dc38-4acd-82f1-23a36c86108d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"reason","value":"reversal","type":"text","uuid":"793c8c4d-7700-4ee0-a5d8-bac04a3465b9"}]},"url":"https://api.healthsuite.io/checkout/customers/{{customer_number}}/remove-blacklist","description":"<h1 id=\"remove-customer-from-blacklist\">Remove Customer from Blacklist</h1>\n<p>Remove a customer from the blacklist to allow future transactions</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token with permission: <code>api:customers.blacklist.remove</code></p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>reason</td>\n<td><strong>string (required)</strong>  <br />Reason for removing the customer from blacklist. Minimum length: 3 characters, Maximum length: 500 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.customer_id</td>\n<td><strong>string</strong>  <br />The UUID of the customer</td>\n</tr>\n<tr>\n<td>data.customer_number</td>\n<td><strong>string</strong>  <br />The unique customer number</td>\n</tr>\n<tr>\n<td>data.entries_deactivated</td>\n<td><strong>integer</strong>  <br />Number of blacklist entries that were deactivated</td>\n</tr>\n<tr>\n<td>data.previously_blacklisted</td>\n<td><strong>array</strong>  <br />List of items that were previously blacklisted (e.g., [\"Email: <a href=\"https://mailto:john@example.com\">john@example.com</a>\", \"Phone: +1234567890\"])</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>422</td>\n<td>Customer is not blacklisted</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Customer not found</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Failed to remove customer from blacklist due to server error</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","customers","{{customer_number}}","remove-blacklist"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"d6867d19-ebb3-4ed0-ac37-4558668b6be8","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"reason","value":"reversal","type":"text","uuid":"793c8c4d-7700-4ee0-a5d8-bac04a3465b9"}]},"url":"https://healthsuite.test/checkout/customers/{{customer_number}}/remove-blacklist"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.10"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Fri, 01 Aug 2025 03:58:15 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Customer successfully removed from blacklist\",\n    \"data\": {\n        \"customer_number\": \"CUST-250724-00093\",\n        \"entries_deactivated\": 4,\n        \"previously_blacklisted\": [\n            \"email\",\n            \"phone\",\n            \"ip\",\n            \"address\"\n        ]\n    }\n}"}],"_postman_id":"ceed572d-dc38-4acd-82f1-23a36c86108d"},{"name":"Blacklist Status","id":"32fe2f19-82b6-4245-a3b6-9579da157a51","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"urlencoded","urlencoded":[]},"url":"https://api.healthsuite.io/checkout/customers/{{customer_number}}/blacklist-status","description":"<h1 id=\"check-customer-blacklist-status\">Check Customer Blacklist Status</h1>\n<p>Check if a customer is blacklisted and view their blacklist details</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token with permission: <code>api:customers.blacklist.check</code></p>\n<h2 id=\"request-object\">Request Object</h2>\n<p>No request body required. The customer is identified by the customer_number in the URL path.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the customer blacklist information</td>\n</tr>\n<tr>\n<td>data.customer_id</td>\n<td><strong>string</strong>  <br />The UUID of the customer</td>\n</tr>\n<tr>\n<td>data.customer_number</td>\n<td><strong>string</strong>  <br />The unique customer number</td>\n</tr>\n<tr>\n<td>data.is_blacklisted</td>\n<td><strong>boolean</strong>  <br />Indicates whether the customer is currently blacklisted</td>\n</tr>\n<tr>\n<td>data.blacklisted_types</td>\n<td><strong>array</strong>  <br />List of blacklisted items if customer is blacklisted (e.g., [\"Email: <a href=\"https://mailto:john@example.com\">john@example.com</a>\", \"Phone: +1234567890\"]). Empty array if not blacklisted</td>\n</tr>\n<tr>\n<td>data.active_subscriptions</td>\n<td><strong>integer</strong>  <br />Number of active subscriptions the customer has</td>\n</tr>\n<tr>\n<td>data.pending_fulfillments</td>\n<td><strong>integer</strong>  <br />Number of pending fulfillments the customer has</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>404</td>\n<td>Customer not found</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Failed to check blacklist status due to server error</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","customers","{{customer_number}}","blacklist-status"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"32c60105-9a0b-482f-8a9d-bbf4524cd2cb","name":"Success","originalRequest":{"method":"GET","header":[],"url":"https://api.healthsuite.io/checkout/customers/{{customer_number}}/blacklist-status"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.10"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Fri, 01 Aug 2025 04:13:28 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"customer_number\": \"CUST-250724-00093\",\n        \"is_blacklisted\": false,\n        \"blacklisted_types\": [],\n        \"active_subscriptions\": 0,\n        \"pending_fulfillments\": 0\n    }\n}"}],"_postman_id":"32fe2f19-82b6-4245-a3b6-9579da157a51"},{"name":"Cancel Subscriptions","id":"c514e25f-00f7-4cc9-b688-bc32c06e8ac6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"reason","value":"poor","type":"text","uuid":"06a95777-6816-4d2c-aa42-9aa01939306c"},{"key":"subscription_number","value":"","type":"text","uuid":"731a002f-d3fe-418a-ab56-67433e2bb1ed","disabled":true}]},"url":"https://api.healthsuite.io/checkout/customers/{{identifier}}/cancel-subscriptions","description":"<h1 id=\"cancel-customer-subscriptions\">Cancel Customer Subscriptions</h1>\n<p>Cancel all or specific subscriptions for a customer</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token with permission: <code>api:customers.subscriptions.cancel</code></p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>reason</td>\n<td><strong>string (required)</strong>  <br />Reason for canceling the subscription(s). Minimum length: 3 characters, Maximum length: 500 characters</td>\n</tr>\n<tr>\n<td>subscription_number</td>\n<td><em>string (optional)</em>  <br />Specific subscription number to cancel. If not provided, all cancelable subscriptions for the customer will be canceled</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.customer_id</td>\n<td><strong>string</strong>  <br />The UUID of the customer</td>\n</tr>\n<tr>\n<td>data.customer_number</td>\n<td><strong>string</strong>  <br />The unique customer number</td>\n</tr>\n<tr>\n<td>data.canceled_count</td>\n<td><strong>integer</strong>  <br />Number of subscriptions that were canceled</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions</td>\n<td><strong>array</strong>  <br />List of canceled subscription details</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions[].subscription_id</td>\n<td><strong>integer</strong>  <br />Internal ID of the subscription</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions[].subscription_number</td>\n<td><strong>string</strong>  <br />Unique subscription number</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions[].previous_status</td>\n<td><strong>string</strong>  <br />Status of the subscription before cancellation</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions[].billing_interval</td>\n<td><strong>string</strong>  <br />Billing interval (e.g., \"monthly\", \"weekly\")</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions[].billing_cycle</td>\n<td><strong>integer</strong>  <br />Current billing cycle number</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions[].total_cycles</td>\n<td><strong>integer</strong>  <br />Total number of billing cycles (null for unlimited)</td>\n</tr>\n<tr>\n<td>data.canceled_subscriptions[].next_billing_at</td>\n<td><strong>string</strong>  <br />ISO 8601 timestamp of when the next billing was scheduled (before cancellation)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>422</td>\n<td>No cancelable subscriptions found or subscription does not belong to customer</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Customer or subscription not found</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Failed to cancel subscriptions due to server error</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The endpoint accepts either a customer_number or subscription_number as the identifier in the URL path</p>\n</li>\n<li><p>If a subscription_number is provided in the URL, only that subscription will be canceled</p>\n</li>\n<li><p>If a customer_number is provided in the URL and no subscription_number in the request body, all cancelable subscriptions will be canceled</p>\n</li>\n<li><p>If both URL identifier and request body subscription_number are provided, the subscription must belong to the specified customer</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","customers","{{identifier}}","cancel-subscriptions"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"8c15039b-5d4e-4c17-9b2b-4b953fe945f0","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"reason","value":"poor","type":"text","uuid":"06a95777-6816-4d2c-aa42-9aa01939306c"},{"key":"subscription_number","value":"","type":"text","uuid":"731a002f-d3fe-418a-ab56-67433e2bb1ed","disabled":true}]},"url":"https://api.healthsuite.io/checkout/customers/{{identifier}}/cancel-subscriptions"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.10"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Fri, 01 Aug 2025 04:23:38 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Subscriptions successfully canceled\",\n    \"data\": {\n        \"customer_number\": \"CUST-250724-00142\",\n        \"canceled_count\": 2,\n        \"canceled_subscriptions\": [\n            {\n                \"subscription_number\": \"SUB-250724-00042\",\n                \"previous_status\": \"paused\",\n                \"billing_interval\": 365,\n                \"billing_cycle\": 8,\n                \"total_cycles\": null,\n                \"next_billing_at\": \"2025-09-30T07:57:11+00:00\"\n            },\n            {\n                \"subscription_number\": \"SUB-250724-00041\",\n                \"previous_status\": \"paused\",\n                \"billing_interval\": 365,\n                \"billing_cycle\": 10,\n                \"total_cycles\": null,\n                \"next_billing_at\": \"2025-08-02T17:18:16+00:00\"\n            }\n        ]\n    }\n}"}],"_postman_id":"c514e25f-00f7-4cc9-b688-bc32c06e8ac6"},{"name":"Cancel Fulfillments","id":"a1e818d1-31fe-4ff1-9cf3-7fa51b711125","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"reason","value":"poor","type":"text","uuid":"c1329ab8-7023-4758-a085-f473bb644afa"},{"key":"fulfillment_number","value":"","type":"text","uuid":"6e111c27-83c0-4b6a-a628-d026b9f9c029","disabled":true}]},"url":"https://api.healthsuite.io/checkout/customers/{{identifier}}/cancel-fulfillments","description":"<h1 id=\"cancel-customer-fulfillments\">Cancel Customer Fulfillments</h1>\n<p>Cancel all or specific fulfillments for a customer</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token with permission: <code>api:customers.fulfillments.cancel</code></p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>reason</td>\n<td><strong>string (required)</strong>  <br />Reason for canceling the fulfillment(s). Minimum length: 3 characters, Maximum length: 500 characters</td>\n</tr>\n<tr>\n<td>fulfillment_number</td>\n<td><em>string (optional)</em>  <br />Specific fulfillment number to cancel. If not provided, all cancelable fulfillments for the customer will be canceled</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.customer_id</td>\n<td><strong>string</strong>  <br />The UUID of the customer</td>\n</tr>\n<tr>\n<td>data.customer_number</td>\n<td><strong>string</strong>  <br />The unique customer number</td>\n</tr>\n<tr>\n<td>data.canceled_count</td>\n<td><strong>integer</strong>  <br />Number of fulfillments that were canceled</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments</td>\n<td><strong>array</strong>  <br />List of canceled fulfillment details</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].fulfillment_id</td>\n<td><strong>integer</strong>  <br />Internal database ID of the fulfillment</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].fulfillment_number</td>\n<td><strong>string</strong>  <br />Unique fulfillment number (format: FUL-YYMMDD-00001)</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].shipping_group_number</td>\n<td><strong>string</strong>  <br />Shipping group identifier</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].order_number</td>\n<td><strong>string</strong>  <br />Order number associated with this fulfillment</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].previous_status</td>\n<td><strong>string</strong>  <br />Status of the fulfillment before cancellation</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items</td>\n<td><strong>array</strong>  <br />List of items in the fulfillment</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items[].product_id</td>\n<td><strong>integer</strong>  <br />Base product ID</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items[].product_name</td>\n<td><strong>string</strong>  <br />Name of the product</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items[].product_sku</td>\n<td><strong>string</strong>  <br />Product SKU</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items[].quantity</td>\n<td><strong>integer</strong>  <br />Quantity of the product</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items[].unit_price</td>\n<td><strong>string</strong>  <br />Price per unit</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items[].total_price</td>\n<td><strong>number</strong>  <br />Total price for this line item</td>\n</tr>\n<tr>\n<td>data.canceled_fulfillments[].items[].product_options</td>\n<td><strong>object/null</strong>  <br />Product options/variations if applicable</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Error Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>422</td>\n<td>No cancelable fulfillments found, fulfillment not cancelable, or fulfillment does not belong to customer</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Customer or fulfillment not found</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Failed to cancel fulfillments due to server error</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The endpoint accepts either a customer_number or fulfillment_number as the identifier in the URL path</p>\n</li>\n<li><p>If a fulfillment_number is provided in the URL, only that fulfillment will be canceled</p>\n</li>\n<li><p>If a customer_number is provided in the URL and no fulfillment_number in the request body, all cancelable fulfillments will be canceled</p>\n</li>\n<li><p>If both URL identifier and request body fulfillment_number are provided, the fulfillment must belong to the specified customer</p>\n</li>\n<li><p>Only fulfillments with status PENDING, PROCESSING, or ON_HOLD can be canceled</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","customers","{{identifier}}","cancel-fulfillments"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"45b2664b-1fa3-4e13-92c4-374ee5a0d775","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"reason","value":"poor","type":"text","uuid":"c1329ab8-7023-4758-a085-f473bb644afa"},{"key":"fulfillment_number","value":"","type":"text","uuid":"6e111c27-83c0-4b6a-a628-d026b9f9c029","disabled":true}]},"url":"https://api.healthsuite.io/checkout/customers/{{identifier}}/cancel-fulfillments"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.10"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Fri, 01 Aug 2025 04:49:06 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Fulfillments successfully canceled\",\n    \"data\": {\n        \"customer_number\": \"CUST-250724-00047\",\n        \"canceled_count\": 1,\n        \"canceled_fulfillments\": [\n            {\n                \"fulfillment_number\": \"FUL-250819-00002\",\n                \"shipping_group_number\": \"1708ba8e-b831-36c2-b6c5-2ecfaaff2de9\",\n                \"order_number\": \"ORD-250724-00098\",\n                \"previous_status\": \"canceled\",\n                \"items\": [\n                    {\n                        \"quantity\": 1,\n                        \"product_id\": 1,\n                        \"unit_price\": \"299.99\",\n                        \"product_sku\": \"SKU-4553wt\",\n                        \"total_price\": 299.99,\n                        \"product_name\": \"Smart Watch Pro\",\n                        \"base_quantity\": 1,\n                        \"order_quantity\": 1,\n                        \"product_options\": null\n                    },\n                    {\n                        \"quantity\": 1,\n                        \"product_id\": 4,\n                        \"unit_price\": \"399.99\",\n                        \"product_sku\": \"SKU-0517id\",\n                        \"total_price\": 399.99,\n                        \"product_name\": \"Robot Vacuum Cleaner\",\n                        \"base_quantity\": 1,\n                        \"order_quantity\": 1,\n                        \"product_options\": null\n                    },\n                    {\n                        \"quantity\": 1,\n                        \"product_id\": 5,\n                        \"unit_price\": \"49.99\",\n                        \"product_sku\": \"SKU-6171je\",\n                        \"total_price\": 49.99,\n                        \"product_name\": \"Classic Leather Wallet\",\n                        \"base_quantity\": 1,\n                        \"order_quantity\": 1,\n                        \"product_options\": null\n                    },\n                    {\n                        \"quantity\": 1,\n                        \"product_id\": 6,\n                        \"unit_price\": \"129.99\",\n                        \"product_sku\": \"SKU-2358bq\",\n                        \"total_price\": 129.99,\n                        \"product_name\": \"Sunglasses\",\n                        \"base_quantity\": 1,\n                        \"order_quantity\": 1,\n                        \"product_options\": null\n                    },\n                    {\n                        \"quantity\": 1,\n                        \"product_id\": 7,\n                        \"unit_price\": \"39.99\",\n                        \"product_sku\": \"SKU-7205vh\",\n                        \"total_price\": 39.99,\n                        \"product_name\": \"Yoga Mat\",\n                        \"base_quantity\": 1,\n                        \"order_quantity\": 1,\n                        \"product_options\": null\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"a1e818d1-31fe-4ff1-9cf3-7fa51b711125"}],"id":"9b55af8d-5503-401f-8e28-4fc6587e084d","_postman_id":"9b55af8d-5503-401f-8e28-4fc6587e084d","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Orders","item":[{"name":"Create Lead","id":"bf775423-ec20-4a3c-9ed6-14fec27aa845","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"customer[email]","value":"test@example.com","type":"text"},{"key":"customer[first_name]","value":"John","type":"text"},{"key":"customer[last_name]","value":"Doe","type":"text"},{"key":"customer[phone]","value":"5551234567","type":"text"},{"key":"shipping[address1]","value":"123 Main St","type":"text"},{"key":"shipping[address2]","value":"Apt 4B","type":"text"},{"key":"shipping[city]","value":"New York","type":"text"},{"key":"shipping[state]","value":"NY","type":"text"},{"key":"shipping[postal_code]","value":"10001","type":"text"},{"key":"shipping[country]","value":"US","type":"text"},{"key":"campaign_id","value":"1","type":"text"},{"key":"currency","value":"USD","type":"text"},{"key":"utm_source","value":"google","type":"text"},{"key":"utm_medium","value":"cpc","type":"text"},{"key":"utm_campaign","value":"summer_sale","type":"text"},{"key":"utm_term","value":"best deals","type":"text"},{"key":"utm_content","value":"banner1","type":"text"},{"key":"affiliate","value":"AFF123","type":"text"},{"key":"sub1","value":"SUB456","type":"text"},{"key":"products[0][offer_id]","value":"1","type":"text"},{"key":"products[0][quantity]","value":"1","type":"text"},{"key":"products[1][offer_id]","value":"2","type":"text"},{"key":"products[1][quantity]","value":"1","type":"text"},{"key":"ip_address","value":"192.168.1.1","type":"text"},{"key":"user_agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","type":"text"},{"key":"enrich","value":"true","type":"text","uuid":"4ad4d420-3c8c-4791-bf04-47485214c3c6","disabled":true}]},"url":"https://api.healthsuite.io/checkout/leads","description":"<h1 id=\"create-lead\">Create Lead</h1>\n<p>Create a new lead within Health Suite</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>customer[email]</td>\n<td><strong>string (required)</strong>  <br />The customer's email address</td>\n</tr>\n<tr>\n<td>customer[first_name]</td>\n<td><strong>string (required)</strong>  <br />The customer's first name. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>customer[last_name]</td>\n<td><strong>string (required)</strong>  <br />The customer's last name. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>customer[phone]</td>\n<td><em>string (optional)</em>  <br />The customer's phone number. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>shipping[address1]</td>\n<td><strong>string (required)</strong>  <br />Primary address line. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>shipping[address2]</td>\n<td><em>string (optional)</em>  <br />Secondary address line (apartment, suite, etc). Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>shipping[city]</td>\n<td><strong>string (required)</strong>  <br />City name. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>shipping[state]</td>\n<td><strong>string (required)</strong>  <br />State or province. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>shipping[postal_code]</td>\n<td><strong>string (required)</strong>  <br />ZIP or postal code. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>shipping[country]</td>\n<td><strong>string (required)</strong>  <br />Two-letter country code (ISO 3166-1 alpha-2). Maximum length: 2 characters</td>\n</tr>\n<tr>\n<td>shipping[phone]</td>\n<td><em>string (optional)</em>  <br />Phone number for shipping-related inquiries. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>campaign_id</td>\n<td><strong>string (required)</strong>  <br />Internal ID for the campaign</td>\n</tr>\n<tr>\n<td>currency</td>\n<td><strong>string (required)</strong>  <br />Three-letter currency code (ISO 4217). Must be exactly 3 characters</td>\n</tr>\n<tr>\n<td>cohort</td>\n<td><em>string (optional)</em>  <br />Cohort identifier. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>utm_source</td>\n<td><em>string (optional)</em>  <br />UTM source parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_medium</td>\n<td><em>string (optional)</em>  <br />UTM medium parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_campaign</td>\n<td><em>string (optional)</em>  <br />UTM campaign parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_term</td>\n<td><em>string (optional)</em>  <br />UTM term parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_content</td>\n<td><em>string (optional)</em>  <br />UTM content parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>affiliate</td>\n<td><em>string (optional)</em>  <br />Affiliate name. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub1</td>\n<td><em>string (optional)</em>  <br />Sub-affiliate parameter 1. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub2</td>\n<td><em>string (optional)</em>  <br />Sub-affiliate parameter 2. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub3</td>\n<td><em>string (optional)</em>  <br />Sub-affiliate parameter 3. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub4</td>\n<td><em>string (optional)</em>  <br />Sub-affiliate parameter 4. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub5</td>\n<td><em>string (optional)</em>  <br />Sub-affiliate parameter 5. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>products</td>\n<td><strong>array (required)</strong>  <br />Array of product objects to be ordered</td>\n</tr>\n<tr>\n<td>products[].offer_id</td>\n<td><strong>string (required)</strong>  <br />Internal ID for the campaign offer</td>\n</tr>\n<tr>\n<td>products[].quantity</td>\n<td><strong>integer (required)</strong>  <br />Quantity of this product. Minimum value: 1</td>\n</tr>\n<tr>\n<td>products[].price</td>\n<td><em>numeric (optional)</em>  <br />Unit price for this product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>products[].shipping_price</td>\n<td><em>numeric (optional)</em>  <br />Shipping price for this product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>ip_address</td>\n<td><em>string (optional)</em>  <br />Customer's IP address. Must be a valid IP format</td>\n</tr>\n<tr>\n<td>user_agent</td>\n<td><em>string (optional)</em>  <br />Customer's browser user agent string</td>\n</tr>\n<tr>\n<td>enrich</td>\n<td><em>string (optional)</em>  <br />Request synchronous validation and enrichment data. Accepts: true, false, 1, 0, yes, no</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.order_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the order created from the lead</td>\n</tr>\n<tr>\n<td>data.customer_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the customer created from the lead</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","leads"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"c9cf5ba3-ea7c-40bb-a834-7437cb5f4caa","name":"Create Lead Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"customer[email]","value":"test@example.com","type":"text"},{"key":"customer[first_name]","value":"John","type":"text"},{"key":"customer[last_name]","value":"Doe","type":"text"},{"key":"customer[phone]","value":"5551234567","type":"text"},{"key":"shipping[address1]","value":"123 Main St","type":"text"},{"key":"shipping[address2]","value":"Apt 4B","type":"text"},{"key":"shipping[city]","value":"New York","type":"text"},{"key":"shipping[state]","value":"NY","type":"text"},{"key":"shipping[postal_code]","value":"10001","type":"text"},{"key":"shipping[country]","value":"US","type":"text"},{"key":"campaign_id","value":"1","type":"text"},{"key":"currency","value":"USD","type":"text"},{"key":"utm_source","value":"google","type":"text"},{"key":"utm_medium","value":"cpc","type":"text"},{"key":"utm_campaign","value":"summer_sale","type":"text"},{"key":"utm_term","value":"best deals","type":"text"},{"key":"utm_content","value":"banner1","type":"text"},{"key":"affiliate_id","value":"AFF123","type":"text"},{"key":"sub_affiliate_id","value":"SUB456","type":"text"},{"key":"products[0][offer_id]","value":"1","type":"text"},{"key":"products[0][quantity]","value":"1","type":"text"},{"key":"products[1][offer_id]","value":"2","type":"text"},{"key":"products[1][quantity]","value":"1","type":"text"},{"key":"ip_address","value":"192.168.1.1","type":"text"},{"key":"user_agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","type":"text"}]},"url":"https://api.healthsuite.io/checkout/leads"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 01:59:46 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=Nc5ftQchAVTQV3lbJ7RkWGNq3cU8lWX4b8fJkJTzPIRmVEuzrVuWNkPp1oNww0lyGHqKXoOMR5ZR%2Fmdvarjw%2BhgGwirsqT6MfLMr5QmR%2B9izl1z8zoBKpVW9VMS743FO2K8%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"9239da10699572e4-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=15506&min_rtt=12915&rtt_var=6694&sent=4&recv=5&lost=0&retrans=0&sent_bytes=2808&recv_bytes=1526&delivery_rate=226093&cwnd=241&unsent_bytes=0&cid=476eec69ddb92594&ts=178&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Lead created successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-250321-00001\",\n        \"customer_number\": \"CUST-250321-00001\"\n    }\n}"}],"_postman_id":"bf775423-ec20-4a3c-9ed6-14fec27aa845"},{"name":"Process Payment","id":"bc32daee-44ec-4944-b27c-3ef4f78700d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","value":"ORD-250321-00001","key":"order_number"},{"type":"text","value":"card","key":"payment[method]"},{"type":"text","value":"4111111111111111","key":"payment[card_number]"},{"type":"text","value":"12","key":"payment[card_exp_month]"},{"type":"text","value":"2025","key":"payment[card_exp_year]"},{"type":"text","value":"123","key":"payment[card_cvv]"},{"type":"text","value":"123 Main St","key":"billing[address1]"},{"type":"text","value":"Apt 4B","key":"billing[address2]"},{"type":"text","value":"New York","key":"billing[city]"},{"type":"text","value":"NY","key":"billing[state]"},{"type":"text","value":"10001","key":"billing[postal_code]"},{"type":"text","value":"US","key":"billing[country]"},{"type":"text","value":"","key":"coupon_code","disabled":true},{"type":"text","value":"","key":"campaign_id","disabled":true},{"type":"text","value":"456 Oak Ave","key":"shipping[address1]","disabled":true},{"type":"text","value":"Suite 100","key":"shipping[address2]","disabled":true},{"type":"text","value":"Los Angeles","key":"shipping[city]","disabled":true},{"type":"text","value":"CA","key":"shipping[state]","disabled":true},{"type":"text","value":"90001","key":"shipping[postal_code]","disabled":true},{"type":"text","value":"US","key":"shipping[country]","disabled":true},{"type":"text","value":"555-123-4567","key":"shipping[phone]","disabled":true},{"type":"text","value":"555-987-6543","key":"billing[phone]","disabled":true},{"type":"text","value":"offer_abc123","key":"products[0][offer_id]","disabled":true},{"type":"text","value":"1","key":"products[0][quantity]","disabled":true},{"type":"text","value":"29.99","key":"products[0][price]","disabled":true},{"type":"text","value":"4.99","key":"products[0][shipping_price]","disabled":true},{"type":"text","value":"2.62","key":"tax_amount","disabled":true},{"type":"text","value":"0.0875","key":"tax_rate","disabled":true},{"type":"text","value":"false","key":"forceQA","disabled":true},{"type":"text","value":"1","key":"gateway_id","disabled":true},{"type":"text","value":"1","key":"payment_orchestrator_id","disabled":true},{"type":"text","value":"true","key":"terms_accepted","disabled":true},{"type":"text","value":"true","key":"privacy_accepted","disabled":true}]},"url":"https://api.healthsuite.io/checkout/orders/payment","description":"<h1 id=\"process-payment\">Process Payment</h1>\n<p>Process a payment for an existing lead that was created from the <a href=\"#0617be4e-81c0-4fa2-8747-31a0c164bab5\">Create Lead endpoint</a></p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>order_number</td>\n<td><strong>string (required)</strong><br />The order number to process payment for</td>\n</tr>\n<tr>\n<td>campaign_id</td>\n<td><em>string (optional)</em><br />Internal ID for the campaign. Must be a valid campaign</td>\n</tr>\n<tr>\n<td>payment[method]</td>\n<td><strong>string (required)</strong><br />Payment method type. Allowed values: <code>card</code> (provide card details), <code>onfile</code> (use customer's saved payment method), <code>external</code> (external/manual payment such as Zelle, Cash App, Venmo, Bank Transfer), <code>paypal_wallet</code> (PayPal Wallet with redirect flow)</td>\n</tr>\n<tr>\n<td>payment[card_number]</td>\n<td><strong>string (required for card payments)</strong><br />Credit/debit card number</td>\n</tr>\n<tr>\n<td>payment[card_exp]</td>\n<td><strong>string (conditionally required for card payments)</strong><br />Combined expiration date. Accepted formats: \"MM/YY\", \"MMYY\", \"MM/YYYY\", \"MMYYYY\". Required if card_exp_month and card_exp_year are not provided</td>\n</tr>\n<tr>\n<td>payment[card_exp_month]</td>\n<td><strong>string (conditionally required for card payments)</strong><br />Two-digit expiration month (01-12). Must be exactly 2 characters. Required if card_exp is not provided</td>\n</tr>\n<tr>\n<td>payment[card_exp_year]</td>\n<td><strong>string (conditionally required for card payments)</strong><br />Expiration year. Can be 2 digits (YY) or 4 digits (YYYY). Required if card_exp is not provided</td>\n</tr>\n<tr>\n<td>payment[card_cvv]</td>\n<td><strong>string (required for card payments)</strong><br />Card verification value. Length: 3-4 characters</td>\n</tr>\n<tr>\n<td>payment[external_payment_id]</td>\n<td><em>integer (optional)</em><br />The ID of a configured alternative payment method. Use <code>GET /v1/alternative-payments</code> to retrieve available IDs. When used with <code>method: \"external\"</code>, the transaction will be linked to the specific payment type (e.g., Zelle, Cash App). When used with <code>method: \"paypal_wallet\"</code>, selects a specific PayPal configuration if multiple exist</td>\n</tr>\n<tr>\n<td>payment[return_url]</td>\n<td><strong>string (required for paypal_wallet)</strong><br />URL to redirect the customer to after they approve the PayPal payment. Must be a valid URL</td>\n</tr>\n<tr>\n<td>payment[cancel_url]</td>\n<td><strong>string (required for paypal_wallet)</strong><br />URL to redirect the customer to if they cancel the PayPal payment. Must be a valid URL</td>\n</tr>\n<tr>\n<td>forceQA</td>\n<td><em>boolean (optional)</em><br />Forces the order into QA (quality assurance) review. Accepts: \"true\", \"false\", \"1\", \"0\"</td>\n</tr>\n<tr>\n<td>coupon_code</td>\n<td><em>string (optional)</em><br />Coupon code to apply to the order. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>shipping</td>\n<td><em>array (optional)</em><br />Shipping address object</td>\n</tr>\n<tr>\n<td>shipping[address1]</td>\n<td><strong>string (required if shipping provided)</strong><br />Primary address line. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>shipping[address2]</td>\n<td><em>string (optional)</em><br />Secondary address line (apartment, suite, etc). Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>shipping[city]</td>\n<td><strong>string (required if shipping provided)</strong><br />City name. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>shipping[state]</td>\n<td><strong>string (required if shipping provided)</strong><br />State or province. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>shipping[postal_code]</td>\n<td><strong>string (required if shipping provided)</strong><br />ZIP or postal code. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>shipping[country]</td>\n<td><strong>string (required if shipping provided)</strong><br />Two-letter country code (ISO 3166-1 alpha-2). Maximum length: 2 characters</td>\n</tr>\n<tr>\n<td>shipping[phone]</td>\n<td><em>string (optional)</em><br />Phone number. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>billing</td>\n<td><em>array (optional)</em><br />Billing address object</td>\n</tr>\n<tr>\n<td>billing[address1]</td>\n<td><em>string (optional)</em><br />Primary address line. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>billing[address2]</td>\n<td><em>string (optional)</em><br />Secondary address line (apartment, suite, etc). Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>billing[city]</td>\n<td><em>string (optional)</em><br />City name. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>billing[state]</td>\n<td><em>string (optional)</em><br />State or province. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>billing[postal_code]</td>\n<td><em>string (optional)</em><br />ZIP or postal code. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>billing[country]</td>\n<td><em>string (optional)</em><br />Two-letter country code (ISO 3166-1 alpha-2). Maximum length: 2 characters</td>\n</tr>\n<tr>\n<td>billing[phone]</td>\n<td><em>string (optional)</em><br />Phone number for billing-related inquiries. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>gateway_id</td>\n<td><em>integer (optional)</em><br />Internal ID for the payment gateway</td>\n</tr>\n<tr>\n<td>payment_orchestrator_id</td>\n<td><em>integer (optional)</em><br />Internal ID for the payment orchestrator</td>\n</tr>\n<tr>\n<td>products</td>\n<td><em>array (optional)</em><br />Array of product objects to update in the order</td>\n</tr>\n<tr>\n<td>products[].offer_id</td>\n<td><strong>string (required if products provided)</strong><br />Internal ID for the campaign offer</td>\n</tr>\n<tr>\n<td>products[].quantity</td>\n<td><strong>integer (required if products provided)</strong><br />Quantity of this product. Minimum value: 1</td>\n</tr>\n<tr>\n<td>products[].price</td>\n<td><em>numeric (optional)</em><br />Unit price for this product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>products[].shipping_price</td>\n<td><em>numeric (optional)</em><br />Shipping price for this product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>tax_amount</td>\n<td><em>numeric (optional)</em><br />Pre-calculated sales tax to charge the customer. Typically obtained from a prior call to <code>POST /checkout/tax</code>. Always honored when provided — the customer will be billed this amount regardless of the campaign's tax provider configuration. Minimum value: 0.</td>\n</tr>\n<tr>\n<td>tax_rate</td>\n<td><em>numeric (optional)</em><br />Effective tax rate used when <code>tax_amount</code> was calculated (e.g. <code>0.0875</code> for 8.875%). Stored on the order for reporting; does not affect the charged amount. Minimum value: 0.</td>\n</tr>\n<tr>\n<td>terms_accepted</td>\n<td><em>boolean (optional)</em><br />Indicates customer acceptance of terms and conditions. Accepts: \"true\", \"false\", \"1\", \"0\"</td>\n</tr>\n<tr>\n<td>privacy_accepted</td>\n<td><em>boolean (optional)</em><br />Indicates customer acceptance of privacy policy. Accepts: \"true\", \"false\", \"1\", \"0\"</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"payment-method-flows\">Payment Method Flows</h2>\n<h3 id=\"card--on-file\">Card / On File</h3>\n<p>Standard payment processing. The order is created and payment is captured immediately.</p>\n<h3 id=\"external-zelle-cash-app-venmo-bank-transfer\">External (Zelle, Cash App, Venmo, Bank Transfer)</h3>\n<p>For payments processed outside the platform. Set <code>payment.method</code> to <code>\"external\"</code> and optionally pass <code>payment.external_payment_id</code> to link the transaction to a specific alternative payment method configured in the CRM. The order completes immediately with no gateway interaction.</p>\n<h3 id=\"paypal-wallet\">PayPal Wallet</h3>\n<p>Redirect-based payment flow requiring three steps:</p>\n<ol>\n<li><strong>Process Payment</strong> — Call this endpoint with <code>payment.method</code> set to <code>\"paypal_wallet\"</code>, along with <code>return_url</code> and <code>cancel_url</code>. The response includes a <code>redirect_url</code>.</li>\n<li><strong>Customer Approval</strong> — Redirect the customer to the <code>redirect_url</code>. They log in to PayPal and approve the payment. PayPal redirects them back to your <code>return_url</code>.</li>\n<li><strong>Capture Payment</strong> — Call <code>POST /checkout/orders/capture</code> with the <code>order_number</code> to finalize the charge. Money does not move until this step.</li>\n</ol>\n<h2 id=\"tax-handling\">Tax Handling</h2>\n<p>Two ways to populate the order's tax:</p>\n<ul>\n<li><strong>Pass it in</strong> — supply <code>tax_amount</code> (and optionally <code>tax_rate</code>) in the request body. Typical flow: call <code>POST /checkout/tax</code> first to get the calculated values, then pass them here to lock in what the customer saw on the checkout page. The customer is always charged the <code>tax_amount</code> you supply.</li>\n<li><strong>Let the server compute it</strong> — omit both fields. When the campaign has an active TaxJar provider, the server auto-calculates tax against the shipping address at payment time.</li>\n</ul>\n<p><strong>Charge vs. report are separate decisions:</strong></p>\n<ul>\n<li><code>tax_amount</code> controls what the customer pays.</li>\n<li>Whether the order is forwarded to TaxJar depends on the campaign's <code>tax_enabled</code> flag + active provider. If the campaign has tax disabled, the customer is still charged the supplied <code>tax_amount</code>, but nothing is reported to TaxJar's books.</li>\n</ul>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong><br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong><br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong><br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.order_number</td>\n<td><strong>string</strong><br />Unique identifier for the order that was processed</td>\n</tr>\n<tr>\n<td>data.transaction_number</td>\n<td><strong>string</strong><br />Unique identifier for the payment transaction</td>\n</tr>\n<tr>\n<td>data.status</td>\n<td><strong>string</strong><br />Current status of the order after payment processing (\"processing\")</td>\n</tr>\n<tr>\n<td>data.gateway_descriptor</td>\n<td><strong>string</strong><br />Statement descriptor from the payment gateway used for the transaction. Only included if the gateway has a descriptor configured</td>\n</tr>\n<tr>\n<td>data.subscription_created</td>\n<td><strong>boolean</strong><br />Indicates if a subscription was created during payment processing</td>\n</tr>\n<tr>\n<td>data.total</td>\n<td><strong>number</strong><br />Total amount of the order (subtotal + shipping + tax)</td>\n</tr>\n<tr>\n<td>data.tax_amount</td>\n<td><strong>string</strong><br />Sales tax portion of the order total, formatted to 2 decimals. <code>0.00</code> when no tax was applied.</td>\n</tr>\n<tr>\n<td>data.tax_rate</td>\n<td><strong>number</strong><br />Effective tax rate recorded on the order (e.g. <code>0.0875</code> for 8.875%). <code>0</code> when no rate was set.</td>\n</tr>\n<tr>\n<td>data.currency</td>\n<td><strong>string</strong><br />Three-letter currency code (ISO 4217) used for the transaction</td>\n</tr>\n<tr>\n<td>data.redirect_url</td>\n<td><strong>string (paypal_wallet only)</strong><br />PayPal checkout URL to redirect the customer to for payment approval. Only returned when <code>payment.method</code> is <code>\"paypal_wallet\"</code></td>\n</tr>\n<tr>\n<td>data.payment_status</td>\n<td><strong>string</strong><br />Status of the payment transaction. Values: <code>completed</code>, <code>declined</code>, <code>pending_redirect</code></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","orders","payment"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"5236f353-435d-404d-9e16-267f42bc7ca6","name":"Process Payment Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"order_number","value":"ORD-250321-00001","type":"text"},{"key":"payment[method]","value":"card","type":"text"},{"key":"payment[card_number]","value":"4111111111111111","type":"text"},{"key":"payment[card_exp_month]","value":"12","type":"text"},{"key":"payment[card_exp_year]","value":"2025","type":"text"},{"key":"payment[card_cvv]","value":"123","type":"text"},{"key":"billing[address1]","value":"123 Main St","type":"text"},{"key":"billing[address2]","value":"Apt 4B","type":"text"},{"key":"billing[city]","value":"New York","type":"text"},{"key":"billing[state]","value":"NY","type":"text"},{"key":"billing[postal_code]","value":"10001","type":"text"},{"key":"billing[country]","value":"US","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders/payment"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:13:55 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=wO7xtC5U8FgDQWDTrTPEKHwSKTpLPTzYxZc77sfAX678LxELygJpa7tG9DB7XQAnHUMw4DGaXSFdbkXp7IWnpq1r86RKDUyt%2FLz7Usxut%2BmJmJ4R35P%2B2esK5XTKxDYjIRc%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"9239eec33ecbd240-ORD"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=14917&min_rtt=14417&rtt_var=6407&sent=4&recv=5&lost=0&retrans=0&sent_bytes=2809&recv_bytes=1094&delivery_rate=158506&cwnd=176&unsent_bytes=0&cid=81e16b49815f1fb3&ts=2202&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Payment processed successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-250321-00001\",\n        \"transaction_number\": \"TXN-250321-000001\",\n        \"status\": \"processing\",\n        \"subscription_created\": true,\n        \"subscription_number\": \"SUB-250321-000001\",\n        \"gateway_descriptor\": \"test descriptor\",\n        \"total\": 689.97,\n        \"currency\": \"USD\"\n    }\n}"}],"_postman_id":"bc32daee-44ec-4944-b27c-3ef4f78700d9"},{"name":"Create Order","id":"cff8897e-68fc-4359-a178-a5925877028c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"value":"test4@example.com","key":"customer[email]","type":"text"},{"value":"George","key":"customer[first_name]","type":"text"},{"value":"Foreman","key":"customer[last_name]","type":"text"},{"value":"7777777777","key":"customer[phone]","type":"text"},{"value":"123 Main St","key":"shipping[address1]","type":"text"},{"value":"Apt 4B","key":"shipping[address2]","type":"text"},{"value":"Los Angeles","key":"shipping[city]","type":"text"},{"value":"CA","key":"shipping[state]","type":"text"},{"value":"90001","key":"shipping[postal_code]","type":"text"},{"value":"US","key":"shipping[country]","type":"text"},{"value":"5551234567","key":"shipping[phone]","type":"text"},{"value":"123 Main St","key":"billing[address1]","type":"text"},{"value":"Apt 4B","key":"billing[address2]","type":"text"},{"value":"Los Angeles","key":"billing[city]","type":"text"},{"value":"CA","key":"billing[state]","type":"text"},{"value":"90001","key":"billing[postal_code]","type":"text"},{"value":"US","key":"billing[country]","type":"text"},{"value":"5551234567","key":"billing[phone]","type":"text"},{"value":"card","key":"payment[method]","type":"text"},{"value":"4111111111111111","key":"payment[card_number]","type":"text"},{"value":"12","key":"payment[card_exp_month]","type":"text"},{"value":"2025","key":"payment[card_exp_year]","type":"text"},{"value":"123","key":"payment[card_cvv]","type":"text"},{"value":"1","key":"campaign_id","type":"text"},{"value":"USD","key":"currency","type":"text"},{"value":"google","key":"utm_source","type":"text"},{"value":"cpc","key":"utm_medium","type":"text"},{"value":"summer_sale","key":"utm_campaign","type":"text"},{"value":"dtc_products","key":"utm_term","type":"text"},{"value":"banner_1","key":"utm_content","type":"text"},{"value":"AFF001","key":"affiliate","type":"text"},{"value":"SUB001","key":"sub1","type":"text"},{"value":"1","key":"products[0][offer_id]","type":"text"},{"value":"1","key":"products[0][quantity]","type":"text"},{"value":"49.98","key":"products[0][price]","type":"text","disabled":true},{"value":"4.70","key":"products[0][shipping_price]","type":"text","disabled":true},{"value":"2","key":"products[1][offer_id]","type":"text","disabled":true},{"value":"2","key":"products[1][quantity]","type":"text","disabled":true},{"value":"29.99","key":"products[1][price]","type":"text","disabled":true},{"value":"0.00","key":"products[1][shipping_price]","type":"text","disabled":true},{"value":"4.37","key":"tax_amount","type":"text","disabled":true},{"value":"0.0875","key":"tax_rate","type":"text","disabled":true},{"value":"192.168.1.2","key":"ip_address","type":"text"},{"value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","key":"user_agent","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders","description":"<h1 id=\"create-order\">Create Order</h1>\n<p>Create a new order within the CRM</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>customer[email]</td>\n<td><strong>string (required)</strong><br />The customer's email address</td>\n</tr>\n<tr>\n<td>customer[first_name]</td>\n<td><strong>string (required)</strong><br />The customer's first name. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>customer[last_name]</td>\n<td><strong>string (required)</strong><br />The customer's last name. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>customer[phone]</td>\n<td><em>string (optional)</em><br />The customer's phone number. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>shipping[address1]</td>\n<td><strong>string (required)</strong><br />Primary address line. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>shipping[address2]</td>\n<td><em>string (optional)</em><br />Secondary address line (apartment, suite, etc). Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>shipping[city]</td>\n<td><strong>string (required)</strong><br />City name. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>shipping[state]</td>\n<td><strong>string (required)</strong><br />State or province. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>shipping[postal_code]</td>\n<td><strong>string (required)</strong><br />ZIP or postal code. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>shipping[country]</td>\n<td><strong>string (required)</strong><br />Two-letter country code (ISO 3166-1 alpha-2). Maximum length: 2 characters</td>\n</tr>\n<tr>\n<td>shipping[phone]</td>\n<td><em>string (optional)</em><br />Phone number for shipping-related inquiries. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>billing[address1]</td>\n<td><em>string (optional)</em><br />Primary address line. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>billing[address2]</td>\n<td><em>string (optional)</em><br />Secondary address line (apartment, suite, etc). Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>billing[city]</td>\n<td><em>string (optional)</em><br />City name. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>billing[state]</td>\n<td><em>string (optional)</em><br />State or province. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>billing[postal_code]</td>\n<td><em>string (optional)</em><br />ZIP or postal code. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>billing[country]</td>\n<td><em>string (optional)</em><br />Two-letter country code (ISO 3166-1 alpha-2). Maximum length: 2 characters</td>\n</tr>\n<tr>\n<td>billing[phone]</td>\n<td><em>string (optional)</em><br />Phone number for billing-related inquiries. Maximum length: 20 characters</td>\n</tr>\n<tr>\n<td>payment[method]</td>\n<td><strong>string (required)</strong><br />Payment method type. Allowed values: <code>card</code> (provide card details), <code>onfile</code> (use customer's saved payment method), <code>external</code> (external/manual payment such as Zelle, Cash App, Venmo, Bank Transfer), <code>paypal_wallet</code> (PayPal Wallet with redirect flow)</td>\n</tr>\n<tr>\n<td>payment[card_number]</td>\n<td><strong>string (required for card payments)</strong><br />Credit/debit card number</td>\n</tr>\n<tr>\n<td>payment[card_exp]</td>\n<td><strong>string (conditionally required for card payments)</strong><br />Combined expiration date. Accepted formats: \"MM/YY\", \"MMYY\", \"MM/YYYY\", \"MMYYYY\". Required if card_exp_month and card_exp_year are not provided</td>\n</tr>\n<tr>\n<td>payment[card_exp_month]</td>\n<td><strong>string (conditionally required for card payments)</strong><br />Two-digit expiration month (01-12). Must be exactly 2 characters. Required if card_exp is not provided</td>\n</tr>\n<tr>\n<td>payment[card_exp_year]</td>\n<td><strong>string (conditionally required for card payments)</strong><br />Expiration year. Can be 2 digits (YY) or 4 digits (YYYY). Required if card_exp is not provided</td>\n</tr>\n<tr>\n<td>payment[card_cvv]</td>\n<td><strong>string (required for card payments)</strong><br />Card verification value. Length: 3-4 characters</td>\n</tr>\n<tr>\n<td>payment[external_payment_id]</td>\n<td><em>integer (optional)</em><br />The ID of a configured alternative payment method. Use <code>GET /v1/alternative-payments</code> to retrieve available IDs. When used with <code>method: \"external\"</code>, the transaction will be linked to the specific payment type (e.g., Zelle, Cash App). When used with <code>method: \"paypal_wallet\"</code>, selects a specific PayPal configuration if multiple exist</td>\n</tr>\n<tr>\n<td>payment[return_url]</td>\n<td><strong>string (required for paypal_wallet)</strong><br />URL to redirect the customer to after they approve the PayPal payment. Must be a valid URL</td>\n</tr>\n<tr>\n<td>payment[cancel_url]</td>\n<td><strong>string (required for paypal_wallet)</strong><br />URL to redirect the customer to if they cancel the PayPal payment. Must be a valid URL</td>\n</tr>\n<tr>\n<td>coupon_code</td>\n<td><em>string (optional)</em><br />Coupon code to apply to the order. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>gateway_id</td>\n<td><em>integer (optional)</em><br />Internal ID for the payment gateway</td>\n</tr>\n<tr>\n<td>payment_orchestrator_id</td>\n<td><em>integer (optional)</em><br />Internal ID for the payment orchestrator</td>\n</tr>\n<tr>\n<td>forceQA</td>\n<td><em>boolean (optional)</em><br />Forces the order into QA (quality assurance) review. Accepts: \"true\", \"false\", \"1\", \"0\"</td>\n</tr>\n<tr>\n<td>campaign_id</td>\n<td><strong>integer (required)</strong><br />Internal ID for the campaign</td>\n</tr>\n<tr>\n<td>currency</td>\n<td><strong>string (required)</strong><br />Three-letter currency code (ISO 4217). Must be exactly 3 characters</td>\n</tr>\n<tr>\n<td>cohort</td>\n<td><em>string (optional)</em><br />Cohort identifier. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>utm_source</td>\n<td><em>string (optional)</em><br />UTM source parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_medium</td>\n<td><em>string (optional)</em><br />UTM medium parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_campaign</td>\n<td><em>string (optional)</em><br />UTM campaign parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_term</td>\n<td><em>string (optional)</em><br />UTM term parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>utm_content</td>\n<td><em>string (optional)</em><br />UTM content parameter. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>affiliate</td>\n<td><em>string (optional)</em><br />Affiliate name. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub1</td>\n<td><em>string (optional)</em><br />Sub-affiliate parameter 1. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub2</td>\n<td><em>string (optional)</em><br />Sub-affiliate parameter 2. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub3</td>\n<td><em>string (optional)</em><br />Sub-affiliate parameter 3. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub4</td>\n<td><em>string (optional)</em><br />Sub-affiliate parameter 4. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>sub5</td>\n<td><em>string (optional)</em><br />Sub-affiliate parameter 5. Maximum length: 100 characters</td>\n</tr>\n<tr>\n<td>products</td>\n<td><strong>array (required)</strong><br />Array of product objects to be ordered</td>\n</tr>\n<tr>\n<td>products[].offer_id</td>\n<td><strong>integer (required)</strong><br />Internal ID for the campaign offer</td>\n</tr>\n<tr>\n<td>products[].quantity</td>\n<td><strong>integer (required)</strong><br />Quantity of this product. Minimum value: 1</td>\n</tr>\n<tr>\n<td>products[].price</td>\n<td><em>numeric (optional)</em><br />Unit price for this product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>products[].shipping_price</td>\n<td><em>numeric (optional)</em><br />Shipping price for this product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>tax_amount</td>\n<td><em>numeric (optional)</em><br />Pre-calculated sales tax to charge the customer. Typically obtained from a prior call to <code>POST /checkout/tax</code>. Always honored when provided — the customer will be billed this amount regardless of the campaign's tax provider configuration. Minimum value: 0.</td>\n</tr>\n<tr>\n<td>tax_rate</td>\n<td><em>numeric (optional)</em><br />Effective tax rate used when <code>tax_amount</code> was calculated (e.g. <code>0.0875</code> for 8.875%). Stored on the order for reporting; does not affect the charged amount. Minimum value: 0.</td>\n</tr>\n<tr>\n<td>ip_address</td>\n<td><em>string (optional)</em><br />Customer's IP address. Must be a valid IP format</td>\n</tr>\n<tr>\n<td>user_agent</td>\n<td><em>string (optional)</em><br />Customer's browser user agent string</td>\n</tr>\n<tr>\n<td>terms_accepted</td>\n<td><em>boolean (optional)</em><br />Indicates customer acceptance of terms and conditions. Accepts: \"true\", \"false\", \"1\", \"0\"</td>\n</tr>\n<tr>\n<td>privacy_accepted</td>\n<td><em>boolean (optional)</em><br />Indicates customer acceptance of privacy policy. Accepts: \"true\", \"false\", \"1\", \"0\"</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"payment-method-flows\">Payment Method Flows</h2>\n<h3 id=\"card--on-file\">Card / On File</h3>\n<p>Standard payment processing. The order is created and payment is captured immediately.</p>\n<h3 id=\"external-zelle-cash-app-venmo-bank-transfer\">External (Zelle, Cash App, Venmo, Bank Transfer)</h3>\n<p>For payments processed outside the platform. Set <code>payment.method</code> to <code>\"external\"</code> and optionally pass <code>payment.external_payment_id</code> to link the transaction to a specific alternative payment method configured in the CRM. The order completes immediately with no gateway interaction.</p>\n<h3 id=\"paypal-wallet\">PayPal Wallet</h3>\n<p>Redirect-based payment flow requiring three steps:</p>\n<ol>\n<li><strong>Create Order</strong> — Call this endpoint with <code>payment.method</code> set to <code>\"paypal_wallet\"</code>, along with <code>return_url</code> and <code>cancel_url</code>. The response includes a <code>redirect_url</code>.</li>\n<li><strong>Customer Approval</strong> — Redirect the customer to the <code>redirect_url</code>. They log in to PayPal and approve the payment. PayPal redirects them back to your <code>return_url</code>.</li>\n<li><strong>Capture Payment</strong> — Call <code>POST /checkout/orders/capture</code> with the <code>order_number</code> to finalize the charge. Money does not move until this step.</li>\n</ol>\n<h2 id=\"tax-handling\">Tax Handling</h2>\n<p>Two ways to populate the order's tax:</p>\n<ul>\n<li><strong>Pass it in</strong> — supply <code>tax_amount</code> (and optionally <code>tax_rate</code>) in the request body. Typical flow: call <code>POST /checkout/tax</code> first to get the calculated values, then pass them here to lock in what the customer saw on the checkout page. The customer is always charged the <code>tax_amount</code> you supply.</li>\n<li><strong>Let the server compute it</strong> — omit both fields. When the campaign has an active TaxJar provider, the server auto-calculates tax against the shipping address at order-save time.</li>\n</ul>\n<p><strong>Charge vs. report are separate decisions:</strong></p>\n<ul>\n<li><code>tax_amount</code> controls what the customer pays.</li>\n<li>Whether the order is forwarded to TaxJar depends on the campaign's <code>tax_enabled</code> flag + active provider. If the campaign has tax disabled, the customer is still charged the supplied <code>tax_amount</code>, but nothing is reported to TaxJar's books.</li>\n</ul>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong><br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong><br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong><br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.order_number</td>\n<td><strong>string</strong><br />Unique identifier for the newly created order</td>\n</tr>\n<tr>\n<td>data.customer_number</td>\n<td><strong>string</strong><br />Unique identifier for the customer</td>\n</tr>\n<tr>\n<td>data.transaction_number</td>\n<td><strong>string</strong><br />Unique identifier for the payment transaction</td>\n</tr>\n<tr>\n<td>data.total</td>\n<td><strong>number</strong><br />Total amount of the order (subtotal + shipping + tax)</td>\n</tr>\n<tr>\n<td>data.tax_amount</td>\n<td><strong>string</strong><br />Sales tax portion of the order total, formatted to 2 decimals. <code>0.00</code> when no tax was applied.</td>\n</tr>\n<tr>\n<td>data.tax_rate</td>\n<td><strong>number</strong><br />Effective tax rate recorded on the order (e.g. <code>0.0875</code> for 8.875%). <code>0</code> when no rate was set.</td>\n</tr>\n<tr>\n<td>data.gateway_descriptor</td>\n<td><strong>string</strong><br />Statement descriptor from the payment gateway used for the transaction. Only included if the gateway has a descriptor configured</td>\n</tr>\n<tr>\n<td>data.currency</td>\n<td><strong>string</strong><br />Three-letter currency code (ISO 4217) used for the order</td>\n</tr>\n<tr>\n<td>data.subscription_created</td>\n<td><strong>boolean</strong><br />Indicates if a subscription was created with this order</td>\n</tr>\n<tr>\n<td>data.order_reused</td>\n<td><strong>boolean</strong><br />Indicates if an existing order was reused instead of creating a new one</td>\n</tr>\n<tr>\n<td>data.redirect_url</td>\n<td><strong>string (paypal_wallet only)</strong><br />PayPal checkout URL to redirect the customer to for payment approval. Only returned when <code>payment.method</code> is <code>\"paypal_wallet\"</code></td>\n</tr>\n<tr>\n<td>data.payment_status</td>\n<td><strong>string</strong><br />Status of the payment transaction. Values: <code>completed</code>, <code>declined</code>, <code>pending_redirect</code></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","orders"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"1d74bd3a-5b86-4582-a2eb-bea6a503cb99","name":"Create Order Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"customer[email]","value":"test2@example.com","type":"text"},{"key":"customer[first_name]","value":"Test","type":"text"},{"key":"customer[last_name]","value":"Tester","type":"text"},{"key":"customer[phone]","value":"7777777777","type":"text"},{"key":"shipping[address1]","value":"123 Main St","type":"text"},{"key":"shipping[address2]","value":"Apt 4B","type":"text"},{"key":"shipping[city]","value":"Los Angeles","type":"text"},{"key":"shipping[state]","value":"CA","type":"text"},{"key":"shipping[postal_code]","value":"90001","type":"text"},{"key":"shipping[country]","value":"US","type":"text"},{"key":"shipping[phone]","value":"5551234567","type":"text"},{"key":"billing[address1]","value":"123 Main St","type":"text"},{"key":"billing[address2]","value":"Apt 4B","type":"text"},{"key":"billing[city]","value":"Los Angeles","type":"text"},{"key":"billing[state]","value":"CA","type":"text"},{"key":"billing[postal_code]","value":"90001","type":"text"},{"key":"billing[country]","value":"US","type":"text"},{"key":"billing[phone]","value":"5551234567","type":"text"},{"key":"payment[method]","value":"card","type":"text"},{"key":"payment[card_number]","value":"4111111111111111","type":"text"},{"key":"payment[card_exp_month]","value":"12","type":"text"},{"key":"payment[card_exp_year]","value":"2025","type":"text"},{"key":"payment[card_cvv]","value":"123","type":"text"},{"key":"campaign_id","value":"1","type":"text"},{"key":"currency","value":"USD","type":"text"},{"key":"utm_source","value":"google","type":"text"},{"key":"utm_medium","value":"cpc","type":"text"},{"key":"utm_campaign","value":"summer_sale","type":"text"},{"key":"utm_term","value":"dtc_products","type":"text"},{"key":"utm_content","value":"banner_1","type":"text"},{"key":"affiliate_id","value":"AFF001","type":"text"},{"key":"sub_affiliate_id","value":"SUB001","type":"text"},{"key":"products[0][offer_id]","value":"1","type":"text"},{"key":"products[0][quantity]","value":"1","type":"text"},{"key":"products[0][price]","value":"49.98","type":"text","disabled":true},{"key":"products[0][shipping_price]","value":"4.70","type":"text","disabled":true},{"key":"products[1][offer_id]","value":"2","type":"text","disabled":true},{"key":"products[1][quantity]","value":"2","type":"text","disabled":true},{"key":"products[1][price]","value":"29.99","type":"text","disabled":true},{"key":"products[1][shipping_price]","value":"0.00","type":"text","disabled":true},{"key":"ip_address","value":"192.168.1.2","type":"text"},{"key":"user_agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:24:52 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=G52BtvYuUSc3Jjjcxy8hMfD5NZxR3gynJGJFzPQtENFQ7DDfZqHHREhTXU2Jn34uZ%2FwmfxBmd73xA%2BuZvRaT2zE8X4rvKEOmi6CK8PIB2uBKxkA13pVsK0wXJuPhyW1JcIQ%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"9239fececdefead8-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=20596&min_rtt=14117&rtt_var=9664&sent=54&recv=55&lost=0&retrans=0&sent_bytes=5626&recv_bytes=3412&delivery_rate=302925&cwnd=239&unsent_bytes=0&cid=4e9c5de4e4a6f6b3&ts=48106&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Order created successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-250321-00002\",\n        \"customer_number\": \"CUST-250321-00002\",\n        \"transaction_number\": \"TXN-250321-000004\",\n        \"subscription_number\": \"SUB-250321-000004\",\n        \"gateway_descriptor\": \"test descriptor\",\n        \"total\": 289.98,\n        \"currency\": \"USD\",\n        \"subscription_created\": false,\n        \"order_reused\": false\n    }\n}"}],"_postman_id":"cff8897e-68fc-4359-a178-a5925877028c"},{"name":"Process Upsell","id":"25282415-5719-48ce-8205-68eb0eeda491","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","value":"ORD-250321-00001","key":"order_number"},{"type":"text","value":"1","key":"upsell_id"},{"type":"text","value":"1","key":"quantity"},{"type":"text","value":"29.99","key":"price"},{"type":"text","value":"4.99","key":"shipping_price"},{"type":"text","value":"2.62","key":"tax_amount","disabled":true},{"type":"text","value":"0.0875","key":"tax_rate","disabled":true},{"type":"text","value":"USD","key":"currency"}]},"url":"https://api.healthsuite.io/checkout/orders/upsell","description":"<h1 id=\"process-upsell\">Process Upsell</h1>\n<p>Process a transaction as an upsell for an existing order from within the CRM</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>order_number</td>\n<td><strong>string (required)</strong><br />The original order number to attach the upsell to</td>\n</tr>\n<tr>\n<td>upsell_id</td>\n<td><strong>string (required)</strong><br />Internal ID for the campaign upsell</td>\n</tr>\n<tr>\n<td>quantity</td>\n<td><strong>integer (required)</strong><br />Quantity of the upsell product. Minimum value: 1</td>\n</tr>\n<tr>\n<td>price</td>\n<td><em>numeric (optional)</em><br />Price for the upsell product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>shipping_price</td>\n<td><em>numeric (optional)</em><br />Shipping price for the upsell product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>tax_amount</td>\n<td><em>numeric (optional)</em><br />Pre-calculated sales tax for this upsell. Typically obtained from a prior call to <code>POST /checkout/tax</code> scoped to the upsell cart. Always honored when provided — the customer will be billed this amount regardless of the campaign's tax provider configuration. Minimum value: 0.</td>\n</tr>\n<tr>\n<td>tax_rate</td>\n<td><em>numeric (optional)</em><br />Effective tax rate used when <code>tax_amount</code> was calculated (e.g. <code>0.0875</code> for 8.875%). Stored on the order for reporting; does not affect the charged amount. Minimum value: 0.</td>\n</tr>\n<tr>\n<td>currency</td>\n<td><em>string (optional)</em><br />Three-letter currency code (ISO 4217). Must be exactly 3 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"multiple-upsells-format\">Multiple Upsells Format</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>order_number</td>\n<td><strong>string (required)</strong><br />The original order number to attach the upsells to</td>\n</tr>\n<tr>\n<td>upsells</td>\n<td><strong>array (required)</strong><br />Array of upsell objects to process in a single transaction</td>\n</tr>\n<tr>\n<td>upsells[].upsell_id</td>\n<td><strong>string (required)</strong><br />Internal ID for the campaign upsell</td>\n</tr>\n<tr>\n<td>upsells[].quantity</td>\n<td><strong>integer (required)</strong><br />Quantity of the upsell product. Minimum value: 1</td>\n</tr>\n<tr>\n<td>upsells[].price</td>\n<td><em>numeric (optional)</em><br />Price for the upsell product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>upsells[].shipping_price</td>\n<td><em>numeric (optional)</em><br />Shipping price for the upsell product. Minimum value: 0</td>\n</tr>\n<tr>\n<td>tax_amount</td>\n<td><em>numeric (optional)</em><br />Single pre-calculated sales tax total covering the whole upsell cart. Supply at the top level — not per-upsell. Matches how <code>POST /checkout/tax</code> returns a single total.</td>\n</tr>\n<tr>\n<td>tax_rate</td>\n<td><em>numeric (optional)</em><br />Effective tax rate applied to the upsell cart.</td>\n</tr>\n<tr>\n<td>currency</td>\n<td><em>string (optional)</em><br />Three-letter currency code (ISO 4217). Must be exactly 3 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"tax-handling\">Tax Handling</h2>\n<p>Two ways to populate the upsell's tax:</p>\n<ul>\n<li><strong>Pass it in</strong> — supply <code>tax_amount</code> (and optionally <code>tax_rate</code>) in the request body. Typical flow: call <code>POST /checkout/tax</code> with the upsell's line items to get the calculated tax, then pass the returned value here. The customer is charged the <code>tax_amount</code> you supply.</li>\n<li><strong>Let the server compute it</strong> — omit both fields. The upsell's tax falls back to the <code>CampaignUpsell.tax_rate</code> configured on the offer.</li>\n</ul>\n<p><strong>Each upsell posts to TaxJar as its own record.</strong> When the upsell transaction completes, it's posted to TaxJar's <code>/v2/transactions/orders</code> endpoint keyed by the transaction's ID. Refunds of this upsell will reference that specific transaction — so tax reporting stays accurate even when items in the same order have different tax treatments (e.g., taxable base + tax-exempt clothing upsell).</p>\n<p><strong>Charge vs. report are separate decisions:</strong></p>\n<ul>\n<li><code>tax_amount</code> controls what the customer pays.</li>\n<li>Whether the upsell is forwarded to TaxJar depends on the campaign's <code>tax_enabled</code> flag + active provider. If the campaign has tax disabled, the customer is still charged the supplied <code>tax_amount</code>, but nothing is reported to TaxJar's books.</li>\n</ul>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong><br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong><br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong><br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.order_number</td>\n<td><strong>string</strong><br />Unique identifier for the original order</td>\n</tr>\n<tr>\n<td>data.transaction_number</td>\n<td><strong>string</strong><br />Unique identifier for the upsell transaction</td>\n</tr>\n<tr>\n<td>data.status</td>\n<td><strong>string</strong><br />Status of the upsell transaction (\"completed\")</td>\n</tr>\n<tr>\n<td>data.subscription_created</td>\n<td><strong>boolean</strong><br />Indicates if a subscription was created with this upsell</td>\n</tr>\n<tr>\n<td>data.gateway_descriptor</td>\n<td><strong>string</strong><br />Statement descriptor from the payment gateway used for the transaction. Only included if the gateway has a descriptor configured</td>\n</tr>\n<tr>\n<td>data.upsell_depth</td>\n<td><strong>integer</strong><br />Depth level of the upsell in the sales funnel</td>\n</tr>\n<tr>\n<td>data.upsell_count</td>\n<td><strong>integer</strong><br />Count of upsells processed for the transaction</td>\n</tr>\n<tr>\n<td>data.total</td>\n<td><strong>number</strong><br />Total amount of the upsell (subtotal + shipping + tax)</td>\n</tr>\n<tr>\n<td>data.tax_amount</td>\n<td><strong>string</strong><br />Sales tax portion of the upsell total, formatted to 2 decimals. <code>0.00</code> when no tax was applied.</td>\n</tr>\n<tr>\n<td>data.tax_rate</td>\n<td><strong>number</strong><br />Effective tax rate recorded on the order (e.g. <code>0.0875</code> for 8.875%). <code>0</code> when no rate was set.</td>\n</tr>\n<tr>\n<td>data.currency</td>\n<td><strong>string</strong><br />Three-letter currency code (ISO 4217) used for the transaction</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","orders","upsell"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"9ea4f7e8-0ac3-4598-8f44-9e93bef2d11e","name":"Process Upsell Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"order_number","value":"ORD-250321-00001","type":"text"},{"key":"upsell_id","value":"1","type":"text"},{"key":"quantity","value":"1","type":"text"},{"key":"price","value":"29.99","type":"text"},{"key":"shipping_price","value":"4.99","type":"text"},{"key":"currency","value":"USD","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders/upsell"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:16:22 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9239f25b8a5d13f7-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Upsell processed successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-250321-00001\",\n        \"transaction_number\": \"TXN-250321-000002\",\n        \"status\": \"completed\",\n        \"gateway_descriptor\": \"test descriptor\",\n        \"subscription_created\": false,\n        \"subscription_number\": \"SUB-250321-000002\",\n        \"upsell_depth\": 1,\n        \"upsell_count\": 2,\n        \"total\": 34.98,\n        \"currency\": \"USD\"\n    }\n}"}],"_postman_id":"25282415-5719-48ce-8205-68eb0eeda491"},{"name":"Complete Order","id":"a6783913-6834-47fa-b6cf-fc36be64b013","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"order_number","value":"ORD-250324-00001","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders/complete","description":"<h1 id=\"complete-order\">Complete Order</h1>\n<p>Mark an order as completed within the CRM.</p>\n<p>Note: By default, this endpoint will be called 20 minutes after the customers last transaction which will close the order and send any applicable transactional emails</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>order_number</td>\n<td><strong>string (required)</strong>  <br />The order number to mark as complete</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.order_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the order that was completed</td>\n</tr>\n<tr>\n<td>data.status</td>\n<td><strong>string</strong>  <br />Updated status of the order (\"completed\")</td>\n</tr>\n<tr>\n<td>data.completed_at</td>\n<td><strong>string</strong>  <br />Date and time when the order was marked as completed (format: YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","orders","complete"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"3007d376-4b14-4b01-bc0a-9e683720e56b","name":"Create Order Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"order_number","value":"ORD-250324-00001","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders/complete"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Mar 2025 13:47:44 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=hc%2BayptvH1XcWXqPdD4Ug0SsKnI%2FY9LLGvGr5WeCoVpS7zK%2BkgRWtRdt%2F7tGlxHYBN2id1plTJEI0y6fjIo5ddolT36BUCbuddne6%2FIMHyb3hG7udNXOLUAYLDkt637jciI%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"92569f42fd8d10c6-ORD"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=17314&min_rtt=16117&rtt_var=6376&sent=33&recv=33&lost=0&retrans=0&sent_bytes=4466&recv_bytes=2311&delivery_rate=243766&cwnd=224&unsent_bytes=0&cid=289111252ed120f1&ts=28644&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Order marked as completed successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-250324-00001\",\n        \"status\": \"completed\",\n        \"completed_at\": \"2025-03-24 13:47:44\"\n    }\n}"}],"_postman_id":"a6783913-6834-47fa-b6cf-fc36be64b013"},{"name":"Capture Paypal","id":"22c16292-10ca-4754-bd83-f7688ccdb9a3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"order_number","value":"ORD-250324-00001","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders/capture","description":"<h1 id=\"capture-paypal-payment\">Capture PayPal Payment</h1>\n<p>Captures a PayPal Wallet payment after the customer has approved it on PayPal. This is the final step in the PayPal redirect flow.</p>\n<p><strong>This endpoint is idempotent</strong> — if the payment has already been captured, it will return the current state without charging again.</p>\n<h2 id=\"flow\">Flow</h2>\n<ol>\n<li>Create an order or process a payment with <code>payment.method</code> set to <code>\"paypal_wallet\"</code>. You receive a <code>redirect_url</code> in the response.</li>\n<li>Redirect the customer to the <code>redirect_url</code>. They approve the payment on PayPal and are redirected back to your <code>return_url</code>.</li>\n<li><strong>Call this endpoint</strong> with the <code>order_number</code> to finalize the charge. Money does not move until this step completes.</li>\n</ol>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>order_number</td>\n<td><strong>string (required)</strong><br />The order number returned from the Create Order or Process Payment response</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong><br />Indicates if the capture was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong><br />Human-readable description of the result (e.g., \"Payment captured successfully\", \"Payment already captured\")</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong><br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.order_number</td>\n<td><strong>string</strong><br />Unique identifier for the order</td>\n</tr>\n<tr>\n<td>data.transaction_number</td>\n<td><strong>string</strong><br />Unique identifier for the payment transaction</td>\n</tr>\n<tr>\n<td>data.payment_status</td>\n<td><strong>string</strong><br />Status of the payment transaction after capture. Values: <code>completed</code>, <code>pending_redirect</code></td>\n</tr>\n<tr>\n<td>data.status</td>\n<td><strong>string</strong><br />Current status of the order after capture (e.g., \"processing\")</td>\n</tr>\n<tr>\n<td>data.total</td>\n<td><strong>number</strong><br />Total amount captured</td>\n</tr>\n<tr>\n<td>data.currency</td>\n<td><strong>string</strong><br />Three-letter currency code (ISO 4217) used for the transaction</td>\n</tr>\n<tr>\n<td>data.payer_email</td>\n<td><strong>string (optional)</strong><br />The PayPal payer's email address. Only included if provided by PayPal</td>\n</tr>\n<tr>\n<td>data.subscription_created</td>\n<td><strong>boolean</strong><br />Indicates if a subscription was created during capture</td>\n</tr>\n<tr>\n<td>data.subscription_number</td>\n<td><strong>string or null</strong><br />Unique identifier for the subscription, if one was created</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>404</td>\n<td>Order not found, or no capturable transaction exists for the order</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Payment capture failed at PayPal (e.g., buyer did not approve, PayPal rejected the capture)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Unexpected server error during capture</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","orders","capture"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"7acbf57b-a5c8-427c-a003-c594a485b3a6","name":"Capture Paypal Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"order_number","value":"ORD-250324-00001","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders/capture"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Mar 2025 13:47:44 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=hc%2BayptvH1XcWXqPdD4Ug0SsKnI%2FY9LLGvGr5WeCoVpS7zK%2BkgRWtRdt%2F7tGlxHYBN2id1plTJEI0y6fjIo5ddolT36BUCbuddne6%2FIMHyb3hG7udNXOLUAYLDkt637jciI%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"92569f42fd8d10c6-ORD"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=17314&min_rtt=16117&rtt_var=6376&sent=33&recv=33&lost=0&retrans=0&sent_bytes=4466&recv_bytes=2311&delivery_rate=243766&cwnd=224&unsent_bytes=0&cid=289111252ed120f1&ts=28644&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Payment captured successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-260218-00001\",\n        \"transaction_number\": \"TXN-260218-00001\",\n        \"payment_status\": \"completed\",\n        \"status\": \"processing\",\n        \"total\": 49.95,\n        \"currency\": \"USD\",\n        \"payer_email\": \"buyer@example.com\",\n        \"subscription_created\": false,\n        \"subscription_number\": null\n    }\n}\n"}],"_postman_id":"22c16292-10ca-4754-bd83-f7688ccdb9a3"},{"name":"Search Orders","id":"811cf475-faf9-4f0d-a55d-6d70e4f3f484","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"customer[email]","value":"test@example.com","type":"text"},{"key":"customer[first_name]","value":"John","type":"text"},{"key":"customer[last_name]","value":"Doe","type":"text"},{"key":"customer[phone]","value":"5551234567","type":"text"},{"key":"shipping[address1]","value":"123 Main St","type":"text"},{"key":"shipping[address2]","value":"Apt 4B","type":"text"},{"key":"shipping[city]","value":"New York","type":"text"},{"key":"shipping[state]","value":"NY","type":"text"},{"key":"shipping[postal_code]","value":"10001","type":"text"},{"key":"shipping[country]","value":"US","type":"text"},{"key":"campaign_id","value":"1","type":"text"},{"key":"currency","value":"USD","type":"text"},{"key":"utm_source","value":"google","type":"text"},{"key":"utm_medium","value":"cpc","type":"text"},{"key":"utm_campaign","value":"summer_sale","type":"text"},{"key":"utm_term","value":"best deals","type":"text"},{"key":"utm_content","value":"banner1","type":"text"},{"key":"affiliate_id","value":"AFF123","type":"text"},{"key":"sub_affiliate_id","value":"SUB456","type":"text"},{"key":"products[0][offer_id]","value":"1","type":"text"},{"key":"products[0][quantity]","value":"1","type":"text"},{"key":"products[1][offer_id]","value":"2","type":"text"},{"key":"products[1][quantity]","value":"1","type":"text"},{"key":"ip_address","value":"192.168.1.1","type":"text"},{"key":"user_agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","type":"text"}]},"url":"https://api.healthsuite.io/checkout/orders?order_number=ORD-250321-00001&date_start=2023-01-01&date_end=2025-12-31&per_page=20","description":"<h1 id=\"search-orders\">Search Orders</h1>\n<p>Return information about orders that match the specified search criteria from within the CRM</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>transaction_number</td>\n<td><em>string (optional)</em>  <br />Filter by transaction number</td>\n</tr>\n<tr>\n<td>subscription_number</td>\n<td><em>string (optional)</em>  <br />Filter by subscription number</td>\n</tr>\n<tr>\n<td>external_transaction_id</td>\n<td><em>string (optional)</em>  <br />Filter by external transaction ID</td>\n</tr>\n<tr>\n<td>order_number</td>\n<td><em>string (optional)</em>  <br />Filter by order number</td>\n</tr>\n<tr>\n<td>customer_number</td>\n<td><em>string (optional)</em>  <br />Filter by customer number</td>\n</tr>\n<tr>\n<td>customer_email</td>\n<td><em>string (optional)</em>  <br />Filter by customer email address</td>\n</tr>\n<tr>\n<td>customer_phone</td>\n<td><em>string (optional)</em>  <br />Filter by customer phone number</td>\n</tr>\n<tr>\n<td>customer_name</td>\n<td><em>string (optional)</em>  <br />Filter by customer name</td>\n</tr>\n<tr>\n<td>status</td>\n<td><em>string (optional)</em>  <br />Filter by transaction status. Supported values: <code>pending</code>, <code>processing</code>, <code>completed</code>, <code>declined</code>, <code>refunded</code>, <code>partially_refunded</code>, <code>externally_refunded</code>, <code>disputed_alert</code>, <code>disputed_rdr</code>, <code>chargeback</code>, <code>voided</code>, <code>on_hold</code>, <code>failed</code>, <code>abandoned</code></td>\n</tr>\n<tr>\n<td>order_status</td>\n<td><em>string (optional)</em>  <br />Filter by order status</td>\n</tr>\n<tr>\n<td>card_first_six</td>\n<td><em>string (optional)</em>  <br />Filter by first 6 digits of card number (BIN). Must be exactly 6 digits.</td>\n</tr>\n<tr>\n<td>card_last_four</td>\n<td><em>string (optional)</em>  <br />Filter by last 4 digits of card number. Must be exactly 4 digits.</td>\n</tr>\n<tr>\n<td>amount</td>\n<td><em>numeric (optional)</em>  <br />Filter by transaction amount (e.g., 29.99, 100.00)</td>\n</tr>\n<tr>\n<td>payment_method</td>\n<td><em>string (optional)</em>  <br />Filter by payment method (e.g., \"card\")</td>\n</tr>\n<tr>\n<td>campaign_id</td>\n<td><em>string (optional)</em>  <br />Filter by campaign ID</td>\n</tr>\n<tr>\n<td>gateway_id</td>\n<td><em>string (optional)</em>  <br />Filter by gateway ID</td>\n</tr>\n<tr>\n<td>affiliate_id</td>\n<td><em>string (optional)</em>  <br />Filter by affiliate ID</td>\n</tr>\n<tr>\n<td>affiliate</td>\n<td><em>string (optional)</em>  <br />Filter by affiliate ID (alias for affiliate_id)</td>\n</tr>\n<tr>\n<td>sub_affiliate_id</td>\n<td><em>string (optional)</em>  <br />Filter by sub-affiliate ID (alias for sub1)</td>\n</tr>\n<tr>\n<td>sub1</td>\n<td><em>string (optional)</em>  <br />Filter by sub-affiliate 1</td>\n</tr>\n<tr>\n<td>sub2</td>\n<td><em>string (optional)</em>  <br />Filter by sub-affiliate 2</td>\n</tr>\n<tr>\n<td>sub3</td>\n<td><em>string (optional)</em>  <br />Filter by sub-affiliate 3</td>\n</tr>\n<tr>\n<td>sub4</td>\n<td><em>string (optional)</em>  <br />Filter by sub-affiliate 4</td>\n</tr>\n<tr>\n<td>sub5</td>\n<td><em>string (optional)</em>  <br />Filter by sub-affiliate 5</td>\n</tr>\n<tr>\n<td>utm_source</td>\n<td><em>string (optional)</em>  <br />Filter by UTM source</td>\n</tr>\n<tr>\n<td>utm_medium</td>\n<td><em>string (optional)</em>  <br />Filter by UTM medium</td>\n</tr>\n<tr>\n<td>utm_campaign</td>\n<td><em>string (optional)</em>  <br />Filter by UTM campaign</td>\n</tr>\n<tr>\n<td>utm_term</td>\n<td><em>string (optional)</em>  <br />Filter by UTM term</td>\n</tr>\n<tr>\n<td>utm_content</td>\n<td><em>string (optional)</em>  <br />Filter by UTM content</td>\n</tr>\n<tr>\n<td>date_start</td>\n<td><em>date (optional)</em>  <br />Filter for orders placed on or after this date  <br /><strong>Format:</strong> YYYY-MM-DD (e.g., 2024-01-15)  <br /><strong>Note:</strong> Time is automatically set to 00:00:00 (start of day) and converted to UTC based on your team's timezone setting.</td>\n</tr>\n<tr>\n<td>date_end</td>\n<td><em>date (optional)</em>  <br />Filter for orders placed on or before this date  <br /><strong>Format:</strong> YYYY-MM-DD (e.g., 2024-12-31)  <br /><strong>Note:</strong> Time is automatically set to 23:59:59 (end of day) and converted to UTC based on your team's timezone setting.</td>\n</tr>\n<tr>\n<td>is_test</td>\n<td><em>boolean (optional)</em>  <br />Filter by test orders</td>\n</tr>\n<tr>\n<td>is_blacklisted</td>\n<td><em>boolean (optional)</em>  <br />Filter by blacklisted customers</td>\n</tr>\n<tr>\n<td>is_throttled</td>\n<td><em>boolean (optional)</em>  <br />Filter by throttled orders</td>\n</tr>\n<tr>\n<td>qa_required</td>\n<td><em>boolean (optional)</em>  <br />Filter by orders requiring QA review</td>\n</tr>\n<tr>\n<td>has_subscriptions</td>\n<td><em>boolean (optional)</em>  <br />Filter by orders that have associated subscriptions</td>\n</tr>\n<tr>\n<td>fulfillment_status</td>\n<td><em>string (optional)</em>  <br />Filter by fulfillment status</td>\n</tr>\n<tr>\n<td>per_page</td>\n<td><em>integer (optional)</em>  <br />Number of results per page. Minimum: 1, Maximum: 100. Default: 15</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>array</strong>  <br />Array of customer objects matching the search criteria</td>\n</tr>\n<tr>\n<td>data[].customer_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the customer</td>\n</tr>\n<tr>\n<td>data[].first_name</td>\n<td><strong>string</strong>  <br />Customer's first name</td>\n</tr>\n<tr>\n<td>data[].last_name</td>\n<td><strong>string</strong>  <br />Customer's last name</td>\n</tr>\n<tr>\n<td>data[].full_name</td>\n<td><strong>string</strong>  <br />Customer's full name (first and last name combined)</td>\n</tr>\n<tr>\n<td>data[].email</td>\n<td><strong>string</strong>  <br />Customer's email address</td>\n</tr>\n<tr>\n<td>data[].phone</td>\n<td><strong>string</strong>  <br />Customer's phone number</td>\n</tr>\n<tr>\n<td>data[].created_at</td>\n<td><strong>string</strong>  <br />Date and time when the customer was created (format: YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>data[].orders</td>\n<td><strong>array</strong>  <br />List of orders associated with the customer</td>\n</tr>\n<tr>\n<td>data[].orders[].order_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the order</td>\n</tr>\n<tr>\n<td>data[].orders[].campaign_name</td>\n<td><strong>string</strong>  <br />Name of the campaign associated with the order</td>\n</tr>\n<tr>\n<td>data[].orders[].campaign_id</td>\n<td><strong>string</strong>  <br />Internal ID of the campaign associated with the order</td>\n</tr>\n<tr>\n<td>data[].orders[].affiliate_name</td>\n<td><strong>string</strong>  <br />Name of the affiliate associated with the order</td>\n</tr>\n<tr>\n<td>data[].orders[].affiliate_id</td>\n<td><strong>string</strong>  <br />Custom ID of the affiliate associated with the order</td>\n</tr>\n<tr>\n<td>data[].orders[].sub1</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 1</td>\n</tr>\n<tr>\n<td>data[].orders[].sub2</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 2</td>\n</tr>\n<tr>\n<td>data[].orders[].sub3</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 3</td>\n</tr>\n<tr>\n<td>data[].orders[].sub4</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 4</td>\n</tr>\n<tr>\n<td>data[].orders[].sub5</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 5</td>\n</tr>\n<tr>\n<td>data[].orders[].utm_source</td>\n<td><strong>string</strong>  <br />UTM source parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].utm_medium</td>\n<td><strong>string</strong>  <br />UTM medium parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].utm_campaign</td>\n<td><strong>string</strong>  <br />UTM campaign parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].utm_term</td>\n<td><strong>string</strong>  <br />UTM term parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].utm_content</td>\n<td><strong>string</strong>  <br />UTM content parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].status</td>\n<td><strong>string</strong>  <br />Current status of the order</td>\n</tr>\n<tr>\n<td>data[].orders[].currency</td>\n<td><strong>string</strong>  <br />Three-letter currency code (ISO 4217) used for the order</td>\n</tr>\n<tr>\n<td>data[].orders[].is_throttled</td>\n<td><strong>boolean</strong>  <br />Indicates if the order was throttled</td>\n</tr>\n<tr>\n<td>data[].orders[].created_at</td>\n<td><strong>string</strong>  <br />Date and time when the order was created</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions</td>\n<td><strong>array</strong>  <br />List of transactions associated with this order</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].transaction_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].campaign_name</td>\n<td><strong>string</strong>  <br />Name of the campaign associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].campaign_id</td>\n<td><strong>string</strong>  <br />Internal ID of the campaign associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].gateway_name</td>\n<td><strong>string</strong>  <br />Name of the payment gateway used for the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].gateway_id</td>\n<td><strong>string</strong>  <br />Internal ID of the payment gateway used for the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].external_transaction_id</td>\n<td><strong>string</strong>  <br />Identifier provided by the payment gateway</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].status</td>\n<td><strong>string</strong>  <br />Status of the transaction (e.g., \"completed\", \"refunded\")</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].amount</td>\n<td><strong>string</strong>  <br />Transaction amount (negative for refunds)</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].currency</td>\n<td><strong>string</strong>  <br />Three-letter currency code for the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].payment_method</td>\n<td><strong>string</strong>  <br />Method used for payment (e.g., \"card\")</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].affiliate_name</td>\n<td><strong>string</strong>  <br />Name of the affiliate associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].affiliate_id</td>\n<td><strong>string</strong>  <br />Custom ID of the affiliate associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].sub1</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 1</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].sub2</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 2</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].sub3</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 3</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].sub4</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 4</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].sub5</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 5</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].utm_source</td>\n<td><strong>string</strong>  <br />UTM source parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].utm_medium</td>\n<td><strong>string</strong>  <br />UTM medium parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].utm_campaign</td>\n<td><strong>string</strong>  <br />UTM campaign parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].utm_term</td>\n<td><strong>string</strong>  <br />UTM term parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].utm_content</td>\n<td><strong>string</strong>  <br />UTM content parameter</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].card_brand</td>\n<td><strong>string</strong>  <br />Card brand/network (e.g., \"Visa\", \"Mastercard\", \"Amex\", \"Discover\")</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].card_first_six</td>\n<td><strong>string</strong>  <br />First 6 digits of the card number (BIN) used for the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].card_last_four</td>\n<td><strong>string</strong>  <br />Last 4 digits of the card number used for the transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].is_upsell</td>\n<td><strong>boolean</strong>  <br />Indicates if this transaction was for an upsell product</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].upsell_depth</td>\n<td><strong>integer</strong>  <br />Depth level of the upsell in the sales funnel</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].gateway_response</td>\n<td><strong>string</strong>  <br />Response code or message from the payment gateway</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].created_at</td>\n<td><strong>string</strong>  <br />Date and time when the transaction was created</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].updated_at</td>\n<td><strong>string</strong>  <br />Date and time when the transaction was last updated</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].products</td>\n<td><strong>array</strong>  <br />Array of products included in this transaction</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].products[].id</td>\n<td><strong>integer</strong>  <br />Unique identifier for the product</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].products[].name</td>\n<td><strong>string</strong>  <br />Name of the product</td>\n</tr>\n<tr>\n<td>data[].orders[].transactions[].products[].type</td>\n<td><strong>string</strong>  <br />Type of the product (e.g., \"offer\")</td>\n</tr>\n<tr>\n<td>data[].orders[].cart</td>\n<td><strong>object</strong>  <br />Contains information about the order's cart</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.tax</td>\n<td><strong>string</strong>  <br />Total tax amount for the order</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items</td>\n<td><strong>array</strong>  <br />List of items in the cart</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].quantity</td>\n<td><strong>integer</strong>  <br />Quantity of this product</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].name</td>\n<td><strong>string</strong>  <br />Name of the product</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].unit_price</td>\n<td><strong>number</strong>  <br />Price per unit of the product</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].shipping_price</td>\n<td><strong>number</strong>  <br />Shipping cost for this product</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].subtotal</td>\n<td><strong>number</strong>  <br />Product subtotal (unit_price x quantity)</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].tax</td>\n<td><strong>number</strong>  <br />Tax amount for this product</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].is_upsell</td>\n<td><strong>boolean</strong>  <br />Indicates if this item is an upsell product</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].id</td>\n<td><strong>integer</strong>  <br />Unique identifier for the product</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.items[].type</td>\n<td><strong>string</strong>  <br />Type of the product (e.g., \"offer\")</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.total</td>\n<td><strong>string</strong>  <br />Total amount of the order (subtotal + shipping + tax)</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.shipping</td>\n<td><strong>string</strong>  <br />Total shipping cost for the order</td>\n</tr>\n<tr>\n<td>data[].orders[].cart.subtotal</td>\n<td><strong>string</strong>  <br />Subtotal of all items before shipping and tax</td>\n</tr>\n<tr>\n<td>data[].addresses</td>\n<td><strong>array</strong>  <br />List of addresses associated with the customer</td>\n</tr>\n<tr>\n<td>data[].addresses[].name</td>\n<td><strong>string</strong>  <br />Full name associated with this address</td>\n</tr>\n<tr>\n<td>data[].addresses[].street_1</td>\n<td><strong>string</strong>  <br />Primary address line</td>\n</tr>\n<tr>\n<td>data[].addresses[].street_2</td>\n<td><strong>string</strong>  <br />Secondary address line (apartment, suite, etc.)</td>\n</tr>\n<tr>\n<td>data[].addresses[].city</td>\n<td><strong>string</strong>  <br />City name</td>\n</tr>\n<tr>\n<td>data[].addresses[].state_province</td>\n<td><strong>string</strong>  <br />State or province</td>\n</tr>\n<tr>\n<td>data[].addresses[].postal_code</td>\n<td><strong>string</strong>  <br />ZIP or postal code</td>\n</tr>\n<tr>\n<td>data[].addresses[].country_code</td>\n<td><strong>string</strong>  <br />Two-letter country code (ISO 3166-1 alpha-2)</td>\n</tr>\n<tr>\n<td>data[].addresses[].phone</td>\n<td><strong>string</strong>  <br />Phone number associated with this address</td>\n</tr>\n<tr>\n<td>data[].addresses[].email</td>\n<td><strong>string</strong>  <br />Email address associated with this address</td>\n</tr>\n<tr>\n<td>data[].addresses[].type</td>\n<td><strong>string</strong>  <br />Type of address (e.g., \"home\", \"work\")</td>\n</tr>\n<tr>\n<td>data[].addresses[].is_primary</td>\n<td><strong>boolean</strong>  <br />Indicates if this is the customer's primary address</td>\n</tr>\n<tr>\n<td>data[].addresses[].is_billing</td>\n<td><strong>boolean</strong>  <br />Indicates if this address is used for billing</td>\n</tr>\n<tr>\n<td>data[].addresses[].is_shipping</td>\n<td><strong>boolean</strong>  <br />Indicates if this address is used for shipping</td>\n</tr>\n<tr>\n<td>pagination</td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td>pagination.total</td>\n<td><strong>integer</strong>  <br />Total number of records matching the search criteria</td>\n</tr>\n<tr>\n<td>pagination.per_page</td>\n<td><strong>integer</strong>  <br />Number of records displayed per page</td>\n</tr>\n<tr>\n<td>pagination.current_page</td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td>pagination.last_page</td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","orders"],"host":["api","healthsuite","io"],"query":[{"key":"order_number","value":"ORD-250321-00001"},{"disabled":true,"key":"customer_number","value":"CUST-230315-00001"},{"disabled":true,"key":"customer_email","value":"john.doe@example.com"},{"disabled":true,"key":"customer_phone","value":"5551234567"},{"disabled":true,"key":"customer_name","value":"John Doe"},{"disabled":true,"key":"status","value":"processing"},{"key":"date_start","value":"2023-01-01"},{"key":"date_end","value":"2025-12-31"},{"key":"per_page","value":"20"}],"variable":[]}},"response":[{"id":"baf73ec4-98ae-4358-8167-e8810ad60d01","name":"Search Orders Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.healthsuite.io/checkout/orders?order_number=ORD-250321-00001&date_start=2023-01-01&date_end=2025-12-31&per_page=20","protocol":"https","host":["api","healthsuite","io"],"path":["checkout","orders"],"query":[{"key":"order_number","value":"ORD-250321-00001"},{"key":"customer_number","value":"CUST-230315-00001","type":"text","disabled":true},{"key":"customer_email","value":"john.doe@example.com","type":"text","disabled":true},{"key":"customer_phone","value":"5551234567","type":"text","disabled":true},{"key":"customer_name","value":"John Doe","type":"text","disabled":true},{"key":"status","value":"processing","type":"text","disabled":true},{"key":"date_start","value":"2023-01-01"},{"key":"date_end","value":"2025-12-31"},{"key":"per_page","value":"20"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:21:35 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9239fa083e7c72eb-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"customer_number\": \"CUST-250529-00001\",\n            \"first_name\": \"Test\",\n            \"last_name\": \"Test\",\n            \"full_name\": \"Test Test\",\n            \"email\": \"johndoe@gmail.com\",\n            \"phone\": \"4444444444\",\n            \"created_at\": \"2025-05-29 14:56:53\",\n            \"orders\": [\n                {\n                    \"order_number\": \"ORD-250529-00001\",\n                    \"campaign_name\": \"Summer Health Promo\",\n                    \"campaign_id\": \"3\",\n                    \"affiliate_name\": \"HealthAds Network\",\n                    \"affiliate_id\": \"AFF-001\",\n                    \"sub1\": \"landing_v2\",\n                    \"sub2\": \"banner_top\",\n                    \"sub3\": null,\n                    \"sub4\": null,\n                    \"sub5\": null,\n                    \"utm_source\": \"google\",\n                    \"utm_medium\": \"cpc\",\n                    \"utm_campaign\": \"summer_sale\",\n                    \"utm_term\": \"best deals\",\n                    \"utm_content\": \"banner1\",\n                    \"status\": \"completed\",\n                    \"currency\": \"USD\",\n                    \"is_throttled\": false,\n                    \"created_at\": \"2025-05-29 14:56:53\",\n                    \"transactions\": [\n                        {\n                            \"transaction_number\": \"TXN-250529-000001\",\n                            \"campaign_name\": \"Summer Health Promo\",\n                            \"campaign_id\": \"3\",\n                            \"gateway_name\": \"NMI Production\",\n                            \"gateway_id\": \"5\",\n                            \"external_transaction_id\": \"SANDBOX-8E02E190-55B4-45FC-BAEB-05D141613532\",\n                            \"status\": \"completed\",\n                            \"amount\": \"270.00\",\n                            \"currency\": \"USD\",\n                            \"payment_method\": \"card\",\n                            \"affiliate_name\": \"HealthAds Network\",\n                            \"affiliate_id\": \"AFF-001\",\n                            \"sub1\": \"landing_v2\",\n                            \"sub2\": \"banner_top\",\n                            \"sub3\": null,\n                            \"sub4\": null,\n                            \"sub5\": null,\n                            \"utm_source\": \"google\",\n                            \"utm_medium\": \"cpc\",\n                            \"utm_campaign\": \"summer_sale\",\n                            \"utm_term\": \"best deals\",\n                            \"utm_content\": \"banner1\",\n                            \"card_brand\": \"Visa\",\n                            \"card_first_six\": \"411111\",\n                            \"card_last_four\": \"1111\",\n                            \"is_upsell\": false,\n                            \"upsell_depth\": 0,\n                            \"gateway_response\": \"Sandbox: Transaction approved\",\n                            \"created_at\": \"2025-05-29 14:56:53\",\n                            \"updated_at\": \"2025-05-29 14:56:53\",\n                            \"products\": [\n                                {\n                                    \"id\": 9,\n                                    \"name\": \"Restore - 6 Bottles\",\n                                    \"type\": \"offer\"\n                                }\n                            ]\n                        }\n                    ],\n                    \"cart\": {\n                        \"tax\": \"0.00\",\n                        \"items\": [\n                            {\n                                \"quantity\": 1,\n                                \"name\": \"Restore - 6 Bottles\",\n                                \"unit_price\": 270,\n                                \"shipping_price\": 0,\n                                \"subtotal\": 270,\n                                \"tax\": 0,\n                                \"is_upsell\": false,\n                                \"id\": 9,\n                                \"type\": \"offer\"\n                            }\n                        ],\n                        \"total\": \"270.00\",\n                        \"shipping\": \"0.00\",\n                        \"subtotal\": \"270.00\"\n                    }\n                }\n            ],\n            \"addresses\": [\n                {\n                    \"name\": \"Test Test\",\n                    \"street_1\": \"123 testing\",\n                    \"street_2\": \"\",\n                    \"city\": \"test\",\n                    \"state_province\": \"AL\",\n                    \"postal_code\": \"55555\",\n                    \"country_code\": \"US\",\n                    \"phone\": \"\",\n                    \"email\": \"johndoe@gmail.com\",\n                    \"type\": \"home\",\n                    \"is_primary\": true,\n                    \"is_billing\": true,\n                    \"is_shipping\": true\n                }\n            ]\n        }\n    ],\n    \"pagination\": {\n        \"total\": 1,\n        \"per_page\": 20,\n        \"current_page\": 1,\n        \"last_page\": 1\n    }\n}"}],"_postman_id":"811cf475-faf9-4f0d-a55d-6d70e4f3f484"},{"name":"Calculate Tax","id":"f3fe02c4-0f27-a5be-85c7-0b3894722f58","request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"value":"1","key":"campaign_id","type":"text"},{"value":"4.70","key":"shipping","type":"text"},{"value":"US","key":"to_address[country]","type":"text"},{"value":"90001","key":"to_address[zip]","type":"text"},{"value":"CA","key":"to_address[state]","type":"text"},{"value":"Los Angeles","key":"to_address[city]","type":"text"},{"value":"123 Main St","key":"to_address[street]","type":"text"},{"value":"SKU-001","key":"line_items[0][sku]","type":"text"},{"value":"1","key":"line_items[0][quantity]","type":"text"},{"value":"49.98","key":"line_items[0][unit_price]","type":"text"},{"value":"20010","key":"line_items[0][tax_code]","type":"text","disabled":true},{"value":"SKU-002","key":"line_items[1][sku]","type":"text","disabled":true},{"value":"2","key":"line_items[1][quantity]","type":"text","disabled":true},{"value":"29.99","key":"line_items[1][unit_price]","type":"text","disabled":true},{"value":"40030","key":"line_items[1][tax_code]","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/checkout/tax","description":"<h1 id=\"calculate-tax\">Calculate Tax</h1>\n<p>Calculates sales tax for a cart in real time via the campaign's configured tax provider (TaxJar). Intended to be called during checkout whenever the cart or shipping address changes, so the tax amount displayed to the customer stays in sync with the line items and destination.</p>\n<p>If the campaign has no tax provider configured, is disabled, or the provider is inactive, the endpoint returns <code>tax_amount: 0</code>, <code>tax_rate: 0</code>, empty <code>breakdown</code>, and <code>tax_enabled: false</code>. Callers should treat that as a successful \"no tax required\" response rather than an error.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite. The API key must have the <code>api:tax.calculate</code> permission.</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>campaign_id</td>\n<td><strong>string (required)</strong><br />Internal ID for the campaign. Must belong to the authenticated user.</td>\n</tr>\n<tr>\n<td>shipping</td>\n<td><em>numeric (optional)</em><br />Total shipping amount for the cart. Minimum value: 0. Defaults to 0.</td>\n</tr>\n<tr>\n<td>to_address[country]</td>\n<td><strong>string (required)</strong><br />Destination country. Two-letter ISO 3166-1 alpha-2 code. Must be exactly 2 characters.</td>\n</tr>\n<tr>\n<td>to_address[zip]</td>\n<td><strong>string (required)</strong><br />Destination ZIP or postal code. Maximum length: 20 characters.</td>\n</tr>\n<tr>\n<td>to_address[state]</td>\n<td><strong>string (required)</strong><br />Destination state or province code (e.g. <code>CA</code>). Maximum length: 100 characters.</td>\n</tr>\n<tr>\n<td>to_address[city]</td>\n<td><em>string (optional)</em><br />Destination city. Maximum length: 100 characters.</td>\n</tr>\n<tr>\n<td>to_address[street]</td>\n<td><em>string (optional)</em><br />Destination street address line. Maximum length: 255 characters.</td>\n</tr>\n<tr>\n<td>line_items</td>\n<td><strong>array (required)</strong><br />Array of cart line items. Must contain at least one item.</td>\n</tr>\n<tr>\n<td>line_items[].sku</td>\n<td><em>string (optional)</em><br />SKU / product identifier for the line item. Maximum length: 100 characters.</td>\n</tr>\n<tr>\n<td>line_items[].quantity</td>\n<td><strong>integer (required)</strong><br />Quantity for the line item. Minimum value: 1.</td>\n</tr>\n<tr>\n<td>line_items[].unit_price</td>\n<td><strong>numeric (required)</strong><br />Unit price (pre-tax) for the line item. Minimum value: 0.</td>\n</tr>\n<tr>\n<td>line_items[].tax_code</td>\n<td><em>string (optional)</em><br />TaxJar product tax code for items taxed at reduced or exempt rates (e.g. <code>20010</code> for Clothing, <code>40030</code> for Food &amp; Groceries, <code>51020</code> for Prescription Drugs). Omit to treat the item as fully taxable. Invalid codes are rejected by TaxJar. Maximum length: 100 characters.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong><br />Indicates whether the API request was successful.</td>\n</tr>\n<tr>\n<td>data.tax_amount</td>\n<td><strong>number</strong><br />Total sales tax to collect from the customer, in the campaign's currency.</td>\n</tr>\n<tr>\n<td>data.tax_rate</td>\n<td><strong>number</strong><br />Effective tax rate applied to the cart (e.g. <code>0.0875</code> for 8.75%).</td>\n</tr>\n<tr>\n<td>data.breakdown</td>\n<td><strong>object</strong><br />Per-jurisdiction breakdown of the tax amount. Keys: <code>state</code>, <code>county</code>, <code>city</code>, <code>special</code>.</td>\n</tr>\n<tr>\n<td>data.tax_enabled</td>\n<td><strong>boolean</strong><br /><code>true</code> when a tax provider ran the calculation. <code>false</code> when the campaign is not configured for tax — all other fields will be zero/empty.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"sample-success-response-tax-enabled\">Sample Success Response (tax enabled)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"tax_amount\": 4.37,\n    \"tax_rate\": 0.0875,\n    \"breakdown\": {\n      \"state\": 3.00,\n      \"county\": 0.50,\n      \"city\": 0.50,\n      \"special\": 0.37\n    },\n    \"tax_enabled\": true\n  }\n}\n</code></pre>\n<h2 id=\"sample-success-response-tax-disabled\">Sample Success Response (tax disabled)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"tax_amount\": 0,\n    \"tax_rate\": 0,\n    \"breakdown\": [],\n    \"tax_enabled\": false\n  }\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Scenario</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>API key missing or lacks the <code>api:tax.calculate</code> permission.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation failed. Response body includes a per-field <code>errors</code> object.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"product-tax-codes\">Product Tax Codes</h2>\n<p>TaxJar exposes a taxonomy of product categories that alter per-jurisdiction taxability (clothing is exempt in PA but taxable in CA, groceries are reduced-rate in many states, prescriptions are exempt nearly everywhere, etc.).</p>\n<ul>\n<li><strong>Omit <code>tax_code</code></strong> to treat the item as fully taxable — TaxJar's default.</li>\n<li><strong>Provide <code>tax_code</code></strong> to let TaxJar consult ship-from / ship-to / local rules for that category.</li>\n<li>Tax codes set on the Product in the CRM flow through automatically via the cart, so this field is mainly for callers that construct line items outside the normal product catalog.</li>\n<li>The full category list (~860 codes) is available at <code>GET /v2/categories</code> in the TaxJar API.</li>\n</ul>\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<ul>\n<li>Call this endpoint during checkout whenever the shipping address or cart contents change.</li>\n<li>The returned <code>tax_amount</code> can be passed back to <code>POST /checkout/orders</code> as <code>tax_amount</code> (and optionally <code>tax_rate</code>) to lock in the calculated value. The Order endpoints will otherwise recompute tax server-side when the campaign has tax enabled.</li>\n<li>Tax is not persisted by this endpoint; nothing is sent to TaxJar's Transactions API until an order is actually created and completed.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","tax"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[],"_postman_id":"f3fe02c4-0f27-a5be-85c7-0b3894722f58"}],"id":"42e00beb-9cc0-4758-b8a6-3cfc8ff52cc2","description":"<h4 id=\"the-orders-api-allows-you-to-manage-customer-orders-process-payments-and-handle-upsells-within-the-health-suite-system\">The Orders API allows you to manage customer orders, process payments, and handle upsells within the Health Suite system</h4>\n<p>Here are example offers and how you would interract with the endpoints:</p>\n<ul>\n<li><p>Multiple Step Form with Upsells (Capture lead and then capture card information):<br />  Create Lead -&gt; Process Payment -&gt; Process Upsell #1 -&gt; Process Upsell #2 -&gt; Complete Order (optional)</p>\n</li>\n<li><p>Single Checkout Form with Upsells (Capture lead and card information in one form):<br />  Create Order -&gt; Process Upsell #1 -&gt; Process Upsell #2 -&gt; Complete Order (optional)</p>\n</li>\n</ul>\n<p>Note: The Create Order endpoint is a stand-alone order creation for 1-step checkouts.<br />Where as the Create Lead and Process Payment endpoint are paired together for 2-step checkouts</p>\n","_postman_id":"42e00beb-9cc0-4758-b8a6-3cfc8ff52cc2","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Transactions","item":[{"name":"Search Transactions","id":"5008024c-7d02-4b21-9002-956638df168a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"customer[email]","value":"test@example.com","type":"text"},{"key":"customer[first_name]","value":"John","type":"text"},{"key":"customer[last_name]","value":"Doe","type":"text"},{"key":"customer[phone]","value":"5551234567","type":"text"},{"key":"shipping[address1]","value":"123 Main St","type":"text"},{"key":"shipping[address2]","value":"Apt 4B","type":"text"},{"key":"shipping[city]","value":"New York","type":"text"},{"key":"shipping[state]","value":"NY","type":"text"},{"key":"shipping[postal_code]","value":"10001","type":"text"},{"key":"shipping[country]","value":"US","type":"text"},{"key":"campaign_id","value":"1","type":"text"},{"key":"currency","value":"USD","type":"text"},{"key":"utm_source","value":"google","type":"text"},{"key":"utm_medium","value":"cpc","type":"text"},{"key":"utm_campaign","value":"summer_sale","type":"text"},{"key":"utm_term","value":"best deals","type":"text"},{"key":"utm_content","value":"banner1","type":"text"},{"key":"affiliate_id","value":"AFF123","type":"text"},{"key":"sub_affiliate_id","value":"SUB456","type":"text"},{"key":"products[0][offer_id]","value":"1","type":"text"},{"key":"products[0][quantity]","value":"1","type":"text"},{"key":"products[1][offer_id]","value":"2","type":"text"},{"key":"products[1][quantity]","value":"1","type":"text"},{"key":"ip_address","value":"192.168.1.1","type":"text"},{"key":"user_agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","type":"text"}]},"url":"https://api.healthsuite.io/checkout/transactions?transaction_number=TXN-250321-000002&date_start=2025-01-01&date_end=2025-03-22&per_page=10","description":"<h1 id=\"search-transactions\">Search Transactions</h1>\n<p>Return payment transactions that match the specified search criteria from within the CRM</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>transaction_number</td>\n<td><em>string (optional)</em>  <br />Filter by transaction number</td>\n</tr>\n<tr>\n<td>external_transaction_id</td>\n<td><em>string (optional)</em>  <br />Filter by external transaction ID (e.g. gateway reference)</td>\n</tr>\n<tr>\n<td>order_number</td>\n<td><em>string (optional)</em>  <br />Filter by associated order number</td>\n</tr>\n<tr>\n<td>customer_number</td>\n<td><em>string (optional)</em>  <br />Filter by customer number</td>\n</tr>\n<tr>\n<td>customer_email</td>\n<td><em>string (optional)</em>  <br />Filter by customer email address</td>\n</tr>\n<tr>\n<td>status</td>\n<td><em>string (optional)</em>  <br />Filter by transaction status. Possible values: \"pending\", \"processing\", \"authorized\", \"completed\", \"failed\", \"declined\", \"refunded\", \"partially_refunded\", \"alert_refunded\", \"rdr_refunded\", \"voided\", \"canceled\", \"expired\", \"chargeback\", \"error\"</td>\n</tr>\n<tr>\n<td>date_start</td>\n<td><em>date (optional)</em>  <br />Filter for transactions processed on or after this date (format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>date_end</td>\n<td><em>date (optional)</em>  <br />Filter for transactions processed on or before this date (format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>card_first_six</td>\n<td><em>string (optional)</em>  <br />Filter by first six digits of the card number (must be exactly 6 digits)</td>\n</tr>\n<tr>\n<td>card_last_four</td>\n<td><em>string (optional)</em>  <br />Filter by last four digits of the card number (must be exactly 4 digits)</td>\n</tr>\n<tr>\n<td>amount</td>\n<td><em>numeric (optional)</em>  <br />Filter by exact transaction amount</td>\n</tr>\n<tr>\n<td>per_page</td>\n<td><em>integer (optional)</em>  <br />Number of results per page. Minimum: 1, Maximum: 100</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>array</strong>  <br />Array of transaction objects matching the search criteria</td>\n</tr>\n<tr>\n<td>data[].customer_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the customer</td>\n</tr>\n<tr>\n<td>data[].order_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the order</td>\n</tr>\n<tr>\n<td>data[].card_first_six</td>\n<td><strong>string</strong>  <br />First six digits of the card number used for the transaction</td>\n</tr>\n<tr>\n<td>data[].card_last_four</td>\n<td><strong>string</strong>  <br />Last four digits of the card number used for the transaction</td>\n</tr>\n<tr>\n<td>data[].transaction_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the transaction</td>\n</tr>\n<tr>\n<td>data[].campaign_name</td>\n<td><strong>string</strong>  <br />Name of the campaign associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].campaign_id</td>\n<td><strong>string</strong>  <br />Internal ID of the campaign associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].gateway_name</td>\n<td><strong>string</strong>  <br />Name of the payment gateway used for the transaction</td>\n</tr>\n<tr>\n<td>data[].gateway_id</td>\n<td><strong>string</strong>  <br />Internal ID of the payment gateway used for the transaction</td>\n</tr>\n<tr>\n<td>data[].external_transaction_id</td>\n<td><strong>string</strong>  <br />Identifier provided by the payment gateway</td>\n</tr>\n<tr>\n<td>data[].status</td>\n<td><strong>string</strong>  <br />Status of the transaction. Possible values: \"pending\", \"processing\", \"authorized\", \"completed\", \"failed\", \"declined\", \"refunded\", \"partially_refunded\", \"alert_refunded\", \"rdr_refunded\", \"voided\", \"canceled\", \"expired\", \"chargeback\", \"error\"</td>\n</tr>\n<tr>\n<td>data[].amount</td>\n<td><strong>string</strong>  <br />Transaction amount</td>\n</tr>\n<tr>\n<td>data[].currency</td>\n<td><strong>string</strong>  <br />Three-letter currency code (ISO 4217) used for the transaction</td>\n</tr>\n<tr>\n<td>data[].payment_method</td>\n<td><strong>string</strong>  <br />Method used for payment (e.g., \"card\")</td>\n</tr>\n<tr>\n<td>data[].affiliate_name</td>\n<td><strong>string</strong>  <br />Name of the affiliate associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].affiliate_id</td>\n<td><strong>string</strong>  <br />Custom ID of the affiliate associated with the transaction</td>\n</tr>\n<tr>\n<td>data[].sub1</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 1</td>\n</tr>\n<tr>\n<td>data[].sub2</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 2</td>\n</tr>\n<tr>\n<td>data[].sub3</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 3</td>\n</tr>\n<tr>\n<td>data[].sub4</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 4</td>\n</tr>\n<tr>\n<td>data[].sub5</td>\n<td><strong>string</strong>  <br />Sub-affiliate ID 5</td>\n</tr>\n<tr>\n<td>data[].utm_source</td>\n<td><strong>string</strong>  <br />UTM source parameter</td>\n</tr>\n<tr>\n<td>data[].utm_medium</td>\n<td><strong>string</strong>  <br />UTM medium parameter</td>\n</tr>\n<tr>\n<td>data[].utm_campaign</td>\n<td><strong>string</strong>  <br />UTM campaign parameter</td>\n</tr>\n<tr>\n<td>data[].utm_term</td>\n<td><strong>string</strong>  <br />UTM term parameter</td>\n</tr>\n<tr>\n<td>data[].utm_content</td>\n<td><strong>string</strong>  <br />UTM content parameter</td>\n</tr>\n<tr>\n<td>data[].card_brand</td>\n<td><strong>string</strong>  <br />Card brand/network (e.g., \"Visa\", \"Mastercard\", \"Amex\", \"Discover\")</td>\n</tr>\n<tr>\n<td>data[].is_upsell</td>\n<td><strong>boolean</strong>  <br />Indicates if this transaction was for an upsell product</td>\n</tr>\n<tr>\n<td>data[].upsell_depth</td>\n<td><strong>integer</strong>  <br />Depth level of the upsell in the sales funnel</td>\n</tr>\n<tr>\n<td>data[].gateway_response</td>\n<td><strong>string</strong>  <br />Response code or message from the payment gateway</td>\n</tr>\n<tr>\n<td>data[].created_at</td>\n<td><strong>string</strong>  <br />Date and time when the transaction was created (format: YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>data[].updated_at</td>\n<td><strong>string</strong>  <br />Date and time when the transaction was last updated (format: YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>data[].products</td>\n<td><strong>array</strong>  <br />Array of products included in this transaction</td>\n</tr>\n<tr>\n<td>data[].products[].id</td>\n<td><strong>integer</strong>  <br />Unique identifier for the product</td>\n</tr>\n<tr>\n<td>data[].products[].name</td>\n<td><strong>string</strong>  <br />Name of the product</td>\n</tr>\n<tr>\n<td>data[].products[].type</td>\n<td><strong>string</strong>  <br />Type of the product (e.g., \"offer\")</td>\n</tr>\n<tr>\n<td>pagination</td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td>pagination.total</td>\n<td><strong>integer</strong>  <br />Total number of records matching the search criteria</td>\n</tr>\n<tr>\n<td>pagination.per_page</td>\n<td><strong>integer</strong>  <br />Number of records displayed per page</td>\n</tr>\n<tr>\n<td>pagination.current_page</td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td>pagination.last_page</td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","transactions"],"host":["api","healthsuite","io"],"query":[{"key":"transaction_number","value":"TXN-250321-000002"},{"disabled":true,"key":"external_transaction_id","value":"12345ABC"},{"disabled":true,"key":"order_number","value":"ORD-250315-00010"},{"disabled":true,"key":"customer_number","value":"CUST-250315-00005"},{"disabled":true,"key":"customer_email","value":"test@example.com"},{"disabled":true,"key":"status","value":"completed"},{"key":"date_start","value":"2025-01-01"},{"key":"date_end","value":"2025-03-22"},{"key":"per_page","value":"10"}],"variable":[]}},"response":[{"id":"fee360ff-88f1-430c-aa15-addb6e5ee87e","name":"Search Transactions Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.healthsuite.io/checkout/transactions?transaction_number=TXN-250321-000002&date_start=2025-01-01&date_end=2025-03-22&per_page=10","protocol":"https","host":["api","healthsuite","io"],"path":["checkout","transactions"],"query":[{"key":"transaction_number","value":"TXN-250321-000002"},{"key":"external_transaction_id","value":"12345ABC","type":"text","disabled":true},{"key":"order_number","value":"ORD-250315-00010","type":"text","disabled":true},{"key":"customer_number","value":"CUST-250315-00005","type":"text","disabled":true},{"key":"customer_email","value":"test@example.com","disabled":true},{"key":"status","value":"completed","type":"text","disabled":true},{"key":"date_start","value":"2025-01-01"},{"key":"date_end","value":"2025-03-22"},{"key":"per_page","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:20:41 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9239f8b72c7f72eb-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"customer_number\": \"CUST-250529-00001\",\n            \"order_number\": \"ORD-250529-00001\",\n            \"transaction_number\": \"TXN-250529-000001\",\n            \"campaign_name\": \"Summer Health Promo\",\n            \"campaign_id\": \"3\",\n            \"gateway_name\": \"NMI Production\",\n            \"gateway_id\": \"5\",\n            \"external_transaction_id\": \"SANDBOX-8E02E190-55B4-45FC-BAEB-05D141613532\",\n            \"status\": \"completed\",\n            \"amount\": \"270.00\",\n            \"currency\": \"USD\",\n            \"payment_method\": \"card\",\n            \"affiliate_name\": \"HealthAds Network\",\n            \"affiliate_id\": \"AFF-001\",\n            \"sub1\": \"landing_v2\",\n            \"sub2\": \"banner_top\",\n            \"sub3\": null,\n            \"sub4\": null,\n            \"sub5\": null,\n            \"utm_source\": \"google\",\n            \"utm_medium\": \"cpc\",\n            \"utm_campaign\": \"summer_sale\",\n            \"utm_term\": \"best deals\",\n            \"utm_content\": \"banner1\",\n            \"card_brand\": \"Visa\",\n            \"card_first_six\": \"411111\",\n            \"card_last_four\": \"1111\",\n            \"is_upsell\": false,\n            \"upsell_depth\": 0,\n            \"gateway_response\": \"Sandbox: Transaction approved\",\n            \"created_at\": \"2025-05-29 14:56:53\",\n            \"updated_at\": \"2025-05-29 14:56:53\",\n            \"products\": [\n                {\n                    \"id\": 9,\n                    \"name\": \"Restore - 6 Bottles\",\n                    \"type\": \"offer\"\n                }\n            ]\n        }\n    ],\n    \"pagination\": {\n        \"total\": 1,\n        \"per_page\": 10,\n        \"current_page\": 1,\n        \"last_page\": 1\n    }\n}"}],"_postman_id":"5008024c-7d02-4b21-9002-956638df168a"},{"name":"Refund Transaction","id":"e52a9a2b-5728-4717-8753-4a2967c174c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"transaction_number","value":"TXN-250321-000002","type":"text"},{"key":"amount","value":"25.00","type":"text","disabled":true},{"key":"is_external","value":"false","type":"text"},{"key":"refund_reason","value":"Customer dissatisfied with product","type":"text"}]},"url":"https://api.healthsuite.io/checkout/transactions/refund","description":"<h1 id=\"refund-transaction\">Refund Transaction</h1>\n<p>Process a refund for a specific transaction from within the CRM</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>transaction_number</td>\n<td><strong>string (required)</strong>  <br />The transaction number to refund</td>\n</tr>\n<tr>\n<td>amount</td>\n<td><em>numeric (optional)</em>  <br />Amount to refund. Minimum value: 0.01. If not provided, the full transaction amount will be refunded</td>\n</tr>\n<tr>\n<td>is_external</td>\n<td><em>boolean (optional)</em>  <br />Indicates if the refund was processed outside the system. Accepted values: true, false, 1, 0, yes, no</td>\n</tr>\n<tr>\n<td>refund_reason</td>\n<td><em>string (optional)</em>  <br />Reason for the refund. Maximum length: 255 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Contains the detailed response data</td>\n</tr>\n<tr>\n<td>data.order_number</td>\n<td><strong>string</strong>  <br />The unique identifier for the order</td>\n</tr>\n<tr>\n<td>data.status</td>\n<td><strong>string</strong>  <br />Current status of the order (e.g., \"refunded\")</td>\n</tr>\n<tr>\n<td>data.currency</td>\n<td><strong>string</strong>  <br />Three-letter currency code (ISO 4217) used for the order</td>\n</tr>\n<tr>\n<td>data.created_at</td>\n<td><strong>string</strong>  <br />Date and time when the order was created (format: YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>data.transactions</td>\n<td><strong>array</strong>  <br />List of transactions associated with this order</td>\n</tr>\n<tr>\n<td>data.transactions[].transaction_number</td>\n<td><strong>string</strong>  <br />Unique identifier for the transaction</td>\n</tr>\n<tr>\n<td>data.transactions[].external_transaction_id</td>\n<td><strong>string</strong>  <br />Identifier provided by the payment gateway</td>\n</tr>\n<tr>\n<td>data.transactions[].status</td>\n<td><strong>string</strong>  <br />Status of the transaction (e.g., \"completed\", \"refunded\")</td>\n</tr>\n<tr>\n<td>data.transactions[].amount</td>\n<td><strong>string</strong>  <br />Transaction amount (negative for refunds)</td>\n</tr>\n<tr>\n<td>data.transactions[].currency</td>\n<td><strong>string</strong>  <br />Three-letter currency code for the transaction</td>\n</tr>\n<tr>\n<td>data.transactions[].payment_method</td>\n<td><strong>string</strong>  <br />Method used for payment (e.g., \"card\")</td>\n</tr>\n<tr>\n<td>data.transactions[].is_upsell</td>\n<td><strong>boolean</strong>  <br />Indicates if this transaction was for an upsell product</td>\n</tr>\n<tr>\n<td>data.transactions[].upsell_depth</td>\n<td><strong>integer</strong>  <br />Depth level of the upsell in the sales funnel</td>\n</tr>\n<tr>\n<td>data.transactions[].gateway_response</td>\n<td><strong>string</strong>  <br />Response code or message from the payment gateway</td>\n</tr>\n<tr>\n<td>data.transactions[].created_at</td>\n<td><strong>string</strong>  <br />Date and time when the transaction was created</td>\n</tr>\n<tr>\n<td>data.transactions[].updated_at</td>\n<td><strong>string</strong>  <br />Date and time when the transaction was last updated</td>\n</tr>\n<tr>\n<td>data.cart</td>\n<td><strong>object</strong>  <br />Contains information about the order's cart</td>\n</tr>\n<tr>\n<td>data.cart.tax</td>\n<td><strong>string</strong>  <br />Total tax amount for the order</td>\n</tr>\n<tr>\n<td>data.cart.items</td>\n<td><strong>array</strong>  <br />List of items in the cart</td>\n</tr>\n<tr>\n<td>data.cart.items[].quantity</td>\n<td><strong>string</strong>  <br />Quantity of this product</td>\n</tr>\n<tr>\n<td>data.cart.items[].unit_price</td>\n<td><strong>string</strong>  <br />Price per unit of the product</td>\n</tr>\n<tr>\n<td>data.cart.items[].shipping_price</td>\n<td><strong>string</strong>  <br />Shipping cost for this product</td>\n</tr>\n<tr>\n<td>data.cart.items[].subtotal</td>\n<td><strong>number</strong>  <br />Product subtotal (unit_price × quantity)</td>\n</tr>\n<tr>\n<td>data.cart.items[].tax</td>\n<td><strong>number</strong>  <br />Tax amount for this product</td>\n</tr>\n<tr>\n<td>data.cart.items[].is_upsell</td>\n<td><strong>boolean</strong>  <br />Indicates if this item is an upsell product</td>\n</tr>\n<tr>\n<td>data.cart.items[].offer_id</td>\n<td><strong>integer</strong>  <br />ID of the offer associated with this product (if applicable)</td>\n</tr>\n<tr>\n<td>data.cart.total</td>\n<td><strong>string</strong>  <br />Total amount of the order (subtotal + shipping + tax)</td>\n</tr>\n<tr>\n<td>data.cart.shipping</td>\n<td><strong>string</strong>  <br />Total shipping cost for the order</td>\n</tr>\n<tr>\n<td>data.cart.subtotal</td>\n<td><strong>string</strong>  <br />Subtotal of all items before shipping and tax</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"taxjar-integration\">TaxJar Integration</h2>\n<p>When a refund is processed on an order whose campaign has TaxJar enabled and whose original order was posted to TaxJar, a matching refund transaction is automatically posted to TaxJar's <code>/v2/transactions/refunds</code> endpoint. No additional request fields are required — tax handling is driven by the campaign's tax provider configuration and the order's original TaxJar transaction.</p>\n<p><strong>Proration:</strong> The refund's tax and shipping portions are prorated by <code>refund_amount / order_total</code> against the original order's tax and shipping. Example — refunding $59.38 of a $118.75 order (50%) posts <code>sales_tax: -4.38</code> against the original <code>sales_tax: 8.75</code>.</p>\n<p><strong>Coverage:</strong></p>\n<ul>\n<li>Full refunds, partial refunds, and multiple refunds against the same order.</li>\n<li>Post-capture voids (<code>OrderVoidedEvent</code>) on TaxJar-posted orders — sent as a full-amount negative refund.</li>\n<li>External / RDR refunds (<code>is_external: true</code>) — still posted since TaxJar tracks tax liability regardless of money movement.</li>\n<li>Dispute-alert refunds (via Dispute.com) processed by <code>ProcessAlertRefundAction</code>.</li>\n</ul>\n<p><strong>Idempotency:</strong> Each refund is posted with a stable <code>transaction_id</code> of <code>\"{order_id}-refund-{transaction_id}\"</code> and a <code>transaction_reference_id</code> linking to the original order. Duplicate posts (422) are treated as success. The <code>transactions.tax_posted_at</code> timestamp marks which refund rows have been posted.</p>\n<p><strong>Skipped cases:</strong> Orders without a TaxJar provider, with <code>tax_enabled: false</code>, or that were never posted to TaxJar (<code>orders.tax_posted_at</code> null) — nothing is sent in these cases.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["checkout","transactions","refund"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"cf578955-c1c8-46ff-8c2d-2dbf37992bb6","name":"Refund Transaction Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"transaction_number","value":"TXN-250321-000002","type":"text"},{"key":"amount","value":"25.00","type":"text","disabled":true},{"key":"is_external","value":"false","type":"text"},{"key":"refund_reason","value":"Customer dissatisfied with product","type":"text"}]},"url":"https://api.healthsuite.io/checkout/transactions/refund"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:18:17 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=AvMgevgPbZjCScyNbta1s%2FoZ6a0aTUPoUb%2B7P4w1nQtOy1Tj9hp8eLpZzMpR%2BW6lQVjiIGbRw%2FlvyTSTOGVT8dfJHUME%2Fssq2yYVGHxih8G3BuiO%2FNHeWX%2F6siS1jYbWUZI%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"9239f52ac835e821-ORD"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=13874&min_rtt=13033&rtt_var=5488&sent=4&recv=5&lost=0&retrans=0&sent_bytes=2809&recv_bytes=848&delivery_rate=224046&cwnd=250&unsent_bytes=0&cid=f867c0497da7b3f5&ts=1425&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Transaction refunded successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-250321-00001\",\n        \"status\": \"refunded\",\n        \"currency\": \"USD\",\n        \"created_at\": \"2025-03-21 01:59:46\",\n        \"transactions\": [\n            {\n                \"transaction_number\": \"TXN-250321-000001\",\n                \"external_transaction_id\": \"10528333031\",\n                \"status\": \"completed\",\n                \"amount\": \"689.97\",\n                \"currency\": \"USD\",\n                \"payment_method\": \"card\",\n                \"is_upsell\": false,\n                \"upsell_depth\": 1,\n                \"gateway_response\": \"SUCCESS\",\n                \"created_at\": \"2025-03-21 02:13:55\",\n                \"updated_at\": \"2025-03-21 02:13:55\"\n            },\n            {\n                \"transaction_number\": \"TXN-250321-000002\",\n                \"external_transaction_id\": \"10528336842\",\n                \"status\": \"completed\",\n                \"amount\": \"34.98\",\n                \"currency\": \"USD\",\n                \"payment_method\": \"card\",\n                \"is_upsell\": true,\n                \"upsell_depth\": 1,\n                \"gateway_response\": \"SUCCESS\",\n                \"created_at\": \"2025-03-21 02:16:22\",\n                \"updated_at\": \"2025-03-21 02:16:22\"\n            },\n            {\n                \"transaction_number\": \"TXN-250321-000003\",\n                \"external_transaction_id\": \"10528339625\",\n                \"status\": \"refunded\",\n                \"amount\": \"-34.98\",\n                \"currency\": \"USD\",\n                \"payment_method\": \"card\",\n                \"is_upsell\": false,\n                \"upsell_depth\": 1,\n                \"gateway_response\": \"SUCCESS\",\n                \"created_at\": \"2025-03-21 02:18:17\",\n                \"updated_at\": \"2025-03-21 02:18:17\"\n            }\n        ],\n        \"cart\": {\n            \"tax\": \"0.00\",\n            \"items\": [\n                {\n                    \"quantity\": \"1\",\n                    \"unit_price\": \"279.99\",\n                    \"shipping_price\": \"9.99\",\n                    \"subtotal\": 279.99,\n                    \"tax\": 0,\n                    \"is_upsell\": false,\n                    \"offer_id\": 1\n                },\n                {\n                    \"quantity\": \"1\",\n                    \"unit_price\": \"399.99\",\n                    \"shipping_price\": \"0.00\",\n                    \"subtotal\": 399.99,\n                    \"tax\": 0,\n                    \"is_upsell\": false,\n                    \"offer_id\": 2\n                },\n                {\n                    \"quantity\": \"1\",\n                    \"unit_price\": \"29.99\",\n                    \"shipping_price\": \"4.99\",\n                    \"subtotal\": 29.99,\n                    \"tax\": 0,\n                    \"is_upsell\": true\n                }\n            ],\n            \"total\": \"724.95\",\n            \"shipping\": \"14.98\",\n            \"subtotal\": \"709.97\"\n        }\n    }\n}"}],"_postman_id":"e52a9a2b-5728-4717-8753-4a2967c174c0"}],"id":"4bddebb7-6cc9-467c-88f4-7e24b323a14c","description":"<h4 id=\"transactions-api-allows-you-to-search-for-transactions-and-process-refunds-within-the-crm\">Transactions API allows you to search for transactions and process refunds within the CRM</h4>\n","_postman_id":"4bddebb7-6cc9-467c-88f4-7e24b323a14c","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}}],"id":"c9208f34-4f7d-4c70-a526-54f9aae2addd","description":"<p>This simplified API streamlines the checkout process for developers. Designed with ease of use in mind, Health Suite API reduces complexity and allows you to implement checkout functionality with minimal code requirements. The streamlined interface focuses on essential operations, making integration straightforward while maintaining robust functionality.</p>\n<p><a href=\"https://app.healthsuite.io/onboarding\">Register for a Health Suite account to get started</a></p>\n<h2 id=\"api-authentication\">API Authentication</h2>\n<h3 id=\"getting-your-api-key\">Getting Your API Key</h3>\n<ol>\n<li><p>Login to your Health Suite Account</p>\n</li>\n<li><p>Navigate to Settings &gt; API Keys</p>\n</li>\n<li><p>Click \"Generate API Key\"</p>\n</li>\n<li><p>Copy your newly generated API key</p>\n</li>\n<li><p>Store this key securely - it will only be shown once</p>\n</li>\n</ol>\n<h3 id=\"using-your-api-key\">Using Your API Key</h3>\n<p>Include your API key in all requests as a Bearer token in the Authorization header:</p>\n<p><code>Authorization: Bearer YOUR_API_KEY_HERE</code></p>\n<p>All authenticated endpoints require this header to be present with a valid API key.</p>\n<h3 id=\"content-type-and-accept-headers\">Content-Type And Accept Headers</h3>\n<p>This is a JSON API and requires proper headers for all requests:</p>\n<ul>\n<li><p>All requests must include <code>Content-Type: application/json</code></p>\n</li>\n<li><p>All requests must include <code>Accept: application/json</code></p>\n</li>\n</ul>\n<p>If these headers are not included, the API will return a 400 Bad Request response with an error message indicating which header is missing or incorrect, such as \"Content-Type must be application/json\" or \"Accept must be application/json\".</p>\n<h3 id=\"rate-and-usage-limits\">Rate and Usage Limits</h3>\n<p>To ensure system stability and fair usage, API requests are subject to the below rate limiting per account:</p>\n<ul>\n<li><p>100 requests per minute is default</p>\n</li>\n<li><p>Enterprise accounts can be set to custom rate limits (e.g. 1,000 requests per minute and beyond). To increase rate limits please email <a href=\"https://mailto:hello@healthsuite.io\">hello@healthsuite.io</a>.</p>\n</li>\n</ul>\n<p>When a rate limit is exceeded, the API will return a 429 Too Many Requests response with the following headers:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-RateLimit-Limit</td>\n<td>The maximum number of requests that the consumer is permitted to make per minute. Default to 100 requests per minute. Please contact support if you need a higher quota.</td>\n</tr>\n<tr>\n<td>X-RateLimit-Remaining</td>\n<td>The number of requests remaining in the current rate limit window.</td>\n</tr>\n<tr>\n<td>X-RateLimit-Reset</td>\n<td>The time in milliseconds until the current window resets.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"errors\">Errors</h2>\n<p>Health Suite uses conventional HTTP response codes to indicate the success or failure of an API request. In general:</p>\n<ul>\n<li><p>Codes in the <code>2xx</code> range indicate success</p>\n</li>\n<li><p>Codes in the <code>4xx</code> range indicate an error that failed given the information provided (e.g., a required parameter was omitted, invalid object passed, etc.)</p>\n</li>\n<li><p>Codes in the <code>5xx</code> range indicate an error with Health Suite's servers (these are rare)</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>HTTP STATUS CODE</th>\n<th>SUMMARY</th>\n<th>DESCRIPTION</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>OK</td>\n<td>Everything worked as expected.</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Created</td>\n<td>Resource was successfully created.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad Request</td>\n<td>The request was unacceptable, often due to missing a required parameter.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>No valid API key provided.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>The API key doesn't have permissions to perform the request.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>The requested resource doesn't exist.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>The request was well-formed but was unable to be followed due to validation errors.</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Too Many Requests</td>\n<td>Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.</td>\n</tr>\n<tr>\n<td>500, 502, 503, 504</td>\n<td>Server Errors</td>\n<td>Something went wrong on Health Suite's end. (These are rare.)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-error-response\">Example Error Response</h3>\n<p>All <code>4xx</code> and <code>5xx</code> errors return an error message via the \"errors\" field.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"success\": false,\n  \"message\": \"Validation error\",\n  \"errors\": {\n    \"customer.email\": [\n      \"The email field is required.\"\n    ],\n    \"shipping.address1\": [\n      \"The address1 field is required.\"\n    ]\n  }\n}\n\n</code></pre><h3 id=\"null-values\">Null Values</h3>\n<p>If there is no data for a response field, the API will use <code>null</code> for that field's value.</p>\n","_postman_id":"c9208f34-4f7d-4c70-a526-54f9aae2addd","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"REST API","item":[{"name":"Campaign","item":[{"name":"Search Campaign(s)","id":"680fe3bc-778e-4784-9cdd-5bfec8b4d4e3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/campaigns?is_active=1&per_page=10","description":"<h1 id=\"get-campaigns\">Get Campaigns</h1>\n<p>Retrieve information about campaigns that match the specified search criteria, or get a specific campaign by its identifier.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>identifier</td>\n<td><em>string (optional)</em>  <br />Get a specific campaign by internal ID. When provided, returns a single campaign instead of a paginated list.</td>\n</tr>\n<tr>\n<td>is_active</td>\n<td><em>string (optional)</em>  <br />Filter campaigns by active status. Supported values: <code>true</code>, <code>false</code>, <code>1</code>, <code>0</code></td>\n</tr>\n<tr>\n<td>category_id</td>\n<td><em>integer (optional)</em>  <br />Filter campaigns by category ID.</td>\n</tr>\n<tr>\n<td>search</td>\n<td><em>string (optional)</em>  <br />Search campaigns by name or internal ID. Performs partial matching using SQL LIKE operations.</td>\n</tr>\n<tr>\n<td>per_page</td>\n<td><em>integer (optional)</em>  <br />Number of results per page. Minimum: 1, Maximum: 15. Default: 15</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>array/object</strong>  <br />When <code>identifier</code> is provided, returns a single campaign object. Otherwise, returns an array of campaign objects matching the search criteria</td>\n</tr>\n<tr>\n<td>data.id</td>\n<td><strong>integer</strong>  <br />Unique database identifier for the campaign</td>\n</tr>\n<tr>\n<td>data.internal_id</td>\n<td><strong>string</strong>  <br />Internal identifier for the campaign</td>\n</tr>\n<tr>\n<td>data.name</td>\n<td><strong>string</strong>  <br />Campaign name</td>\n</tr>\n<tr>\n<td>data.uuid</td>\n<td><strong>string</strong>  <br />Universal unique identifier for the campaign</td>\n</tr>\n<tr>\n<td>data.is_active</td>\n<td><strong>boolean</strong>  <br />Indicates if the campaign is currently active</td>\n</tr>\n<tr>\n<td>data.allowed_countries</td>\n<td><strong>array</strong>  <br />List of country codes where the campaign is allowed (ISO 3166-1 alpha-2 format)</td>\n</tr>\n<tr>\n<td>data.allowed_currencies</td>\n<td><strong>array</strong>  <br />List of currency codes allowed for the campaign (ISO 4217 format)</td>\n</tr>\n<tr>\n<td>data.allowed_card_brands</td>\n<td><strong>array</strong>  <br />List of card brands allowed for the campaign (e.g., \"visa\", \"mastercard\")</td>\n</tr>\n<tr>\n<td>data.allow_prepaid_cards</td>\n<td><strong>boolean</strong>  <br />Indicates if prepaid cards are allowed</td>\n</tr>\n<tr>\n<td>data.allow_virtual_cards</td>\n<td><strong>boolean</strong>  <br />Indicates if virtual cards are allowed</td>\n</tr>\n<tr>\n<td>data.allow_international_cards</td>\n<td><strong>boolean</strong>  <br />Indicates if international cards are allowed</td>\n</tr>\n<tr>\n<td>data.minimum_amount</td>\n<td><strong>string</strong>  <br />Minimum transaction amount allowed for the campaign</td>\n</tr>\n<tr>\n<td>data.maximum_amount</td>\n<td><strong>string</strong>  <br />Maximum transaction amount allowed for the campaign</td>\n</tr>\n<tr>\n<td>data.max_customer_declines</td>\n<td><strong>integer</strong>  <br />Maximum number of declines allowed per customer</td>\n</tr>\n<tr>\n<td>data.fulfillment_delay</td>\n<td><strong>integer</strong>  <br />Delay in hours before fulfillment processing</td>\n</tr>\n<tr>\n<td>data.category</td>\n<td><strong>object/null</strong>  <br />Campaign category information</td>\n</tr>\n<tr>\n<td>data.category.id</td>\n<td><strong>integer</strong>  <br />Category ID</td>\n</tr>\n<tr>\n<td>data.category.name</td>\n<td><strong>string</strong>  <br />Category name</td>\n</tr>\n<tr>\n<td>data.gateway_id</td>\n<td><strong>integer/null</strong>  <br />Payment gateway ID associated with the campaign</td>\n</tr>\n<tr>\n<td>data.payment_orchestrator_id</td>\n<td><strong>integer/null</strong>  <br />Payment orchestrator ID associated with the campaign</td>\n</tr>\n<tr>\n<td>data.created_at</td>\n<td><strong>string</strong>  <br />Date and time when the campaign was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.updated_at</td>\n<td><strong>string</strong>  <br />Date and time when the campaign was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.offers_count</td>\n<td><strong>integer</strong>  <br />Number of active offers associated with the campaign</td>\n</tr>\n<tr>\n<td>data.upsells_count</td>\n<td><strong>integer</strong>  <br />Number of active upsells associated with the campaign</td>\n</tr>\n<tr>\n<td>pagination</td>\n<td><strong>object</strong>  <br />Contains pagination information for the response (only present when returning multiple campaigns)</td>\n</tr>\n<tr>\n<td>pagination.total</td>\n<td><strong>integer</strong>  <br />Total number of campaigns matching the search criteria</td>\n</tr>\n<tr>\n<td>pagination.per_page</td>\n<td><strong>integer</strong>  <br />Number of campaigns displayed per page</td>\n</tr>\n<tr>\n<td>pagination.current_page</td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td>pagination.last_page</td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n<tr>\n<td>pagination.from</td>\n<td><strong>integer/null</strong>  <br />Starting record number for the current page</td>\n</tr>\n<tr>\n<td>pagination.to</td>\n<td><strong>integer/null</strong>  <br />Ending record number for the current page</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-requests\">Example Requests</h2>\n<h3 id=\"get-all-campaigns-paginated\">Get All Campaigns (Paginated)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"get-active-campaigns-only\">Get Active Campaigns Only</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns?is_active=true\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"get-inactive-campaigns-only\">Get Inactive Campaigns Only</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns?is_active=false\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"search-campaigns-by-name\">Search Campaigns by Name</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns?search=summer\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"get-specific-campaign-by-internal-id\">Get Specific Campaign by Internal ID</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns?identifier=123\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"combined-filters\">Combined Filters</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns?is_active=true&amp;search=sale&amp;per_page=10\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h2 id=\"example-response-single-campaign\">Example Response (Single Campaign)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"id\": 1,\n    \"internal_id\": \"123\",\n    \"name\": \"Summer Sale Campaign\",\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"is_active\": true,\n    \"allowed_countries\": [\"US\", \"CA\", \"GB\"],\n    \"allowed_currencies\": [\"USD\", \"CAD\", \"GBP\"],\n    \"allowed_card_brands\": [\"visa\", \"mastercard\", \"amex\"],\n    \"allow_prepaid_cards\": true,\n    \"allow_virtual_cards\": false,\n    \"allow_international_cards\": true,\n    \"minimum_amount\": \"1000\",\n    \"maximum_amount\": \"50000\",\n    \"max_customer_declines\": 3,\n    \"fulfillment_delay\": 24,\n    \"category\": {\n      \"id\": 1,\n      \"name\": \"E-commerce\"\n    },\n    \"gateway_id\": 1,\n    \"payment_orchestrator_id\": null,\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-20T14:45:00.000Z\",\n    \"offers_count\": 3,\n    \"upsells_count\": 2\n  }\n}\n\n</code></pre>\n<h2 id=\"example-response-multiple-campaigns\">Example Response (Multiple Campaigns)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"internal_id\": \"123\",\n      \"name\": \"Summer Sale Campaign\",\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"is_active\": true,\n      \"allowed_countries\": [\"US\", \"CA\", \"GB\"],\n      \"allowed_currencies\": [\"USD\", \"CAD\", \"GBP\"],\n      \"allowed_card_brands\": [\"visa\", \"mastercard\", \"amex\"],\n      \"allow_prepaid_cards\": true,\n      \"allow_virtual_cards\": false,\n      \"allow_international_cards\": true,\n      \"minimum_amount\": \"1000\",\n      \"maximum_amount\": \"50000\",\n      \"max_customer_declines\": 3,\n      \"fulfillment_delay\": 24,\n      \"category\": {\n        \"id\": 1,\n        \"name\": \"E-commerce\"\n      },\n      \"gateway_id\": 1,\n      \"payment_orchestrator_id\": null,\n      \"created_at\": \"2024-01-15T10:30:00.000Z\",\n      \"updated_at\": \"2024-01-20T14:45:00.000Z\",\n      \"offers_count\": 3,\n      \"upsells_count\": 2\n    }\n  ],\n  \"pagination\": {\n    \"total\": 1,\n    \"per_page\": 15,\n    \"current_page\": 1,\n    \"last_page\": 1,\n    \"from\": 1,\n    \"to\": 1\n  }\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","campaigns"],"host":["api","healthsuite","io"],"query":[{"key":"is_active","value":"1"},{"key":"per_page","value":"10"}],"variable":[]}},"response":[{"id":"6450b4f0-4c2c-46a8-83d6-abe96767a108","name":"Search Campaign(s)","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.healthsuite.io/v1/campaigns?is_active=1&per_page=10","protocol":"https","host":["api","healthsuite","io"],"path":["v1","campaigns"],"query":[{"key":"is_active","value":"1"},{"key":"per_page","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 18 Jun 2025 17:43:12 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"32000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"smartewatch.com\",\n            \"is_active\": true,\n            \"allowed_countries\": [\n                \"US\"\n            ],\n            \"allowed_currencies\": [\n                \"USD\"\n            ],\n            \"allowed_card_brands\": [\n                \"visa\",\n                \"mastercard\",\n                \"discover\",\n                \"amex\"\n            ],\n            \"allow_prepaid_cards\": true,\n            \"allow_virtual_cards\": true,\n            \"allow_international_cards\": 1,\n            \"minimum_amount\": null,\n            \"maximum_amount\": null,\n            \"max_customer_declines\": 3,\n            \"fulfillment_delay\": 0,\n            \"category\": {\n                \"name\": \"Watches\"\n            },\n            \"offers_count\": 2,\n            \"upsells_count\": 1,\n            \"created_at\": \"2025-03-25T20:47:49.000000Z\",\n            \"updated_at\": \"2025-07-30T23:56:55.000000Z\"\n        }\n    ],\n    \"pagination\": {\n        \"total\": 1,\n        \"per_page\": 10,\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"from\": 1,\n        \"to\": 1\n    }\n}"}],"_postman_id":"680fe3bc-778e-4784-9cdd-5bfec8b4d4e3"}],"id":"7e8ef9cc-2100-4d57-bb07-24448683d303","_postman_id":"7e8ef9cc-2100-4d57-bb07-24448683d303","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Alternative Payments","item":[{"name":"Get Alternative Payment","id":"50f4a3e3-3c19-4f7d-b257-cdaaca28acd4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/alternative-payments/{{id}}","description":"<h1 id=\"get-alternative-payment\">Get Alternative Payment</h1>\n<p>Retrieve a specific alternative payment method by its ID.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td><strong>integer (required, URL parameter)</strong>  <br />The ID of the alternative payment method. This is the same <code>id</code> returned in the list endpoint</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />The alternative payment method object</td>\n</tr>\n<tr>\n<td>data.id</td>\n<td><strong>integer</strong>  <br />Internal identifier for the payment method</td>\n</tr>\n<tr>\n<td>data.name</td>\n<td><strong>string</strong>  <br />Display name for the payment method</td>\n</tr>\n<tr>\n<td>data.payment_type</td>\n<td><strong>string</strong>  <br />Payment type identifier (e.g., <code>zelle</code>, <code>paypal_wallet</code>, <code>cash_app</code>)</td>\n</tr>\n<tr>\n<td>data.payment_type_label</td>\n<td><strong>string</strong>  <br />Human-readable label for the payment type</td>\n</tr>\n<tr>\n<td>data.status</td>\n<td><strong>string</strong>  <br />Current status: <code>active</code>, <code>inactive</code>, or <code>testing</code></td>\n</tr>\n<tr>\n<td>data.supports_refunds</td>\n<td><strong>boolean</strong>  <br />Whether this payment method supports refunds</td>\n</tr>\n<tr>\n<td>data.supports_voids</td>\n<td><strong>boolean</strong>  <br />Whether this payment method supports voids</td>\n</tr>\n<tr>\n<td>data.supports_upsells</td>\n<td><strong>boolean</strong>  <br />Whether this payment method supports seamless upsells</td>\n</tr>\n<tr>\n<td>data.test_mode</td>\n<td><strong>boolean</strong>  <br />Whether the payment method is in test/sandbox mode</td>\n</tr>\n<tr>\n<td>data.requires_redirect</td>\n<td><strong>boolean</strong>  <br />Whether the payment flow requires redirecting the customer</td>\n</tr>\n<tr>\n<td>data.created_at</td>\n<td><strong>string</strong>  <br />Date and time when the payment method was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.updated_at</td>\n<td><strong>string</strong>  <br />Date and time when the payment method was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-request\">Example Request</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/alternative-payments/2\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"id\": 2,\n    \"name\": \"Zelle Payments\",\n    \"payment_type\": \"zelle\",\n    \"payment_type_label\": \"Zelle\",\n    \"status\": \"active\",\n    \"supports_refunds\": false,\n    \"supports_voids\": false,\n    \"supports_upsells\": false,\n    \"test_mode\": false,\n    \"requires_redirect\": false,\n    \"created_at\": \"2026-02-12T11:00:00.000000Z\",\n    \"updated_at\": \"2026-02-12T11:00:00.000000Z\"\n  }\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","alternative-payments","{{id}}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"e085eea2-48e6-4c1a-8fa6-7087193e9431","name":"Get Alternative Payment","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.healthsuite.io/v1/alternative-payments/{{id}}","protocol":"https","host":["api","healthsuite","io"],"path":["v1","alternative-payments","{{id}}"],"query":[{"key":"per_page","value":"10","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 18 Jun 2025 17:43:12 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"32000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"success\": true,\n  \"data\": {\n    \"id\": 2,\n    \"name\": \"Zelle Payments\",\n    \"payment_type\": \"zelle\",\n    \"payment_type_label\": \"Zelle\",\n    \"status\": \"active\",\n    \"supports_refunds\": false,\n    \"supports_voids\": false,\n    \"supports_upsells\": false,\n    \"test_mode\": false,\n    \"requires_redirect\": false,\n    \"created_at\": \"2026-02-12T11:00:00.000000Z\",\n    \"updated_at\": \"2026-02-12T11:00:00.000000Z\"\n  }\n}"}],"_postman_id":"50f4a3e3-3c19-4f7d-b257-cdaaca28acd4"},{"name":"List Alternative Payments","id":"9a61ee4e-388a-4429-b960-fced7df7d439","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/alternative-payments?payment_type=paypal_wallet&status=active&search=paypal&per_page=10","description":"<h1 id=\"list-alternative-payments\">List Alternative Payments</h1>\n<p>Retrieve a paginated list of alternative payment methods configured for your account. Use the <code>id</code> field from the response as the <code>payment[external_payment_id]</code> when creating orders.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>payment_type</td>\n<td><em>string (optional)</em>  <br />Filter by payment type. Allowed values: <code>paypal_wallet</code>, <code>external</code>, <code>cash_app</code>, <code>zelle</code>, <code>venmo</code>, <code>crypto</code>, <code>bank_transfer</code></td>\n</tr>\n<tr>\n<td>status</td>\n<td><em>string (optional)</em>  <br />Filter by status. Allowed values: <code>active</code>, <code>inactive</code>, <code>testing</code></td>\n</tr>\n<tr>\n<td>search</td>\n<td><em>string (optional)</em>  <br />Search by name. Performs partial matching. Maximum length: 255 characters</td>\n</tr>\n<tr>\n<td>per_page</td>\n<td><em>integer (optional)</em>  <br />Number of results per page. Minimum: 1, Maximum: 100. Default: 15</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>array</strong>  <br />Array of alternative payment method objects</td>\n</tr>\n<tr>\n<td>data.id</td>\n<td><strong>integer</strong>  <br />Internal identifier for the payment method. Use this value as <code>payment[external_payment_id]</code> when creating orders</td>\n</tr>\n<tr>\n<td>data.name</td>\n<td><strong>string</strong>  <br />Display name for the payment method</td>\n</tr>\n<tr>\n<td>data.payment_type</td>\n<td><strong>string</strong>  <br />Payment type identifier (e.g., <code>zelle</code>, <code>paypal_wallet</code>, <code>cash_app</code>)</td>\n</tr>\n<tr>\n<td>data.payment_type_label</td>\n<td><strong>string</strong>  <br />Human-readable label for the payment type (e.g., \"Zelle\", \"PayPal Wallet\", \"Cash App\")</td>\n</tr>\n<tr>\n<td>data.status</td>\n<td><strong>string</strong>  <br />Current status: <code>active</code>, <code>inactive</code>, or <code>testing</code></td>\n</tr>\n<tr>\n<td>data.supports_refunds</td>\n<td><strong>boolean</strong>  <br />Whether this payment method supports refunds</td>\n</tr>\n<tr>\n<td>data.supports_voids</td>\n<td><strong>boolean</strong>  <br />Whether this payment method supports voids</td>\n</tr>\n<tr>\n<td>data.supports_upsells</td>\n<td><strong>boolean</strong>  <br />Whether this payment method supports seamless upsells</td>\n</tr>\n<tr>\n<td>data.test_mode</td>\n<td><strong>boolean</strong>  <br />Whether the payment method is in test/sandbox mode</td>\n</tr>\n<tr>\n<td>data.requires_redirect</td>\n<td><strong>boolean</strong>  <br />Whether the payment flow requires redirecting the customer (e.g., PayPal Wallet)</td>\n</tr>\n<tr>\n<td>data.created_at</td>\n<td><strong>string</strong>  <br />Date and time when the payment method was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.updated_at</td>\n<td><strong>string</strong>  <br />Date and time when the payment method was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>pagination</td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td>pagination.total</td>\n<td><strong>integer</strong>  <br />Total number of payment methods matching the search criteria</td>\n</tr>\n<tr>\n<td>pagination.per_page</td>\n<td><strong>integer</strong>  <br />Number of results displayed per page</td>\n</tr>\n<tr>\n<td>pagination.current_page</td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td>pagination.last_page</td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n<tr>\n<td>pagination.from</td>\n<td><strong>integer/null</strong>  <br />Starting record number for the current page</td>\n</tr>\n<tr>\n<td>pagination.to</td>\n<td><strong>integer/null</strong>  <br />Ending record number for the current page</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-requests\">Example Requests</h2>\n<h3 id=\"get-all-alternative-payments-paginated\">Get All Alternative Payments (Paginated)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/alternative-payments\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"filter-by-payment-type\">Filter by Payment Type</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/alternative-payments?payment_type=paypal_wallet\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"filter-by-status\">Filter by Status</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/alternative-payments?status=active\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"search-by-name\">Search by Name</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/alternative-payments?search=zelle\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h3 id=\"combined-filters\">Combined Filters</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/alternative-payments?status=active&amp;payment_type=external&amp;per_page=10\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"PayPal Business\",\n      \"payment_type\": \"paypal_wallet\",\n      \"payment_type_label\": \"PayPal Wallet\",\n      \"status\": \"active\",\n      \"supports_refunds\": true,\n      \"supports_voids\": true,\n      \"supports_upsells\": true,\n      \"test_mode\": false,\n      \"requires_redirect\": true,\n      \"created_at\": \"2026-02-12T10:00:00.000000Z\",\n      \"updated_at\": \"2026-02-12T13:33:00.000000Z\"\n    },\n    {\n      \"id\": 2,\n      \"name\": \"Zelle Payments\",\n      \"payment_type\": \"zelle\",\n      \"payment_type_label\": \"Zelle\",\n      \"status\": \"active\",\n      \"supports_refunds\": false,\n      \"supports_voids\": false,\n      \"supports_upsells\": false,\n      \"test_mode\": false,\n      \"requires_redirect\": false,\n      \"created_at\": \"2026-02-12T11:00:00.000000Z\",\n      \"updated_at\": \"2026-02-12T11:00:00.000000Z\"\n    }\n  ],\n  \"pagination\": {\n    \"total\": 2,\n    \"per_page\": 15,\n    \"current_page\": 1,\n    \"last_page\": 1,\n    \"from\": 1,\n    \"to\": 2\n  }\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","alternative-payments"],"host":["api","healthsuite","io"],"query":[{"key":"payment_type","value":"paypal_wallet"},{"key":"status","value":"active"},{"key":"search","value":"paypal"},{"key":"per_page","value":"10"}],"variable":[]}},"response":[{"id":"9573a72a-424b-4a76-8016-fbffbb426f46","name":"List Alternative Payments","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.healthsuite.io/v1/alternative-payments?payment_type=paypal_wallet&status=active&search=paypal&per_page=10","protocol":"https","host":["api","healthsuite","io"],"path":["v1","alternative-payments"],"query":[{"key":"payment_type","value":"paypal_wallet"},{"key":"status","value":"active"},{"key":"search","value":"paypal"},{"key":"per_page","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 18 Jun 2025 17:43:12 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"32000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"PayPal Business\",\n      \"payment_type\": \"paypal_wallet\",\n      \"payment_type_label\": \"PayPal Wallet\",\n      \"status\": \"active\",\n      \"supports_refunds\": true,\n      \"supports_voids\": true,\n      \"supports_upsells\": true,\n      \"test_mode\": false,\n      \"requires_redirect\": true,\n      \"created_at\": \"2026-02-12T10:00:00.000000Z\",\n      \"updated_at\": \"2026-02-12T13:33:00.000000Z\"\n    },\n    {\n      \"id\": 2,\n      \"name\": \"Zelle Payments\",\n      \"payment_type\": \"zelle\",\n      \"payment_type_label\": \"Zelle\",\n      \"status\": \"active\",\n      \"supports_refunds\": false,\n      \"supports_voids\": false,\n      \"supports_upsells\": false,\n      \"test_mode\": false,\n      \"requires_redirect\": false,\n      \"created_at\": \"2026-02-12T11:00:00.000000Z\",\n      \"updated_at\": \"2026-02-12T11:00:00.000000Z\"\n    }\n  ],\n  \"pagination\": {\n    \"total\": 2,\n    \"per_page\": 10,\n    \"current_page\": 1,\n    \"last_page\": 1,\n    \"from\": 1,\n    \"to\": 2\n  }\n}\n\n"}],"_postman_id":"9a61ee4e-388a-4429-b960-fced7df7d439"}],"id":"4ead5dbf-9170-4d5a-97d1-699e427eb984","_postman_id":"4ead5dbf-9170-4d5a-97d1-699e427eb984","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Coupons","item":[{"name":"Search Coupons","id":"89f7e78f-be1c-4e30-87f3-23a43f52bdd7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/coupons","description":"<h1 id=\"listsearch-coupons\">List/Search Coupons</h1>\n<p>Retrieve a paginated list of coupons with optional filtering and search capabilities.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td><strong>string (optional)</strong>  <br />Filter by specific coupon code. If provided, returns a single coupon instead of a list</td>\n</tr>\n<tr>\n<td>is_active</td>\n<td><strong>boolean (optional)</strong>  <br />Filter by active status (true/false)</td>\n</tr>\n<tr>\n<td>type</td>\n<td><strong>string (optional)</strong>  <br />Filter by coupon type (percentage, fixed_amount, free_shipping, buy_x_get_y, fixed_price)</td>\n</tr>\n<tr>\n<td>search</td>\n<td><strong>string (optional)</strong>  <br />Search across coupon name, code, and description</td>\n</tr>\n<tr>\n<td>per_page</td>\n<td><strong>integer (optional)</strong>  <br />Number of results per page (1-100, default: 15)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>array</strong>  <br />Array of coupon objects matching the search criteria</td>\n</tr>\n<tr>\n<td>data[].code</td>\n<td><strong>string</strong>  <br />Unique coupon code</td>\n</tr>\n<tr>\n<td>data[].name</td>\n<td><strong>string</strong>  <br />Display name of the coupon</td>\n</tr>\n<tr>\n<td>data[].description</td>\n<td><strong>string</strong>  <br />Detailed description of the coupon</td>\n</tr>\n<tr>\n<td>data[].type</td>\n<td><strong>string</strong>  <br />Type of discount (percentage, fixed_amount, free_shipping, buy_x_get_y, fixed_price)</td>\n</tr>\n<tr>\n<td>data[].is_active</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently active</td>\n</tr>\n<tr>\n<td>data[].discount_amount</td>\n<td><strong>string</strong>  <br />Discount value (percentage or fixed amount)</td>\n</tr>\n<tr>\n<td>data[].minimum_purchase</td>\n<td><strong>number/null</strong>  <br />Minimum purchase amount required to use this coupon</td>\n</tr>\n<tr>\n<td>data[].maximum_discount</td>\n<td><strong>number/null</strong>  <br />Maximum discount amount that can be applied</td>\n</tr>\n<tr>\n<td>data[].usage_limit_per_coupon</td>\n<td><strong>integer/null</strong>  <br />Total number of times this coupon can be used</td>\n</tr>\n<tr>\n<td>data[].usage_limit_per_customer</td>\n<td><strong>integer/null</strong>  <br />Number of times a single customer can use this coupon</td>\n</tr>\n<tr>\n<td>data[].total_uses</td>\n<td><strong>integer</strong>  <br />Current number of times the coupon has been used</td>\n</tr>\n<tr>\n<td>data[].starts_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon becomes valid (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data[].expires_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon expires (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data[].individual_use_only</td>\n<td><strong>boolean</strong>  <br />If true, coupon cannot be combined with other coupons</td>\n</tr>\n<tr>\n<td>data[].allowed_products</td>\n<td><strong>array</strong>  <br />Array of product IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data[].excluded_products</td>\n<td><strong>array</strong>  <br />Array of product IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data[].allowed_categories</td>\n<td><strong>array</strong>  <br />Array of category IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data[].excluded_categories</td>\n<td><strong>array</strong>  <br />Array of category IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data[].allowed_countries</td>\n<td><strong>array</strong>  <br />Array of 2-letter country codes where coupon is valid</td>\n</tr>\n<tr>\n<td>data[].excluded_countries</td>\n<td><strong>array</strong>  <br />Array of 2-letter country codes where coupon is not valid</td>\n</tr>\n<tr>\n<td>data[].allowed_emails</td>\n<td><strong>array</strong>  <br />Array of email addresses that can use this coupon</td>\n</tr>\n<tr>\n<td>data[].first_time_customer_only</td>\n<td><strong>boolean</strong>  <br />If true, only first-time customers can use this coupon</td>\n</tr>\n<tr>\n<td>data[].is_valid</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently valid for use</td>\n</tr>\n<tr>\n<td>data[].is_expired</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has expired</td>\n</tr>\n<tr>\n<td>data[].has_reached_usage_limit</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has reached its usage limit</td>\n</tr>\n<tr>\n<td>data[].provider</td>\n<td><strong>object/null</strong>  <br />CS provider team information if coupon was created by a provider</td>\n</tr>\n<tr>\n<td>data[].created_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data[].updated_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>pagination</td>\n<td><strong>object</strong>  <br />Pagination metadata</td>\n</tr>\n<tr>\n<td>pagination.total</td>\n<td><strong>integer</strong>  <br />Total number of coupons</td>\n</tr>\n<tr>\n<td>pagination.per_page</td>\n<td><strong>integer</strong>  <br />Results per page</td>\n</tr>\n<tr>\n<td>pagination.current_page</td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td>pagination.last_page</td>\n<td><strong>integer</strong>  <br />Last page number</td>\n</tr>\n<tr>\n<td>pagination.from</td>\n<td><strong>integer</strong>  <br />Starting result number</td>\n</tr>\n<tr>\n<td>pagination.to</td>\n<td><strong>integer</strong>  <br />Ending result number</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","coupons"],"host":["api","healthsuite","io"],"query":[{"disabled":true,"key":" code","value":" SUMMER2025"},{"disabled":true,"key":" is_active","value":" true"},{"disabled":true,"key":" type","value":" percentage"},{"disabled":true,"key":" search","value":" summer"},{"disabled":true,"key":" per_page","value":" 15"}],"variable":[]}},"response":[{"id":"1dadab2c-3f0f-4ee1-9bf2-a9943bde2acd","name":"Search Coupons Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.healthsuite.io/v1/coupons","protocol":"https","host":["api","healthsuite","io"],"path":["v1","coupons"],"query":[{"key":" code","value":" SUMMER2025","type":"text","disabled":true},{"key":" is_active","value":" true","type":"text","disabled":true},{"key":" type","value":" percentage","type":"text","disabled":true},{"key":" search","value":" summer","type":"text","disabled":true},{"key":" per_page","value":" 15","type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.11"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Aug 2025 02:38:24 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"code\": \"TEST10\",\n            \"name\": \"TEST10\",\n            \"description\": \"\",\n            \"type\": \"fixed_amount\",\n            \"is_active\": true,\n            \"discount_amount\": \"10.00\",\n            \"minimum_purchase\": null,\n            \"maximum_discount\": null,\n            \"usage_limit_per_coupon\": null,\n            \"usage_limit_per_customer\": null,\n            \"total_uses\": 2,\n            \"starts_at\": null,\n            \"expires_at\": null,\n            \"individual_use_only\": false,\n            \"allowed_products\": [],\n            \"excluded_products\": [],\n            \"allowed_categories\": [],\n            \"excluded_categories\": [],\n            \"allowed_countries\": [],\n            \"excluded_countries\": [],\n            \"allowed_emails\": [],\n            \"first_time_customer_only\": false,\n            \"is_valid\": true,\n            \"is_expired\": false,\n            \"has_reached_usage_limit\": false,\n            \"provider\": null,\n            \"created_at\": \"2025-08-20T21:30:52.000000Z\",\n            \"updated_at\": \"2025-08-20T21:39:54.000000Z\"\n        }\n    ],\n    \"pagination\": {\n        \"total\": 1,\n        \"per_page\": 15,\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"from\": 1,\n        \"to\": 1\n    }\n}"}],"_postman_id":"89f7e78f-be1c-4e30-87f3-23a43f52bdd7"},{"name":"Get Coupon","id":"92e4051c-b2c7-477d-90a5-29ccf012226e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/coupons/{{code}}","description":"<h1 id=\"get-specific-coupon\">Get Specific Coupon</h1>\n<p>Retrieve detailed information about a specific coupon by its code.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td><strong>string (required)</strong>  <br />The unique coupon code (path parameter)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Detailed coupon information</td>\n</tr>\n<tr>\n<td>data.code</td>\n<td><strong>string</strong>  <br />Unique coupon code</td>\n</tr>\n<tr>\n<td>data.name</td>\n<td><strong>string</strong>  <br />Display name of the coupon</td>\n</tr>\n<tr>\n<td>data.description</td>\n<td><strong>string</strong>  <br />Detailed description of the coupon</td>\n</tr>\n<tr>\n<td>data.type</td>\n<td><strong>string</strong>  <br />Type of discount (percentage, fixed_amount, free_shipping, buy_x_get_y, fixed_price)</td>\n</tr>\n<tr>\n<td>data.is_active</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently active</td>\n</tr>\n<tr>\n<td>data.discount_amount</td>\n<td><strong>string</strong>  <br />Discount value (percentage for percentage type, amount for fixed types)</td>\n</tr>\n<tr>\n<td>data.minimum_purchase</td>\n<td><strong>number/null</strong>  <br />Minimum purchase amount required to use this coupon</td>\n</tr>\n<tr>\n<td>data.maximum_discount</td>\n<td><strong>number/null</strong>  <br />Maximum discount amount that can be applied</td>\n</tr>\n<tr>\n<td>data.usage_limit_per_coupon</td>\n<td><strong>integer/null</strong>  <br />Total number of times this coupon can be used</td>\n</tr>\n<tr>\n<td>data.usage_limit_per_customer</td>\n<td><strong>integer/null</strong>  <br />Number of times a single customer can use this coupon</td>\n</tr>\n<tr>\n<td>data.total_uses</td>\n<td><strong>integer</strong>  <br />Current number of times the coupon has been used</td>\n</tr>\n<tr>\n<td>data.starts_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon becomes valid (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.expires_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon expires (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.individual_use_only</td>\n<td><strong>boolean</strong>  <br />If true, coupon cannot be combined with other coupons</td>\n</tr>\n<tr>\n<td>data.allowed_products</td>\n<td><strong>array</strong>  <br />Array of product IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data.excluded_products</td>\n<td><strong>array</strong>  <br />Array of product IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data.allowed_categories</td>\n<td><strong>array</strong>  <br />Array of category IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data.excluded_categories</td>\n<td><strong>array</strong>  <br />Array of category IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data.allowed_countries</td>\n<td><strong>array</strong>  <br />Array of 2-letter country codes where coupon is valid</td>\n</tr>\n<tr>\n<td>data.excluded_countries</td>\n<td><strong>array</strong>  <br />Array of 2-letter country codes where coupon is not valid</td>\n</tr>\n<tr>\n<td>data.allowed_emails</td>\n<td><strong>array</strong>  <br />Array of email addresses that can use this coupon</td>\n</tr>\n<tr>\n<td>data.first_time_customer_only</td>\n<td><strong>boolean</strong>  <br />If true, only first-time customers can use this coupon</td>\n</tr>\n<tr>\n<td>data.is_valid</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently valid for use</td>\n</tr>\n<tr>\n<td>data.is_expired</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has expired</td>\n</tr>\n<tr>\n<td>data.has_reached_usage_limit</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has reached its usage limit</td>\n</tr>\n<tr>\n<td>data.provider</td>\n<td><strong>object/null</strong>  <br />CS provider team information if coupon was created by a provider</td>\n</tr>\n<tr>\n<td>data.created_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.updated_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","coupons","{{code}}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"b1142155-6451-40d3-9feb-9330460fc4e7","name":"Get Coupon Success","originalRequest":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/coupons/{{code}}"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.11"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Aug 2025 02:52:15 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"code\": \"TEST10\",\n        \"name\": \"TEST10\",\n        \"description\": \"\",\n        \"type\": \"fixed_amount\",\n        \"is_active\": true,\n        \"discount_amount\": \"10.00\",\n        \"minimum_purchase\": null,\n        \"maximum_discount\": null,\n        \"usage_limit_per_coupon\": null,\n        \"usage_limit_per_customer\": null,\n        \"total_uses\": 2,\n        \"starts_at\": null,\n        \"expires_at\": null,\n        \"individual_use_only\": false,\n        \"allowed_products\": [],\n        \"excluded_products\": [],\n        \"allowed_categories\": [],\n        \"excluded_categories\": [],\n        \"allowed_countries\": [],\n        \"excluded_countries\": [],\n        \"allowed_emails\": [],\n        \"first_time_customer_only\": false,\n        \"is_valid\": true,\n        \"is_expired\": false,\n        \"has_reached_usage_limit\": false,\n        \"provider\": null,\n        \"created_at\": \"2025-08-20T21:30:52.000000Z\",\n        \"updated_at\": \"2025-08-20T21:39:54.000000Z\"\n    }\n}"}],"_postman_id":"92e4051c-b2c7-477d-90a5-29ccf012226e"},{"name":"Create Coupon","id":"5723260e-b8c6-4535-801e-73f667e3d5f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"code","value":" NEWCOUPON2025","type":"text"},{"key":"name","value":" New Year Sale","type":"text"},{"key":"type","value":" percentage","type":"text"},{"key":"discount_amount","value":" 25","type":"text"},{"key":" description","value":" Special discount for new year","type":"text","disabled":true},{"key":" is_active","value":" true","type":"text","disabled":true},{"key":" minimum_purchase","value":" 100","type":"text","disabled":true},{"key":" maximum_discount","value":" 50","type":"text","disabled":true},{"key":" usage_limit_per_coupon","value":" 100","type":"text","disabled":true},{"key":" usage_limit_per_customer","value":" 1","type":"text","disabled":true},{"key":" starts_at","value":" 2025-08-21","type":"text","disabled":true},{"key":" expires_at","value":" 2025-09-21","type":"text","disabled":true},{"key":" individual_use_only","value":" false","type":"text","disabled":true},{"key":" first_time_customer_only","value":" false","type":"text","disabled":true},{"key":" allowed_products","value":" [1, 2, 3]","type":"text","disabled":true},{"key":" excluded_products","value":" [4, 5]","type":"text","disabled":true},{"key":" allowed_categories","value":" [1, 2]","type":"text","disabled":true},{"key":" excluded_categories","value":" [3, 4]","type":"text","disabled":true},{"key":" allowed_countries","value":" [\"US\", \"CA\"]","type":"text","disabled":true},{"key":" excluded_countries","value":" [\"MX\"]","type":"text","disabled":true},{"key":" allowed_emails","value":" [\"customer@example.com\"]","type":"text","disabled":true},{"key":" buy_product_id","value":" 1","type":"text","disabled":true},{"key":" free_product_id","value":" 2","type":"text","disabled":true},{"key":" buy_quantity","value":" 2","type":"text","disabled":true},{"key":" free_quantity","value":" 1","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/v1/coupons","description":"<h1 id=\"create-coupon\">Create Coupon</h1>\n<p>Create a new coupon with specified discount rules and restrictions.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td><strong>string (required)</strong>  <br />Unique coupon code (must be unique across all coupons)</td>\n</tr>\n<tr>\n<td>name</td>\n<td><strong>string (required)</strong>  <br />Display name for the coupon</td>\n</tr>\n<tr>\n<td>type</td>\n<td><strong>string (required)</strong>  <br />Type of discount (percentage, fixed_amount, free_shipping, buy_x_get_y, fixed_price)</td>\n</tr>\n<tr>\n<td>discount_amount</td>\n<td><strong>number (required)</strong>  <br />Discount value (percentage for percentage type, amount for fixed types)</td>\n</tr>\n<tr>\n<td>description</td>\n<td><strong>string (optional)</strong>  <br />Detailed description of the coupon</td>\n</tr>\n<tr>\n<td>is_active</td>\n<td><strong>boolean (optional)</strong>  <br />Whether the coupon is active (default: true)</td>\n</tr>\n<tr>\n<td>minimum_purchase</td>\n<td><strong>number (optional)</strong>  <br />Minimum purchase amount required to use this coupon</td>\n</tr>\n<tr>\n<td>maximum_discount</td>\n<td><strong>number (optional)</strong>  <br />Maximum discount amount that can be applied</td>\n</tr>\n<tr>\n<td>usage_limit_per_coupon</td>\n<td><strong>integer (optional)</strong>  <br />Total number of times this coupon can be used</td>\n</tr>\n<tr>\n<td>usage_limit_per_customer</td>\n<td><strong>integer (optional)</strong>  <br />Number of times a single customer can use this coupon</td>\n</tr>\n<tr>\n<td>starts_at</td>\n<td><strong>string (optional)</strong>  <br />Date/time when the coupon becomes valid (YYYY-MM-DD or ISO 8601)</td>\n</tr>\n<tr>\n<td>expires_at</td>\n<td><strong>string (optional)</strong>  <br />Date/time when the coupon expires (YYYY-MM-DD or ISO 8601)</td>\n</tr>\n<tr>\n<td>individual_use_only</td>\n<td><strong>boolean (optional)</strong>  <br />If true, coupon cannot be combined with other coupons</td>\n</tr>\n<tr>\n<td>first_time_customer_only</td>\n<td><strong>boolean (optional)</strong>  <br />If true, only first-time customers can use this coupon</td>\n</tr>\n<tr>\n<td>allowed_products</td>\n<td><strong>array (optional)</strong>  <br />Array of product IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>excluded_products</td>\n<td><strong>array (optional)</strong>  <br />Array of product IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>allowed_categories</td>\n<td><strong>array (optional)</strong>  <br />Array of category IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>excluded_categories</td>\n<td><strong>array (optional)</strong>  <br />Array of category IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>allowed_countries</td>\n<td><strong>array (optional)</strong>  <br />Array of 2-letter country codes where coupon is valid</td>\n</tr>\n<tr>\n<td>excluded_countries</td>\n<td><strong>array (optional)</strong>  <br />Array of 2-letter country codes where coupon is not valid</td>\n</tr>\n<tr>\n<td>allowed_emails</td>\n<td><strong>array (optional)</strong>  <br />Array of email addresses that can use this coupon</td>\n</tr>\n<tr>\n<td>buy_product_id</td>\n<td><strong>integer (optional)</strong>  <br />Product ID that must be purchased for buy_x_get_y type</td>\n</tr>\n<tr>\n<td>free_product_id</td>\n<td><strong>integer (optional)</strong>  <br />Product ID that will be free for buy_x_get_y type</td>\n</tr>\n<tr>\n<td>buy_quantity</td>\n<td><strong>integer (optional)</strong>  <br />Quantity required to purchase for buy_x_get_y type</td>\n</tr>\n<tr>\n<td>free_quantity</td>\n<td><strong>integer (optional)</strong>  <br />Quantity that will be free for buy_x_get_y type</td>\n</tr>\n<tr>\n<td>metadata</td>\n<td><strong>object (optional)</strong>  <br />Additional custom metadata as key-value pairs</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result (\"Coupon created successfully\")</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Created coupon details</td>\n</tr>\n<tr>\n<td>data.code</td>\n<td><strong>string</strong>  <br />Unique coupon code</td>\n</tr>\n<tr>\n<td>data.name</td>\n<td><strong>string</strong>  <br />Display name of the coupon</td>\n</tr>\n<tr>\n<td>data.description</td>\n<td><strong>string/null</strong>  <br />Detailed description of the coupon</td>\n</tr>\n<tr>\n<td>data.type</td>\n<td><strong>string</strong>  <br />Type of discount applied</td>\n</tr>\n<tr>\n<td>data.is_active</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently active</td>\n</tr>\n<tr>\n<td>data.discount_amount</td>\n<td><strong>string</strong>  <br />Discount value (percentage or fixed amount)</td>\n</tr>\n<tr>\n<td>data.minimum_purchase</td>\n<td><strong>number/null</strong>  <br />Minimum purchase amount required to use this coupon</td>\n</tr>\n<tr>\n<td>data.maximum_discount</td>\n<td><strong>number/null</strong>  <br />Maximum discount amount that can be applied</td>\n</tr>\n<tr>\n<td>data.usage_limit_per_coupon</td>\n<td><strong>integer/null</strong>  <br />Total number of times this coupon can be used</td>\n</tr>\n<tr>\n<td>data.usage_limit_per_customer</td>\n<td><strong>integer/null</strong>  <br />Number of times a single customer can use this coupon</td>\n</tr>\n<tr>\n<td>data.total_uses</td>\n<td><strong>integer</strong>  <br />Current number of times the coupon has been used (0 for new coupons)</td>\n</tr>\n<tr>\n<td>data.starts_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon becomes valid (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.expires_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon expires (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.individual_use_only</td>\n<td><strong>boolean/null</strong>  <br />If true, coupon cannot be combined with other coupons</td>\n</tr>\n<tr>\n<td>data.allowed_products</td>\n<td><strong>array/null</strong>  <br />Array of product IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data.excluded_products</td>\n<td><strong>array/null</strong>  <br />Array of product IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data.allowed_categories</td>\n<td><strong>array/null</strong>  <br />Array of category IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data.excluded_categories</td>\n<td><strong>array/null</strong>  <br />Array of category IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data.allowed_countries</td>\n<td><strong>array/null</strong>  <br />Array of 2-letter country codes where coupon is valid</td>\n</tr>\n<tr>\n<td>data.excluded_countries</td>\n<td><strong>array/null</strong>  <br />Array of 2-letter country codes where coupon is not valid</td>\n</tr>\n<tr>\n<td>data.allowed_emails</td>\n<td><strong>array/null</strong>  <br />Array of email addresses that can use this coupon</td>\n</tr>\n<tr>\n<td>data.first_time_customer_only</td>\n<td><strong>boolean/null</strong>  <br />If true, only first-time customers can use this coupon</td>\n</tr>\n<tr>\n<td>data.is_valid</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently valid for use</td>\n</tr>\n<tr>\n<td>data.is_expired</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has expired</td>\n</tr>\n<tr>\n<td>data.has_reached_usage_limit</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has reached its usage limit</td>\n</tr>\n<tr>\n<td>data.provider</td>\n<td><strong>object/null</strong>  <br />CS provider team information if coupon was created by a provider</td>\n</tr>\n<tr>\n<td>data.created_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.updated_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","coupons"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"a0923338-a115-47e5-ac81-770eb1f3631d","name":"Create Coupon Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"code","value":" NEWCOUPON2025","type":"text"},{"key":"name","value":" New Year Sale","type":"text"},{"key":"type","value":" percentage","type":"text"},{"key":"discount_amount","value":" 25","type":"text"},{"key":" description","value":" Special discount for new year","type":"text","disabled":true},{"key":" is_active","value":" true","type":"text","disabled":true},{"key":" minimum_purchase","value":" 100","type":"text","disabled":true},{"key":" maximum_discount","value":" 50","type":"text","disabled":true},{"key":" usage_limit_per_coupon","value":" 100","type":"text","disabled":true},{"key":" usage_limit_per_customer","value":" 1","type":"text","disabled":true},{"key":" starts_at","value":" 2025-08-21","type":"text","disabled":true},{"key":" expires_at","value":" 2025-09-21","type":"text","disabled":true},{"key":" individual_use_only","value":" false","type":"text","disabled":true},{"key":" first_time_customer_only","value":" false","type":"text","disabled":true},{"key":" allowed_products","value":" [1, 2, 3]","type":"text","disabled":true},{"key":" excluded_products","value":" [4, 5]","type":"text","disabled":true},{"key":" allowed_categories","value":" [1, 2]","type":"text","disabled":true},{"key":" excluded_categories","value":" [3, 4]","type":"text","disabled":true},{"key":" allowed_countries","value":" [\"US\", \"CA\"]","type":"text","disabled":true},{"key":" excluded_countries","value":" [\"MX\"]","type":"text","disabled":true},{"key":" allowed_emails","value":" [\"customer@example.com\"]","type":"text","disabled":true},{"key":" buy_product_id","value":" 1","type":"text","disabled":true},{"key":" free_product_id","value":" 2","type":"text","disabled":true},{"key":" buy_quantity","value":" 2","type":"text","disabled":true},{"key":" free_quantity","value":" 1","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/v1/coupons"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.4.11"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Aug 2025 03:08:01 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Coupon created successfully\",\n    \"data\": {\n        \"code\": \"NEWCOUPON2025\",\n        \"name\": \"New Year Sale\",\n        \"description\": null,\n        \"type\": \"percentage\",\n        \"is_active\": true,\n        \"discount_amount\": \"25\",\n        \"minimum_purchase\": null,\n        \"maximum_discount\": null,\n        \"usage_limit_per_coupon\": null,\n        \"usage_limit_per_customer\": null,\n        \"total_uses\": 0,\n        \"starts_at\": null,\n        \"expires_at\": null,\n        \"individual_use_only\": null,\n        \"allowed_products\": null,\n        \"excluded_products\": null,\n        \"allowed_categories\": null,\n        \"excluded_categories\": null,\n        \"allowed_countries\": null,\n        \"excluded_countries\": null,\n        \"allowed_emails\": null,\n        \"first_time_customer_only\": null,\n        \"is_valid\": true,\n        \"is_expired\": false,\n        \"has_reached_usage_limit\": false,\n        \"provider\": null,\n        \"created_at\": \"2025-08-21T03:08:01.000000Z\",\n        \"updated_at\": \"2025-08-21T03:08:01.000000Z\"\n    }\n}"}],"_postman_id":"5723260e-b8c6-4535-801e-73f667e3d5f2"},{"name":"Validate Coupon","id":"a9f7fbdc-572a-46eb-b39a-b066acffecb6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"subtotal","value":" 150.00","type":"text"},{"key":" customer_email","value":" customer@example.com","type":"text","disabled":true},{"key":" country","value":" US","type":"text","disabled":true},{"key":" product_ids","value":" [1, 2, 3]","type":"text","disabled":true},{"key":" category_ids","value":" [1, 2]","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/v1/coupons/{{code}}/validate","description":"<h1 id=\"validate-coupon\">Validate Coupon</h1>\n<p>Validate a coupon for checkout and calculate the discount amount based on the provided context.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td><strong>string (required)</strong>  <br />The unique coupon code to validate (path parameter)</td>\n</tr>\n<tr>\n<td>subtotal</td>\n<td><strong>number (required)</strong>  <br />Cart subtotal amount to calculate discount against</td>\n</tr>\n<tr>\n<td>customer_email</td>\n<td><strong>string (optional)</strong>  <br />Customer email address for email-restricted coupons</td>\n</tr>\n<tr>\n<td>country</td>\n<td><strong>string (optional)</strong>  <br />2-letter country code for location-based restrictions</td>\n</tr>\n<tr>\n<td>product_ids</td>\n<td><strong>array (optional)</strong>  <br />Array of product IDs in the cart for product-specific coupons</td>\n</tr>\n<tr>\n<td>category_ids</td>\n<td><strong>array (optional)</strong>  <br />Array of category IDs in the cart for category-specific coupons</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>is_valid</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is valid for the provided context</td>\n</tr>\n<tr>\n<td>discount_amount</td>\n<td><strong>number</strong>  <br />Calculated discount amount based on coupon type and cart subtotal</td>\n</tr>\n<tr>\n<td>coupon</td>\n<td><strong>object</strong>  <br />Full coupon details</td>\n</tr>\n<tr>\n<td>coupon.code</td>\n<td><strong>string</strong>  <br />Unique coupon code</td>\n</tr>\n<tr>\n<td>coupon.name</td>\n<td><strong>string</strong>  <br />Display name of the coupon</td>\n</tr>\n<tr>\n<td>coupon.description</td>\n<td><strong>string</strong>  <br />Detailed description of the coupon</td>\n</tr>\n<tr>\n<td>coupon.type</td>\n<td><strong>string</strong>  <br />Type of discount (percentage, fixed_amount, free_shipping, buy_x_get_y, fixed_price)</td>\n</tr>\n<tr>\n<td>coupon.is_active</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently active</td>\n</tr>\n<tr>\n<td>coupon.discount_amount</td>\n<td><strong>string</strong>  <br />Base discount value (percentage or fixed amount)</td>\n</tr>\n<tr>\n<td>coupon.minimum_purchase</td>\n<td><strong>number/null</strong>  <br />Minimum purchase amount required to use this coupon</td>\n</tr>\n<tr>\n<td>coupon.maximum_discount</td>\n<td><strong>number/null</strong>  <br />Maximum discount amount that can be applied</td>\n</tr>\n<tr>\n<td>coupon.usage_limit_per_coupon</td>\n<td><strong>integer/null</strong>  <br />Total number of times this coupon can be used</td>\n</tr>\n<tr>\n<td>coupon.usage_limit_per_customer</td>\n<td><strong>integer/null</strong>  <br />Number of times a single customer can use this coupon</td>\n</tr>\n<tr>\n<td>coupon.total_uses</td>\n<td><strong>integer</strong>  <br />Current number of times the coupon has been used</td>\n</tr>\n<tr>\n<td>coupon.starts_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon becomes valid (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>coupon.expires_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon expires (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>coupon.individual_use_only</td>\n<td><strong>boolean</strong>  <br />If true, coupon cannot be combined with other coupons</td>\n</tr>\n<tr>\n<td>coupon.allowed_products</td>\n<td><strong>array/null</strong>  <br />Array of product IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>coupon.excluded_products</td>\n<td><strong>array/null</strong>  <br />Array of product IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>coupon.allowed_categories</td>\n<td><strong>array/null</strong>  <br />Array of category IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>coupon.excluded_categories</td>\n<td><strong>array/null</strong>  <br />Array of category IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>coupon.allowed_countries</td>\n<td><strong>array/null</strong>  <br />Array of 2-letter country codes where coupon is valid</td>\n</tr>\n<tr>\n<td>coupon.excluded_countries</td>\n<td><strong>array/null</strong>  <br />Array of 2-letter country codes where coupon is not valid</td>\n</tr>\n<tr>\n<td>coupon.allowed_emails</td>\n<td><strong>array/null</strong>  <br />Array of email addresses that can use this coupon</td>\n</tr>\n<tr>\n<td>coupon.first_time_customer_only</td>\n<td><strong>boolean</strong>  <br />If true, only first-time customers can use this coupon</td>\n</tr>\n<tr>\n<td>coupon.is_valid</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently valid for use</td>\n</tr>\n<tr>\n<td>coupon.is_expired</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has expired</td>\n</tr>\n<tr>\n<td>coupon.has_reached_usage_limit</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has reached its usage limit</td>\n</tr>\n<tr>\n<td>coupon.provider</td>\n<td><strong>object/null</strong>  <br />CS provider team information if coupon was created by a provider</td>\n</tr>\n<tr>\n<td>coupon.created_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>coupon.updated_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>validation_errors</td>\n<td><strong>array</strong>  <br />Array of validation error messages if coupon is invalid (empty array if valid)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","coupons","{{code}}","validate"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"42ad038b-634d-4f52-a0a1-cd1e8256f1f4","name":"Validate Coupon Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"subtotal","value":" 150.00","type":"text"},{"key":" customer_email","value":" customer@example.com","type":"text","disabled":true},{"key":" country","value":" US","type":"text","disabled":true},{"key":" product_ids","value":" [1, 2, 3]","type":"text","disabled":true},{"key":" category_ids","value":" [1, 2]","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/v1/coupons/{{code}}/validate"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.11"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Aug 2025 04:51:04 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"is_valid\": true,\n    \"discount_amount\": 37.5,\n    \"coupon\": {\n        \"code\": \"UPDATEDCODE\",\n        \"name\": \"Updated Summer Sale\",\n        \"description\": \"Updated description\",\n        \"type\": \"percentage\",\n        \"is_active\": true,\n        \"discount_amount\": \"25.00\",\n        \"minimum_purchase\": null,\n        \"maximum_discount\": null,\n        \"usage_limit_per_coupon\": null,\n        \"usage_limit_per_customer\": null,\n        \"total_uses\": 0,\n        \"starts_at\": null,\n        \"expires_at\": null,\n        \"individual_use_only\": false,\n        \"allowed_products\": null,\n        \"excluded_products\": null,\n        \"allowed_categories\": null,\n        \"excluded_categories\": null,\n        \"allowed_countries\": null,\n        \"excluded_countries\": null,\n        \"allowed_emails\": null,\n        \"first_time_customer_only\": false,\n        \"is_valid\": true,\n        \"is_expired\": false,\n        \"has_reached_usage_limit\": false,\n        \"provider\": null,\n        \"created_at\": \"2025-08-21T03:08:01.000000Z\",\n        \"updated_at\": \"2025-08-21T03:11:30.000000Z\"\n    },\n    \"validation_errors\": []\n}"}],"_postman_id":"a9f7fbdc-572a-46eb-b39a-b066acffecb6"},{"name":"Update Coupon","id":"f49cef4f-a86b-4e25-a86e-af33cab75969","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":" code","value":" UPDATEDCODE","type":"text"},{"key":" name","value":" Updated Summer Sale","type":"text"},{"key":" description","value":" Updated description","type":"text"},{"key":" type","value":" fixed_amount","type":"text","disabled":true},{"key":" is_active","value":" false","type":"text","disabled":true},{"key":" discount_amount","value":" 30","type":"text","disabled":true},{"key":" minimum_purchase","value":" 150","type":"text","disabled":true},{"key":" maximum_discount","value":" 75","type":"text","disabled":true},{"key":" usage_limit_per_coupon","value":" 200","type":"text","disabled":true},{"key":" usage_limit_per_customer","value":" 2","type":"text","disabled":true},{"key":" starts_at","value":" 2025-08-25","type":"text","disabled":true},{"key":" expires_at","value":" 2025-10-25","type":"text","disabled":true},{"key":" individual_use_only","value":" true","type":"text","disabled":true},{"key":" first_time_customer_only","value":" true","type":"text","disabled":true},{"key":" allowed_products","value":" [6, 7, 8]","type":"text","disabled":true},{"key":" excluded_products","value":" [9, 10]","type":"text","disabled":true},{"key":" allowed_categories","value":" [5, 6]","type":"text","disabled":true},{"key":" excluded_categories","value":" [7, 8]","type":"text","disabled":true},{"key":" allowed_countries","value":" [\"GB\", \"AU\"]","type":"text","disabled":true},{"key":" excluded_countries","value":" [\"NZ\"]","type":"text","disabled":true},{"key":" allowed_emails","value":" [\"vip@example.com\"]","type":"text","disabled":true},{"key":" metadata","value":" {\"updated\": true}","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/v1/coupons/{{code}}","description":"<h1 id=\"update-coupon\">Update Coupon</h1>\n<p>Update an existing coupon's properties and restrictions.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td><strong>string (optional)</strong>  <br />New coupon code (must be unique if changing)</td>\n</tr>\n<tr>\n<td>name</td>\n<td><strong>string (optional)</strong>  <br />Display name for the coupon</td>\n</tr>\n<tr>\n<td>type</td>\n<td><strong>string (optional)</strong>  <br />Type of discount (percentage, fixed_amount, free_shipping, buy_x_get_y, fixed_price)</td>\n</tr>\n<tr>\n<td>discount_amount</td>\n<td><strong>number (optional)</strong>  <br />Discount value (percentage for percentage type, amount for fixed types)</td>\n</tr>\n<tr>\n<td>description</td>\n<td><strong>string (optional)</strong>  <br />Detailed description of the coupon</td>\n</tr>\n<tr>\n<td>is_active</td>\n<td><strong>boolean (optional)</strong>  <br />Whether the coupon is active</td>\n</tr>\n<tr>\n<td>minimum_purchase</td>\n<td><strong>number (optional)</strong>  <br />Minimum purchase amount required to use this coupon</td>\n</tr>\n<tr>\n<td>maximum_discount</td>\n<td><strong>number (optional)</strong>  <br />Maximum discount amount that can be applied</td>\n</tr>\n<tr>\n<td>usage_limit_per_coupon</td>\n<td><strong>integer (optional)</strong>  <br />Total number of times this coupon can be used</td>\n</tr>\n<tr>\n<td>usage_limit_per_customer</td>\n<td><strong>integer (optional)</strong>  <br />Number of times a single customer can use this coupon</td>\n</tr>\n<tr>\n<td>starts_at</td>\n<td><strong>string (optional)</strong>  <br />Date/time when the coupon becomes valid (YYYY-MM-DD or ISO 8601)</td>\n</tr>\n<tr>\n<td>expires_at</td>\n<td><strong>string (optional)</strong>  <br />Date/time when the coupon expires (YYYY-MM-DD or ISO 8601)</td>\n</tr>\n<tr>\n<td>individual_use_only</td>\n<td><strong>boolean (optional)</strong>  <br />If true, coupon cannot be combined with other coupons</td>\n</tr>\n<tr>\n<td>first_time_customer_only</td>\n<td><strong>boolean (optional)</strong>  <br />If true, only first-time customers can use this coupon</td>\n</tr>\n<tr>\n<td>allowed_products</td>\n<td><strong>array (optional)</strong>  <br />Array of product IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>excluded_products</td>\n<td><strong>array (optional)</strong>  <br />Array of product IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>allowed_categories</td>\n<td><strong>array (optional)</strong>  <br />Array of category IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>excluded_categories</td>\n<td><strong>array (optional)</strong>  <br />Array of category IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>allowed_countries</td>\n<td><strong>array (optional)</strong>  <br />Array of 2-letter country codes where coupon is valid</td>\n</tr>\n<tr>\n<td>excluded_countries</td>\n<td><strong>array (optional)</strong>  <br />Array of 2-letter country codes where coupon is not valid</td>\n</tr>\n<tr>\n<td>allowed_emails</td>\n<td><strong>array (optional)</strong>  <br />Array of email addresses that can use this coupon</td>\n</tr>\n<tr>\n<td>metadata</td>\n<td><strong>object (optional)</strong>  <br />Additional custom metadata as key-value pairs</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result (\"Coupon updated successfully\")</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>object</strong>  <br />Updated coupon details</td>\n</tr>\n<tr>\n<td>data.code</td>\n<td><strong>string</strong>  <br />Unique coupon code</td>\n</tr>\n<tr>\n<td>data.name</td>\n<td><strong>string</strong>  <br />Display name of the coupon</td>\n</tr>\n<tr>\n<td>data.description</td>\n<td><strong>string</strong>  <br />Detailed description of the coupon</td>\n</tr>\n<tr>\n<td>data.type</td>\n<td><strong>string</strong>  <br />Type of discount applied</td>\n</tr>\n<tr>\n<td>data.is_active</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently active</td>\n</tr>\n<tr>\n<td>data.discount_amount</td>\n<td><strong>string</strong>  <br />Discount value (percentage or fixed amount)</td>\n</tr>\n<tr>\n<td>data.minimum_purchase</td>\n<td><strong>number/null</strong>  <br />Minimum purchase amount required to use this coupon</td>\n</tr>\n<tr>\n<td>data.maximum_discount</td>\n<td><strong>number/null</strong>  <br />Maximum discount amount that can be applied</td>\n</tr>\n<tr>\n<td>data.usage_limit_per_coupon</td>\n<td><strong>integer/null</strong>  <br />Total number of times this coupon can be used</td>\n</tr>\n<tr>\n<td>data.usage_limit_per_customer</td>\n<td><strong>integer/null</strong>  <br />Number of times a single customer can use this coupon</td>\n</tr>\n<tr>\n<td>data.total_uses</td>\n<td><strong>integer</strong>  <br />Current number of times the coupon has been used</td>\n</tr>\n<tr>\n<td>data.starts_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon becomes valid (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.expires_at</td>\n<td><strong>string/null</strong>  <br />Date/time when the coupon expires (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.individual_use_only</td>\n<td><strong>boolean</strong>  <br />If true, coupon cannot be combined with other coupons</td>\n</tr>\n<tr>\n<td>data.allowed_products</td>\n<td><strong>array/null</strong>  <br />Array of product IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data.excluded_products</td>\n<td><strong>array/null</strong>  <br />Array of product IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data.allowed_categories</td>\n<td><strong>array/null</strong>  <br />Array of category IDs this coupon is valid for</td>\n</tr>\n<tr>\n<td>data.excluded_categories</td>\n<td><strong>array/null</strong>  <br />Array of category IDs this coupon cannot be used with</td>\n</tr>\n<tr>\n<td>data.allowed_countries</td>\n<td><strong>array/null</strong>  <br />Array of 2-letter country codes where coupon is valid</td>\n</tr>\n<tr>\n<td>data.excluded_countries</td>\n<td><strong>array/null</strong>  <br />Array of 2-letter country codes where coupon is not valid</td>\n</tr>\n<tr>\n<td>data.allowed_emails</td>\n<td><strong>array/null</strong>  <br />Array of email addresses that can use this coupon</td>\n</tr>\n<tr>\n<td>data.first_time_customer_only</td>\n<td><strong>boolean</strong>  <br />If true, only first-time customers can use this coupon</td>\n</tr>\n<tr>\n<td>data.is_valid</td>\n<td><strong>boolean</strong>  <br />Whether the coupon is currently valid for use</td>\n</tr>\n<tr>\n<td>data.is_expired</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has expired</td>\n</tr>\n<tr>\n<td>data.has_reached_usage_limit</td>\n<td><strong>boolean</strong>  <br />Whether the coupon has reached its usage limit</td>\n</tr>\n<tr>\n<td>data.provider</td>\n<td><strong>object/null</strong>  <br />CS provider team information if coupon was created by a provider</td>\n</tr>\n<tr>\n<td>data.created_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data.updated_at</td>\n<td><strong>string</strong>  <br />Date/time when the coupon was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","coupons","{{code}}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"5a5556dd-bc95-420f-b390-7160b8f23c4c","name":"Update Coupon Success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":" code","value":" UPDATEDCODE","type":"text"},{"key":" name","value":" Updated Summer Sale","type":"text"},{"key":" description","value":" Updated description","type":"text"},{"key":" type","value":" fixed_amount","type":"text","disabled":true},{"key":" is_active","value":" false","type":"text","disabled":true},{"key":" discount_amount","value":" 30","type":"text","disabled":true},{"key":" minimum_purchase","value":" 150","type":"text","disabled":true},{"key":" maximum_discount","value":" 75","type":"text","disabled":true},{"key":" usage_limit_per_coupon","value":" 200","type":"text","disabled":true},{"key":" usage_limit_per_customer","value":" 2","type":"text","disabled":true},{"key":" starts_at","value":" 2025-08-25","type":"text","disabled":true},{"key":" expires_at","value":" 2025-10-25","type":"text","disabled":true},{"key":" individual_use_only","value":" true","type":"text","disabled":true},{"key":" first_time_customer_only","value":" true","type":"text","disabled":true},{"key":" allowed_products","value":" [6, 7, 8]","type":"text","disabled":true},{"key":" excluded_products","value":" [9, 10]","type":"text","disabled":true},{"key":" allowed_categories","value":" [5, 6]","type":"text","disabled":true},{"key":" excluded_categories","value":" [7, 8]","type":"text","disabled":true},{"key":" allowed_countries","value":" [\"GB\", \"AU\"]","type":"text","disabled":true},{"key":" excluded_countries","value":" [\"NZ\"]","type":"text","disabled":true},{"key":" allowed_emails","value":" [\"vip@example.com\"]","type":"text","disabled":true},{"key":" metadata","value":" {\"updated\": true}","type":"text","disabled":true}]},"url":"https://api.healthsuite.io/v1/coupons/{{code}}"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.11"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Aug 2025 03:11:30 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Coupon updated successfully\",\n    \"data\": {\n        \"code\": \"UPDATEDCODE\",\n        \"name\": \"Updated Summer Sale\",\n        \"description\": \"Updated description\",\n        \"type\": \"percentage\",\n        \"is_active\": true,\n        \"discount_amount\": \"25.00\",\n        \"minimum_purchase\": null,\n        \"maximum_discount\": null,\n        \"usage_limit_per_coupon\": null,\n        \"usage_limit_per_customer\": null,\n        \"total_uses\": 0,\n        \"starts_at\": null,\n        \"expires_at\": null,\n        \"individual_use_only\": false,\n        \"allowed_products\": null,\n        \"excluded_products\": null,\n        \"allowed_categories\": null,\n        \"excluded_categories\": null,\n        \"allowed_countries\": null,\n        \"excluded_countries\": null,\n        \"allowed_emails\": null,\n        \"first_time_customer_only\": false,\n        \"is_valid\": true,\n        \"is_expired\": false,\n        \"has_reached_usage_limit\": false,\n        \"provider\": null,\n        \"created_at\": \"2025-08-21T03:08:01.000000Z\",\n        \"updated_at\": \"2025-08-21T03:11:30.000000Z\"\n    }\n}"}],"_postman_id":"f49cef4f-a86b-4e25-a86e-af33cab75969"},{"name":"Delete Coupon","id":"c8369d1d-b1a0-4ab4-b4de-bc787c2ed9d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.healthsuite.io/v1/coupons/{{code}}","description":"<h1 id=\"delete-coupon\">Delete Coupon</h1>\n<p>Soft delete a coupon from the system.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td><strong>string (required)</strong>  <br />The unique coupon code to delete (path parameter)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>message</td>\n<td><strong>string</strong>  <br />Human-readable description of the result (\"Coupon deleted successfully\")</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","coupons","{{code}}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"dfb2073a-3e39-408c-b007-b118708c2fe3","name":"Delete Coupon Success","originalRequest":{"method":"DELETE","header":[],"url":"https://api.healthsuite.io/v1/coupons/{{code}}"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.11"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Aug 2025 04:49:04 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Coupon deleted successfully\"\n}"}],"_postman_id":"c8369d1d-b1a0-4ab4-b4de-bc787c2ed9d2"}],"id":"56adbab5-23af-49d1-b2f1-ff83efe40fe5","_postman_id":"56adbab5-23af-49d1-b2f1-ff83efe40fe5","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Customers","item":[{"name":"Notes","item":[{"name":"Get Notes","id":"e5ed31aa-6870-49e5-8e94-b5dbe4567f8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/customers/{customer_number}/notes","description":"<h1 id=\"get-customer-notes\">Get Customer Notes</h1>\n<p>Retrieve notes for a specific customer that match the specified search criteria.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>type</strong></td>\n<td><em><strong>string (optional)</strong></em>  <br />Filter notes by type. Maximum 50 characters.</td>\n</tr>\n<tr>\n<td><strong>search</strong></td>\n<td><em><strong>string (optional)</strong></em>  <br />Search notes by title or content. Performs partial matching using SQL LIKE operations. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>per_page</strong></td>\n<td><strong><em>integer (optional)</em></strong>  <br />Number of results per page. Minimum: 1, Maximum: 100. Default: 15</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>array</strong>  <br />Array of customer note objects matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>string</strong>  <br />Name of the user or system that created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>customer</strong></td>\n<td><strong>object</strong>  <br />Customer information</td>\n</tr>\n<tr>\n<td><strong>customer.customer_number</strong></td>\n<td><strong>string</strong>  <br />Customer's unique identifier</td>\n</tr>\n<tr>\n<td><strong>customer.email</strong></td>\n<td><strong>string</strong>  <br />Customer's email address</td>\n</tr>\n<tr>\n<td><strong>customer.name</strong></td>\n<td><strong>string</strong>  <br />Customer's full name</td>\n</tr>\n<tr>\n<td><strong>pagination</strong></td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td><strong>pagination.total</strong></td>\n<td><strong>integer</strong>  <br />Total number of notes matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>pagination.per_page</strong></td>\n<td><strong>integer</strong>  <br />Number of notes displayed per page</td>\n</tr>\n<tr>\n<td><strong>pagination.current_page</strong></td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td><strong>pagination.last_page</strong></td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n<tr>\n<td><strong>pagination.from</strong></td>\n<td><strong>integer/null</strong>  <br />Starting record number for the current page</td>\n</tr>\n<tr>\n<td><strong>pagination.to</strong></td>\n<td><strong>integer/null</strong>  <br />Ending record number for the current page</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","customers","{customer_number}","notes"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"a595535e-0944-496f-a65c-e27a5e28b55e","name":"Get Notes","originalRequest":{"method":"GET","header":[],"url":"https://healthsuite.test/v1/customers/CUST-250815-00142/notes"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:19:20 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"56000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 584,\n            \"title\": null,\n            \"content\": \"Eos dolorem eos omnis optio. Molestiae assumenda itaque ea voluptate in. Optio dicta asperiores porro earum repudiandae velit aut.\",\n            \"type\": \"support\",\n            \"created_by\": \"Ut magni autem sunt fuga iure.\",\n            \"created_at\": \"2025-02-04T02:25:14.000000Z\",\n            \"updated_at\": \"2025-08-15T01:57:33.000000Z\"\n        },\n        {\n            \"id\": 583,\n            \"title\": \"Soluta vel et ut.\",\n            \"content\": \"Nesciunt est voluptatem non reiciendis sed. Non a est tempore commodi.\",\n            \"type\": \"fraud\",\n            \"created_by\": \"Neque doloremque totam quasi recusandae natus numquam.\",\n            \"created_at\": \"2024-10-08T05:55:00.000000Z\",\n            \"updated_at\": \"2025-08-15T01:57:33.000000Z\"\n        }\n    ],\n    \"customer\": {\n        \"customer_number\": \"CUST-250815-00142\",\n        \"email\": \"waelchi.emerald@example.net\",\n        \"name\": \"Alec Schmeler\"\n    },\n    \"pagination\": {\n        \"total\": 2,\n        \"per_page\": 15,\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"from\": 1,\n        \"to\": 2\n    }\n}"}],"_postman_id":"e5ed31aa-6870-49e5-8e94-b5dbe4567f8e"},{"name":"Get Note","id":"073a482d-18ab-4ff5-891d-440ddb3e53df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/customers/{customer_number}/notes/{noteId}","description":"<h1 id=\"get-specific-customer-note\">Get Specific Customer Note</h1>\n<p>Retrieve a specific note for a customer by note ID.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<p>No request body parameters. The customer number and note ID are provided in the URL path.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The requested note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>string</strong>  <br />Name of the user or system that created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","customers","{customer_number}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"101781d6-82a1-413a-8fea-44db707413c4","name":"Get Note","originalRequest":{"method":"GET","header":[],"url":"https://healthsuite.test/v1/customers/CUST-250815-00142/notes/584"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:19:54 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"96"},{"key":"X-RateLimit-Reset","value":"22000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 584,\n        \"title\": null,\n        \"content\": \"Eos dolorem eos omnis optio. Molestiae assumenda itaque ea voluptate in. Optio dicta asperiores porro earum repudiandae velit aut.\",\n        \"type\": \"support\",\n        \"created_by\": \"Ut magni autem sunt fuga iure.\",\n        \"created_at\": \"2025-02-04T02:25:14.000000Z\",\n        \"updated_at\": \"2025-08-15T01:57:33.000000Z\"\n    }\n}"}],"_postman_id":"073a482d-18ab-4ff5-891d-440ddb3e53df"},{"name":"Create Note","id":"908236ce-b39e-465e-976b-21ab3289255c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.healthsuite.io/v1/customers/{customer_number}/notes","description":"<h1 id=\"create-customer-note\">Create Customer Note</h1>\n<p>Create a new note for a specific customer.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>title</strong></td>\n<td><strong><em>string (required)</em></strong>  <br />Note title. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>content</strong></td>\n<td><strong><em>string (required)</em></strong>  <br />Note content. Maximum 5000 characters.</td>\n</tr>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note type/category. Maximum 50 characters. Defaults to \"general\" if not provided.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The created note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>string</strong>  <br />Name of the user or system that created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","customers","{customer_number}","notes"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"0671113e-f974-4980-b196-682ef6861cfc","name":"Create Note","originalRequest":{"method":"POST","header":[],"url":{"raw":"https://healthsuite.test/v1/customers/CUST-250815-00142/notes?title=new customer note&content=This is a new customer note&type=shipping","protocol":"https","host":["healthsuite","test"],"path":["v1","customers","CUST-250815-00142","notes"],"query":[{"key":"title","value":"new customer note","type":"text"},{"key":"content","value":"This is a new customer note","type":"text"},{"key":"type","value":"shipping","type":"text"}]}},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:20:52 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"59000"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note added successfully\",\n    \"data\": {\n        \"id\": 983,\n        \"title\": \"new customer note\",\n        \"content\": \"This is a new customer note\",\n        \"type\": \"shipping\",\n        \"created_by\": \"API\",\n        \"created_at\": \"2025-09-17T03:20:52.000000Z\",\n        \"updated_at\": \"2025-09-17T03:20:52.000000Z\"\n    }\n}"}],"_postman_id":"908236ce-b39e-465e-976b-21ab3289255c"},{"name":"Update Note","id":"4dc1f0df-51ae-4600-965e-3b0e3b4b8a27","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"https://api.healthsuite.io/v1/customers/{customer_number}/notes/{noteId}","description":"<h1 id=\"update-customer-note\">Update Customer Note</h1>\n<p>Update an existing note for a specific customer.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>title</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note title. Maximum 255 characters. Only required if updating the title.</td>\n</tr>\n<tr>\n<td><strong>content</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note content. Maximum 5000 characters. Only required if updating the content.</td>\n</tr>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note type/category. Maximum 50 characters. Can be set to null.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> At least one field must be provided to update the note. All fields use \"sometimes\" validation, meaning they're only validated if present in the request.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The updated note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>string</strong>  <br />Name of the user or system that created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","customers","{customer_number}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"fdf7155f-16f9-4c70-af6a-b1244eba4070","name":"Update Note","originalRequest":{"method":"PUT","header":[],"url":{"raw":"https://healthsuite.test/v1/customers/CUST-250815-00142/notes/983?content=This is an updated note","protocol":"https","host":["healthsuite","test"],"path":["v1","customers","CUST-250815-00142","notes","983"],"query":[{"key":"content","value":"This is an updated note","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:21:30 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"21000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note updated successfully\",\n    \"data\": {\n        \"id\": 983,\n        \"title\": \"new customer note\",\n        \"content\": \"This is an updated note\",\n        \"type\": \"shipping\",\n        \"created_by\": \"API\",\n        \"created_at\": \"2025-09-17T03:20:52.000000Z\",\n        \"updated_at\": \"2025-09-17T03:21:30.000000Z\"\n    }\n}"}],"_postman_id":"4dc1f0df-51ae-4600-965e-3b0e3b4b8a27"},{"name":"Delete Note","id":"2cd6fd68-ab20-4910-92ee-f46b66efa733","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.healthsuite.io/v1/customers/{customer_number}/notes/{noteId}","description":"<h1 id=\"delete-customer-note\">Delete Customer Note</h1>\n<p>Delete a specific note for a customer by note ID.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<p>No request body parameters. The customer number and note ID are provided in the URL path.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message confirming the note deletion</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","customers","{customer_number}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"ab340ec4-20b2-4714-92bc-e534a732ec71","name":"Delete Note","originalRequest":{"method":"DELETE","header":[],"url":"https://healthsuite.test/v1/customers/CUST-250815-00142/notes/983"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:21:47 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"97"},{"key":"X-RateLimit-Reset","value":"4000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note deleted successfully\"\n}"}],"_postman_id":"2cd6fd68-ab20-4910-92ee-f46b66efa733"}],"id":"d74f4912-62a4-426a-83e3-f5e10099240f","_postman_id":"d74f4912-62a4-426a-83e3-f5e10099240f","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}}],"id":"97047505-829a-4209-8e57-cf3a8334fe33","_postman_id":"97047505-829a-4209-8e57-cf3a8334fe33","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Fulfillments","item":[{"name":"Get Fulfillments","id":"f2c6a485-ba08-4ed0-afac-7921f01b2855","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/fulfillments","description":"<h1 id=\"get-fulfillments\">Get Fulfillments</h1>\n<p>Retrieve fulfillments that match the specified search criteria with filtering and pagination support.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>order_number</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by order number. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>fulfillment_number</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by fulfillment number. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>shipping_group_number</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by shipping group number. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>tracking_number</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by tracking number. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>customer_email</strong></td>\n<td><strong><em>email (optional)</em></strong>  <br />Filter by customer email address. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>customer_number</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by customer number. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>status</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by fulfillment status. Maximum 50 characters.</td>\n</tr>\n<tr>\n<td><strong>fulfillment_type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by fulfillment type. Maximum 50 characters.</td>\n</tr>\n<tr>\n<td><strong>shipping_carrier</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by shipping carrier. Maximum 100 characters.</td>\n</tr>\n<tr>\n<td><strong>rma_number</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter by RMA number. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>search</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Search across fulfillment number, shipping group number, tracking number, RMA number, shipping carrier, order number, customer email, and customer name. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>per_page</strong></td>\n<td><strong><em>integer (optional)</em></strong>  <br />Number of results per page. Minimum: 1, Maximum: 100. Default: 15</td>\n</tr>\n<tr>\n<td><strong>sort_by</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Sort field. Options: created_at, updated_at, shipped_at, delivered_at, fulfillment_number. Default: created_at</td>\n</tr>\n<tr>\n<td><strong>sort_order</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Sort order. Options: asc, desc. Default: desc</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>array</strong>  <br />Array of fulfillment objects matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique database identifier for the fulfillment</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_number</strong></td>\n<td><strong>string</strong>  <br />Fulfillment number</td>\n</tr>\n<tr>\n<td><strong>data.shipping_group_number</strong></td>\n<td><strong>string</strong>  <br />Shipping group number</td>\n</tr>\n<tr>\n<td><strong>data.status</strong></td>\n<td><strong>string</strong>  <br />Current fulfillment status</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_type</strong></td>\n<td><strong>string</strong>  <br />Type of fulfillment</td>\n</tr>\n<tr>\n<td><strong>data.items</strong></td>\n<td><strong>integer</strong>  <br />Number of items in the fulfillment</td>\n</tr>\n<tr>\n<td><strong>data.shipping_carrier</strong></td>\n<td><strong>string</strong>  <br />Shipping carrier name</td>\n</tr>\n<tr>\n<td><strong>data.shipping_service</strong></td>\n<td><strong>string</strong>  <br />Shipping service type</td>\n</tr>\n<tr>\n<td><strong>data.tracking_number</strong></td>\n<td><strong>string</strong>  <br />Package tracking number</td>\n</tr>\n<tr>\n<td><strong>data.tracking_urls</strong></td>\n<td><strong>array</strong>  <br />Array of tracking URLs</td>\n</tr>\n<tr>\n<td><strong>data.rma_number</strong></td>\n<td><strong>string</strong>  <br />Return merchandise authorization number</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the fulfillment was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the fulfillment was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.order</strong></td>\n<td><strong>object</strong>  <br />Associated order information</td>\n</tr>\n<tr>\n<td><strong>data.order.id</strong></td>\n<td><strong>integer</strong>  <br />Order database ID</td>\n</tr>\n<tr>\n<td><strong>data.order.order_number</strong></td>\n<td><strong>string</strong>  <br />Order number</td>\n</tr>\n<tr>\n<td><strong>data.customer</strong></td>\n<td><strong>object</strong>  <br />Customer information (if available)</td>\n</tr>\n<tr>\n<td><strong>data.customer.customer_number</strong></td>\n<td><strong>string</strong>  <br />Customer's unique identifier</td>\n</tr>\n<tr>\n<td><strong>data.customer.email</strong></td>\n<td><strong>string</strong>  <br />Customer's email address</td>\n</tr>\n<tr>\n<td><strong>data.customer.name</strong></td>\n<td><strong>string</strong>  <br />Customer's full name</td>\n</tr>\n<tr>\n<td><strong>pagination</strong></td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td><strong>pagination.total</strong></td>\n<td><strong>integer</strong>  <br />Total number of fulfillments matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>pagination.per_page</strong></td>\n<td><strong>integer</strong>  <br />Number of fulfillments displayed per page</td>\n</tr>\n<tr>\n<td><strong>pagination.current_page</strong></td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td><strong>pagination.last_page</strong></td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n<tr>\n<td><strong>pagination.from</strong></td>\n<td><strong>integer/null</strong>  <br />Starting record number for the current page</td>\n</tr>\n<tr>\n<td><strong>pagination.to</strong></td>\n<td><strong>integer/null</strong>  <br />Ending record number for the current page</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","fulfillments"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"313db205-1f80-4a66-ab2a-b21cbe516574","name":"Get Fulfillments","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://healthsuite.test/v1/fulfillments?per_page=1","protocol":"https","host":["healthsuite","test"],"path":["v1","fulfillments"],"query":[{"key":"per_page","value":"1","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:04:02 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 543,\n            \"fulfillment_number\": \"FUL-250815-00543\",\n            \"shipping_group_number\": \"ccfafc41-daaf-3496-8ec4-db3804936b3f\",\n            \"status\": \"pending\",\n            \"fulfillment_type\": \"manual\",\n            \"items\": [\n                {\n                    \"quantity\": 1,\n                    \"product_id\": 1,\n                    \"unit_price\": \"299.99\",\n                    \"product_sku\": \"SKU-4991om\",\n                    \"total_price\": 299.99,\n                    \"product_name\": \"Smart Watch Pro\",\n                    \"base_quantity\": 1,\n                    \"order_quantity\": 1,\n                    \"product_options\": null\n                },\n                {\n                    \"quantity\": 1,\n                    \"product_id\": 8,\n                    \"unit_price\": \"45.99\",\n                    \"product_sku\": \"SKU-7191sf\",\n                    \"total_price\": 45.99,\n                    \"product_name\": \"Smart Water Bottle\",\n                    \"base_quantity\": 1,\n                    \"order_quantity\": 1,\n                    \"product_options\": null\n                }\n            ],\n            \"shipping_carrier\": null,\n            \"shipping_service\": null,\n            \"tracking_number\": null,\n            \"tracking_urls\": null,\n            \"rma_number\": null,\n            \"created_at\": \"2025-09-14T17:13:19.000000Z\",\n            \"updated_at\": \"2025-09-17T17:13:19.000000Z\",\n            \"order\": {\n                \"id\": 659,\n                \"order_number\": \"ORD-250815-00318\"\n            },\n            \"customer\": {\n                \"customer_number\": \"CUST-250815-00157\",\n                \"email\": \"lwest@example.net\",\n                \"name\": \"Bonita Botsford\"\n            }\n        }\n    ],\n    \"pagination\": {\n        \"total\": 1148,\n        \"per_page\": 1,\n        \"current_page\": 1,\n        \"last_page\": 1148,\n        \"from\": 1,\n        \"to\": 1\n    }\n}"}],"_postman_id":"f2c6a485-ba08-4ed0-afac-7921f01b2855"},{"name":"Get Fulfillment","id":"5c41981c-15a6-4951-b421-a9a08be92e6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/fulfillments/{fulfillmentNumber}","description":"<h1 id=\"get-specific-fulfillment\">Get Specific Fulfillment</h1>\n<p>Retrieve detailed information for a specific fulfillment by fulfillment number.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<p>No request body parameters. The fulfillment number is provided in the URL path.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The requested fulfillment object with detailed information</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique database identifier for the fulfillment</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_number</strong></td>\n<td><strong>string</strong>  <br />Fulfillment number</td>\n</tr>\n<tr>\n<td><strong>data.shipping_group_number</strong></td>\n<td><strong>string</strong>  <br />Shipping group number</td>\n</tr>\n<tr>\n<td><strong>data.status</strong></td>\n<td><strong>string</strong>  <br />Current fulfillment status</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_type</strong></td>\n<td><strong>string</strong>  <br />Type of fulfillment</td>\n</tr>\n<tr>\n<td><strong>data.items</strong></td>\n<td><strong>integer</strong>  <br />Number of items in the fulfillment</td>\n</tr>\n<tr>\n<td><strong>data.shipping_carrier</strong></td>\n<td><strong>string</strong>  <br />Shipping carrier name</td>\n</tr>\n<tr>\n<td><strong>data.shipping_service</strong></td>\n<td><strong>string</strong>  <br />Shipping service type</td>\n</tr>\n<tr>\n<td><strong>data.tracking_number</strong></td>\n<td><strong>string</strong>  <br />Package tracking number</td>\n</tr>\n<tr>\n<td><strong>data.tracking_urls</strong></td>\n<td><strong>array</strong>  <br />Array of tracking URLs</td>\n</tr>\n<tr>\n<td><strong>data.rma_number</strong></td>\n<td><strong>string</strong>  <br />Return merchandise authorization number</td>\n</tr>\n<tr>\n<td><strong>data.external_fulfillment_id</strong></td>\n<td><strong>string</strong>  <br />External fulfillment provider ID</td>\n</tr>\n<tr>\n<td><strong>data.transaction_id</strong></td>\n<td><strong>string</strong>  <br />Associated transaction ID</td>\n</tr>\n<tr>\n<td><strong>data.shipping_cost</strong></td>\n<td><strong>string</strong>  <br />Shipping cost amount</td>\n</tr>\n<tr>\n<td><strong>data.handling_cost</strong></td>\n<td><strong>string</strong>  <br />Handling cost amount</td>\n</tr>\n<tr>\n<td><strong>data.shipping_name</strong></td>\n<td><strong>string</strong>  <br />Recipient name</td>\n</tr>\n<tr>\n<td><strong>data.shipping_company</strong></td>\n<td><strong>string</strong>  <br />Recipient company</td>\n</tr>\n<tr>\n<td><strong>data.shipping_address1</strong></td>\n<td><strong>string</strong>  <br />Shipping address line 1</td>\n</tr>\n<tr>\n<td><strong>data.shipping_address2</strong></td>\n<td><strong>string</strong>  <br />Shipping address line 2</td>\n</tr>\n<tr>\n<td><strong>data.shipping_city</strong></td>\n<td><strong>string</strong>  <br />Shipping city</td>\n</tr>\n<tr>\n<td><strong>data.shipping_state</strong></td>\n<td><strong>string</strong>  <br />Shipping state/province</td>\n</tr>\n<tr>\n<td><strong>data.shipping_postal_code</strong></td>\n<td><strong>string</strong>  <br />Shipping postal code</td>\n</tr>\n<tr>\n<td><strong>data.shipping_country</strong></td>\n<td><strong>string</strong>  <br />Shipping country</td>\n</tr>\n<tr>\n<td><strong>data.shipping_phone</strong></td>\n<td><strong>string</strong>  <br />Recipient phone number</td>\n</tr>\n<tr>\n<td><strong>data.shipping_notes</strong></td>\n<td><strong>string</strong>  <br />Special shipping instructions</td>\n</tr>\n<tr>\n<td><strong>data.download_url</strong></td>\n<td><strong>string</strong>  <br />Download URL for digital fulfillments</td>\n</tr>\n<tr>\n<td><strong>data.download_limit</strong></td>\n<td><strong>integer</strong>  <br />Maximum number of downloads allowed</td>\n</tr>\n<tr>\n<td><strong>data.download_expiry</strong></td>\n<td><strong>string</strong>  <br />Download expiration date (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.return_status</strong></td>\n<td><strong>string</strong>  <br />Return status if applicable</td>\n</tr>\n<tr>\n<td><strong>data.return_reason</strong></td>\n<td><strong>string</strong>  <br />Reason for return</td>\n</tr>\n<tr>\n<td><strong>data.return_tracking_number</strong></td>\n<td><strong>string</strong>  <br />Return tracking number</td>\n</tr>\n<tr>\n<td><strong>data.return_meta</strong></td>\n<td><strong>object</strong>  <br />Additional return metadata</td>\n</tr>\n<tr>\n<td><strong>data.requires_signature</strong></td>\n<td><strong>boolean</strong>  <br />Whether delivery requires signature</td>\n</tr>\n<tr>\n<td><strong>data.is_gift</strong></td>\n<td><strong>boolean</strong>  <br />Whether fulfillment is marked as gift</td>\n</tr>\n<tr>\n<td><strong>data.is_backordered</strong></td>\n<td><strong>boolean</strong>  <br />Whether items are backordered</td>\n</tr>\n<tr>\n<td><strong>data.is_preorder</strong></td>\n<td><strong>boolean</strong>  <br />Whether items are preorders</td>\n</tr>\n<tr>\n<td><strong>data.is_custom</strong></td>\n<td><strong>boolean</strong>  <br />Whether fulfillment includes custom items</td>\n</tr>\n<tr>\n<td><strong>data.custom_fields</strong></td>\n<td><strong>object</strong>  <br />Custom field data</td>\n</tr>\n<tr>\n<td><strong>data.metadata</strong></td>\n<td><strong>object</strong>  <br />Additional metadata</td>\n</tr>\n<tr>\n<td><strong>data.rma_created_at</strong></td>\n<td><strong>string</strong>  <br />RMA creation date (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.rma_created_by</strong></td>\n<td><strong>string</strong>  <br />User who created the RMA</td>\n</tr>\n<tr>\n<td><strong>data.sent_to_shipper_at</strong></td>\n<td><strong>string</strong>  <br />Date sent to shipping provider (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.tracking_number_generated_at</strong></td>\n<td><strong>string</strong>  <br />Date tracking number was generated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.shipped_at</strong></td>\n<td><strong>string</strong>  <br />Date package was shipped (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.delivered_at</strong></td>\n<td><strong>string</strong>  <br />Date package was delivered (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.returned_at</strong></td>\n<td><strong>string</strong>  <br />Date package was returned (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the fulfillment was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the fulfillment was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.proof_images</strong></td>\n<td><strong>array</strong>  <br />Array of proof of delivery image URLs (if available)</td>\n</tr>\n<tr>\n<td><strong>data.order</strong></td>\n<td><strong>object</strong>  <br />Associated order information</td>\n</tr>\n<tr>\n<td><strong>data.order.id</strong></td>\n<td><strong>integer</strong>  <br />Order database ID</td>\n</tr>\n<tr>\n<td><strong>data.order.order_number</strong></td>\n<td><strong>string</strong>  <br />Order number</td>\n</tr>\n<tr>\n<td><strong>data.customer</strong></td>\n<td><strong>object</strong>  <br />Customer information (if available)</td>\n</tr>\n<tr>\n<td><strong>data.customer.customer_number</strong></td>\n<td><strong>string</strong>  <br />Customer's unique identifier</td>\n</tr>\n<tr>\n<td><strong>data.customer.email</strong></td>\n<td><strong>string</strong>  <br />Customer's email address</td>\n</tr>\n<tr>\n<td><strong>data.customer.name</strong></td>\n<td><strong>string</strong>  <br />Customer's full name</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_provider</strong></td>\n<td><strong>object</strong>  <br />Fulfillment provider information (if available)</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_provider.id</strong></td>\n<td><strong>integer</strong>  <br />Provider database ID</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_provider.name</strong></td>\n<td><strong>string</strong>  <br />Provider name</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_provider.integration_type</strong></td>\n<td><strong>string</strong>  <br />Integration type</td>\n</tr>\n<tr>\n<td><strong>data.fulfillment_provider.status</strong></td>\n<td><strong>string</strong>  <br />Provider status</td>\n</tr>\n<tr>\n<td><strong>data.products</strong></td>\n<td><strong>array</strong>  <br />Array of products in the fulfillment (if available)</td>\n</tr>\n<tr>\n<td><strong>data.products.id</strong></td>\n<td><strong>integer</strong>  <br />Product database ID</td>\n</tr>\n<tr>\n<td><strong>data.products.name</strong></td>\n<td><strong>string</strong>  <br />Product name</td>\n</tr>\n<tr>\n<td><strong>data.products.sku</strong></td>\n<td><strong>string</strong>  <br />Product SKU</td>\n</tr>\n<tr>\n<td><strong>data.products.quantity</strong></td>\n<td><strong>integer</strong>  <br />Quantity of this product in the fulfillment</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","fulfillments","{fulfillmentNumber}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"002d5dce-afb2-4e02-9b7a-d45221440144","name":"Get Fulfillment","originalRequest":{"method":"GET","header":[],"url":"https://healthsuite.test/v1/fulfillments/FUL-250815-00543"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:05:23 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 543,\n        \"fulfillment_number\": \"FUL-250815-00543\",\n        \"shipping_group_number\": \"ccfafc41-daaf-3496-8ec4-db3804936b3f\",\n        \"status\": \"pending\",\n        \"fulfillment_type\": \"manual\",\n        \"items\": [\n            {\n                \"quantity\": 1,\n                \"product_id\": 1,\n                \"unit_price\": \"299.99\",\n                \"product_sku\": \"SKU-4991om\",\n                \"total_price\": 299.99,\n                \"product_name\": \"Smart Watch Pro\",\n                \"base_quantity\": 1,\n                \"order_quantity\": 1,\n                \"product_options\": null\n            },\n            {\n                \"quantity\": 1,\n                \"product_id\": 8,\n                \"unit_price\": \"45.99\",\n                \"product_sku\": \"SKU-7191sf\",\n                \"total_price\": 45.99,\n                \"product_name\": \"Smart Water Bottle\",\n                \"base_quantity\": 1,\n                \"order_quantity\": 1,\n                \"product_options\": null\n            }\n        ],\n        \"shipping_carrier\": null,\n        \"shipping_service\": null,\n        \"tracking_number\": null,\n        \"tracking_urls\": null,\n        \"rma_number\": null,\n        \"created_at\": \"2025-09-14T17:13:19.000000Z\",\n        \"updated_at\": \"2025-09-17T17:13:19.000000Z\",\n        \"order\": {\n            \"id\": 659,\n            \"order_number\": \"ORD-250815-00318\"\n        },\n        \"customer\": {\n            \"customer_number\": \"CUST-250815-00157\",\n            \"email\": \"lwest@example.net\",\n            \"name\": \"Bonita Botsford\"\n        },\n        \"external_fulfillment_id\": \"SHIP00324\",\n        \"transaction_id\": 538,\n        \"shipping_cost\": \"36.44\",\n        \"handling_cost\": \"9.92\",\n        \"shipping_name\": \"Bonita Botsford\",\n        \"shipping_company\": \"Harvey-Hintz\",\n        \"shipping_address1\": \"52129 Collins Station\",\n        \"shipping_address2\": null,\n        \"shipping_city\": \"Issacborough\",\n        \"shipping_state\": \"TX\",\n        \"shipping_postal_code\": \"63857-0260\",\n        \"shipping_country\": \"US\",\n        \"shipping_phone\": \"+1-631-474-1299\",\n        \"shipping_notes\": null,\n        \"download_url\": null,\n        \"download_limit\": null,\n        \"download_expiry\": null,\n        \"return_status\": null,\n        \"return_reason\": null,\n        \"return_tracking_number\": null,\n        \"return_meta\": null,\n        \"requires_signature\": false,\n        \"is_gift\": true,\n        \"is_backordered\": false,\n        \"is_preorder\": false,\n        \"is_custom\": false,\n        \"custom_fields\": {\n            \"notes\": \"Ea quia est necessitatibus fuga ea aut.\",\n            \"source\": \"email\",\n            \"priority\": \"medium\"\n        },\n        \"metadata\": {\n            \"picker_id\": \"PICK977\",\n            \"bin_location\": \"ZONE09-SHELF14-BIN03\",\n            \"warehouse_id\": \"WH853\"\n        },\n        \"rma_created_at\": null,\n        \"rma_created_by\": null,\n        \"sent_to_shipper_at\": null,\n        \"tracking_number_generated_at\": null,\n        \"shipped_at\": null,\n        \"delivered_at\": null,\n        \"returned_at\": null,\n        \"products\": [\n            {\n                \"id\": 8,\n                \"name\": \"Smart Water Bottle\",\n                \"sku\": null,\n                \"quantity\": 1\n            },\n            {\n                \"id\": 1,\n                \"name\": \"Smart Watch Pro\",\n                \"sku\": null,\n                \"quantity\": 1\n            }\n        ]\n    }\n}"}],"_postman_id":"5c41981c-15a6-4951-b421-a9a08be92e6a"}],"id":"5a395cf7-abef-42e5-a255-a78e73aac7de","_postman_id":"5a395cf7-abef-42e5-a255-a78e73aac7de","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Orders","item":[{"name":"Notes","item":[{"name":"Get Order Notes","id":"e4ff3f2c-31e5-4144-836b-95ef0446e8f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/orders/{orderNumber}/notes","description":"<h1 id=\"get-order-notes\">Get Order Notes</h1>\n<p>Retrieve notes for a specific order that match the specified search criteria.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter notes by type. Maximum 50 characters.</td>\n</tr>\n<tr>\n<td><strong>search</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Search notes by title or content. Performs partial matching using SQL LIKE operations. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>per_page</strong></td>\n<td><strong><em>integer (optional)</em></strong>  <br />Number of results per page. Minimum: 1, Maximum: 100. Default: 15</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>array</strong>  <br />Array of order note objects matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>integer</strong>  <br />ID of the user who created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>order</strong></td>\n<td><strong>object</strong>  <br />Order information</td>\n</tr>\n<tr>\n<td><strong>order.order_number</strong></td>\n<td><strong>string</strong>  <br />Order's unique identifier</td>\n</tr>\n<tr>\n<td><strong>order.status</strong></td>\n<td><strong>string</strong>  <br />Current order status</td>\n</tr>\n<tr>\n<td><strong>pagination</strong></td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td><strong>pagination.total</strong></td>\n<td><strong>integer</strong>  <br />Total number of notes matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>pagination.per_page</strong></td>\n<td><strong>integer</strong>  <br />Number of notes displayed per page</td>\n</tr>\n<tr>\n<td><strong>pagination.current_page</strong></td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td><strong>pagination.last_page</strong></td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n<tr>\n<td><strong>pagination.from</strong></td>\n<td><strong>integer/null</strong>  <br />Starting record number for the current page</td>\n</tr>\n<tr>\n<td><strong>pagination.to</strong></td>\n<td><strong>integer/null</strong>  <br />Ending record number for the current page</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","orders","{orderNumber}","notes"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"f005c5c0-8cd2-4bb3-93e3-bc5947e322d1","name":"Get Order Notes","originalRequest":{"method":"GET","header":[],"url":"https://healthsuite.test/v1/orders/ORD-250815-00297/notes"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:06:47 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"59000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 1243,\n            \"title\": \"Iusto aperiam hic.\",\n            \"content\": \"Voluptatem quo dolores error autem. Consequatur explicabo velit quo aut veritatis modi eius. Odit harum maxime beatae velit officiis sed architecto.\",\n            \"type\": \"shipping\",\n            \"created_by\": \"Tempore deserunt blanditiis velit amet.\",\n            \"created_at\": \"2024-10-12T15:06:27.000000Z\",\n            \"updated_at\": \"2025-08-15T01:57:50.000000Z\"\n        }\n    ],\n    \"order\": {\n        \"order_number\": \"ORD-250815-00297\",\n        \"status\": \"completed\"\n    },\n    \"pagination\": {\n        \"total\": 1,\n        \"per_page\": 15,\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"from\": 1,\n        \"to\": 1\n    }\n}"}],"_postman_id":"e4ff3f2c-31e5-4144-836b-95ef0446e8f6"},{"name":"Create Order Note","id":"5204da20-1efc-4ce0-a15f-72a8d53f56c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.healthsuite.io/v1/orders/{orderNumber}/notes","description":"<h1 id=\"create-order-note\">Create Order Note</h1>\n<p>Create a new note for a specific order.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>title</strong></td>\n<td><strong><em>string (required)</em></strong>  <br />Note title. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>content</strong></td>\n<td><strong><em>string (required)</em></strong>  <br />Note content. Maximum 5000 characters.</td>\n</tr>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note type/category. Maximum 50 characters.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The created note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>integer</strong>  <br />ID of the user who created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","orders","{orderNumber}","notes"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"3bb9ebd1-a27e-4af3-9308-7ca530e8d2e1","name":"Create Order Note","originalRequest":{"method":"POST","header":[],"url":{"raw":"https://healthsuite.test/v1/orders/ORD-250815-00297/notes?title=new note&content=New note for this order&type=shipping","protocol":"https","host":["healthsuite","test"],"path":["v1","orders","ORD-250815-00297","notes"],"query":[{"key":"title","value":"new note","type":"text"},{"key":"content","value":"New note for this order","type":"text"},{"key":"type","value":"shipping","type":"text"}]}},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:11:17 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"59000"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note added successfully\",\n    \"data\": {\n        \"id\": 2018,\n        \"title\": \"new note\",\n        \"content\": \"New note for this order\",\n        \"type\": \"shipping\",\n        \"created_by\": 2,\n        \"created_at\": \"2025-09-17T03:11:17.000000Z\",\n        \"updated_at\": \"2025-09-17T03:11:17.000000Z\"\n    }\n}"}],"_postman_id":"5204da20-1efc-4ce0-a15f-72a8d53f56c4"},{"name":"Get Order Note","id":"dd31caa6-8ea2-4fb0-a982-592487f729e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/orders/{orderNumber}/notes/{noteId}","description":"<h1 id=\"get-specific-order-note\">Get Specific Order Note</h1>\n<p>Retrieve a specific note for an order by note ID.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<p>No request body parameters. The order number and note ID are provided in the URL path.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The requested note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>integer</strong>  <br />ID of the user who created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","orders","{orderNumber}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"2569ff06-c3f2-451d-9149-78fb2d8a29f3","name":"Get Order Note","originalRequest":{"method":"GET","header":[],"url":"https://healthsuite.test/v1/orders/ORD-250815-00297/notes/1243"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:08:10 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"59000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 1243,\n        \"title\": \"Iusto aperiam hic.\",\n        \"content\": \"Voluptatem quo dolores error autem. Consequatur explicabo velit quo aut veritatis modi eius. Odit harum maxime beatae velit officiis sed architecto.\",\n        \"type\": \"shipping\",\n        \"created_by\": \"Tempore deserunt blanditiis velit amet.\",\n        \"created_at\": \"2024-10-12T15:06:27.000000Z\",\n        \"updated_at\": \"2025-08-15T01:57:50.000000Z\"\n    }\n}"}],"_postman_id":"dd31caa6-8ea2-4fb0-a982-592487f729e0"},{"name":"Update Order Note","id":"d427250c-3635-440e-99db-732f0dded364","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"https://api.healthsuite.io/v1/orders/{orderNumber}/notes/{noteId}","description":"<h1 id=\"update-order-note\">Update Order Note</h1>\n<p>Update an existing note for a specific order.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>title</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note title. Maximum 255 characters. Only required if updating the title.</td>\n</tr>\n<tr>\n<td><strong>content</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note content. Maximum 5000 characters. Only required if updating the content.</td>\n</tr>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note type/category. Maximum 50 characters. Can be set to null.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> At least one field must be provided to update the note. All fields use \"sometimes\" validation, meaning they're only validated if present in the request.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The updated note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>integer</strong>  <br />ID of the user who created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","orders","{orderNumber}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"364f115c-c519-4136-9982-fe4c2a376f02","name":"Update Order Note","originalRequest":{"method":"PUT","header":[],"url":{"raw":"https://healthsuite.test/v1/orders/ORD-250815-00297/notes/1243?content=updated note","protocol":"https","host":["healthsuite","test"],"path":["v1","orders","ORD-250815-00297","notes","1243"],"query":[{"key":"content","value":"updated note","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:09:31 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"59000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note updated successfully\",\n    \"data\": {\n        \"id\": 1243,\n        \"title\": \"Iusto aperiam hic.\",\n        \"content\": \"updated note\",\n        \"type\": \"shipping\",\n        \"created_by\": \"Tempore deserunt blanditiis velit amet.\",\n        \"created_at\": \"2024-10-12T15:06:27.000000Z\",\n        \"updated_at\": \"2025-09-17T03:09:31.000000Z\"\n    }\n}"}],"_postman_id":"d427250c-3635-440e-99db-732f0dded364"},{"name":"Delete Order Note","id":"9cb5a3fb-5939-4f8f-a921-3fd08b8ff775","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.healthsuite.io/v1/orders/{orderNumber}/notes/{noteId}","description":"<h1 id=\"delete-order-note\">Delete Order Note</h1>\n<p>Delete a specific note for an order by note ID.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<p>No request body parameters. The order number and note ID are provided in the URL path.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message confirming the note deletion</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","orders","{orderNumber}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"2e6cc5d2-b518-4967-a8d7-5a74c3272057","name":"Delete Order Note","originalRequest":{"method":"DELETE","header":[],"url":"https://healthsuite.test/v1/orders/ORD-250815-00297/notes/2018"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:12:16 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"0"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note deleted successfully\"\n}"}],"_postman_id":"9cb5a3fb-5939-4f8f-a921-3fd08b8ff775"}],"id":"107bc3e1-6163-4027-8f52-e54071e4169c","_postman_id":"107bc3e1-6163-4027-8f52-e54071e4169c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}}],"id":"27d56b1f-ba38-40b3-b165-87ebf4c6d129","_postman_id":"27d56b1f-ba38-40b3-b165-87ebf4c6d129","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Products","item":[{"name":"Search Campaign Product(s)","id":"8008ddd2-d6e3-4fec-bb9a-bc54772deb34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/campaigns/1/products?per_page=100","description":"<h1 id=\"get-campaign-products\">Get Campaign Products</h1>\n<p>Retrieve all products (offers and upsells combined) for a specific campaign. Products are returned sorted by position and can be filtered by type and active status.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>identifier</td>\n<td><em>string (required - URL parameter)</em>  <br />Campaign identifier (internal ID only) to get products for</td>\n</tr>\n<tr>\n<td>is_active</td>\n<td><em>string (optional)</em>  <br />Filter products by active status. Supported values: <code>true</code>, <code>false</code>, <code>1</code>, <code>0</code></td>\n</tr>\n<tr>\n<td>product_type</td>\n<td><em>string (optional)</em>  <br />Filter by product type. Supported values: <code>offer</code>, <code>upsell</code>. If not provided, returns both offers and upsells.</td>\n</tr>\n<tr>\n<td>per_page</td>\n<td><em>integer (optional)</em>  <br />Number of results per page. Minimum: 1, Maximum: 15. Default: 15</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td>data</td>\n<td><strong>array</strong>  <br />Array of product objects (offers and upsells combined) sorted by position</td>\n</tr>\n<tr>\n<td>data[].id</td>\n<td><strong>integer</strong>  <br />Unique identifier for the product (offer or upsell)</td>\n</tr>\n<tr>\n<td>data[].internal_id</td>\n<td><strong>string</strong>  <br />Internal identifier for the product</td>\n</tr>\n<tr>\n<td>data[].name</td>\n<td><strong>string</strong>  <br />Product name (for upsells, uses product name or defaults to \"Upsell Product\")</td>\n</tr>\n<tr>\n<td>data[].product_type</td>\n<td><strong>string</strong>  <br />Type of product: <code>offer</code> or <code>upsell</code></td>\n</tr>\n<tr>\n<td>data[].is_active</td>\n<td><strong>boolean</strong>  <br />Indicates if the product is currently active</td>\n</tr>\n<tr>\n<td>data[].position</td>\n<td><strong>integer</strong>  <br />Position/order of the product in the sales funnel</td>\n</tr>\n<tr>\n<td>data[].price</td>\n<td><strong>string</strong>  <br />Product price in smallest currency unit (e.g., cents)</td>\n</tr>\n<tr>\n<td>data[].shipping_price</td>\n<td><strong>string</strong>  <br />Shipping cost for the product</td>\n</tr>\n<tr>\n<td>data[].tax_rate</td>\n<td><strong>string</strong>  <br />Tax rate applied to the product</td>\n</tr>\n<tr>\n<td>data[].is_tax_included</td>\n<td><strong>boolean</strong>  <br />Indicates if tax is included in the price</td>\n</tr>\n<tr>\n<td>data[].dynamic_descriptor</td>\n<td><strong>string</strong>  <br />Dynamic descriptor for payment processing</td>\n</tr>\n<tr>\n<td>data[].sale_type</td>\n<td><strong>string/null</strong>  <br />Type of sale (e.g., \"one_time\", \"subscription\")</td>\n</tr>\n<tr>\n<td>data[].subscription_config</td>\n<td><strong>object/null</strong>  <br />Subscription configuration details</td>\n</tr>\n<tr>\n<td>data[].allow_duplicates</td>\n<td><strong>boolean/null</strong>  <br />Whether duplicates are allowed (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].requires_shipping_on_trial</td>\n<td><strong>boolean/null</strong>  <br />Whether shipping is required on trial (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].billing_interval</td>\n<td><strong>string/null</strong>  <br />Billing interval for subscriptions (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].billing_cycles</td>\n<td><strong>integer/null</strong>  <br />Number of billing cycles (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].billing_schedule</td>\n<td><strong>object/null</strong>  <br />Billing schedule details (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].use_offer_gateway</td>\n<td><strong>boolean/null</strong>  <br />Whether to use offer gateway (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].gateway_id</td>\n<td><strong>integer/null</strong>  <br />Payment gateway ID (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].payment_orchestrator_id</td>\n<td><strong>integer/null</strong>  <br />Payment orchestrator ID (upsell-specific, null for offers)</td>\n</tr>\n<tr>\n<td>data[].product</td>\n<td><strong>object/null</strong>  <br />Associated product information</td>\n</tr>\n<tr>\n<td>data[].product.id</td>\n<td><strong>integer</strong>  <br />Unique identifier for the associated product</td>\n</tr>\n<tr>\n<td>data[].product.name</td>\n<td><strong>string</strong>  <br />Name of the associated product</td>\n</tr>\n<tr>\n<td>data[].product.sku</td>\n<td><strong>string</strong>  <br />Stock keeping unit (SKU) of the product</td>\n</tr>\n<tr>\n<td>data[].product.description</td>\n<td><strong>string</strong>  <br />Product description</td>\n</tr>\n<tr>\n<td>data[].product.weight</td>\n<td><strong>string</strong>  <br />Product weight</td>\n</tr>\n<tr>\n<td>data[].product.dimensions</td>\n<td><strong>object</strong>  <br />Product dimensions (length, width, height)</td>\n</tr>\n<tr>\n<td>data[].product.requires_shipping</td>\n<td><strong>boolean</strong>  <br />Whether the product requires shipping</td>\n</tr>\n<tr>\n<td>data[].created_at</td>\n<td><strong>string</strong>  <br />Date and time when the product was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>data[].updated_at</td>\n<td><strong>string</strong>  <br />Date and time when the product was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td>campaign</td>\n<td><strong>object</strong>  <br />Campaign information</td>\n</tr>\n<tr>\n<td>campaign.internal_id</td>\n<td><strong>string</strong>  <br />Internal identifier of the campaign</td>\n</tr>\n<tr>\n<td>campaign.name</td>\n<td><strong>string</strong>  <br />Name of the campaign</td>\n</tr>\n<tr>\n<td>campaign.uuid</td>\n<td><strong>string</strong>  <br />UUID of the campaign</td>\n</tr>\n<tr>\n<td>pagination</td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td>pagination.total</td>\n<td><strong>integer</strong>  <br />Total number of products matching the criteria</td>\n</tr>\n<tr>\n<td>pagination.per_page</td>\n<td><strong>integer</strong>  <br />Number of products displayed per page</td>\n</tr>\n<tr>\n<td>pagination.current_page</td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td>pagination.last_page</td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n<tr>\n<td>pagination.from</td>\n<td><strong>integer/null</strong>  <br />Starting record number for the current page</td>\n</tr>\n<tr>\n<td>pagination.to</td>\n<td><strong>integer/null</strong>  <br />Ending record number for the current page</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-requests\">Example Requests</h2>\n<h3 id=\"get-all-campaign-products\">Get All Campaign Products</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns/123/products\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n</code></pre>\n<h3 id=\"get-active-products-only\">Get Active Products Only</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns/123/products?is_active=true\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n</code></pre>\n<h3 id=\"get-offers-only\">Get Offers Only</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns/123/products?product_type=offer\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n</code></pre>\n<h3 id=\"get-upsells-only\">Get Upsells Only</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns/123/products?product_type=upsell\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n</code></pre>\n<h3 id=\"get-active-offers-with-pagination\">Get Active Offers with Pagination</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /v1/campaigns/123/products?product_type=offer&amp;is_active=true&amp;per_page=10\nAuthorization: Bearer YOUR_API_KEY_HERE\nContent-Type: application/json\nAccept: application/json\n</code></pre>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"internal_id\": \"offer_001\",\n      \"name\": \"Premium Package\",\n      \"product_type\": \"offer\",\n      \"is_active\": true,\n      \"position\": 1,\n      \"price\": \"2999\",\n      \"shipping_price\": \"599\",\n      \"tax_rate\": \"0.08\",\n      \"is_tax_included\": false,\n      \"dynamic_descriptor\": \"PREMIUM PKG\",\n      \"sale_type\": \"one_time\",\n      \"subscription_config\": null,\n      \"allow_duplicates\": null,\n      \"requires_shipping_on_trial\": null,\n      \"billing_interval\": null,\n      \"billing_cycles\": null,\n      \"billing_schedule\": null,\n      \"use_offer_gateway\": null,\n      \"gateway_id\": null,\n      \"payment_orchestrator_id\": null,\n      \"product\": {\n        \"id\": 1,\n        \"name\": \"Premium Package\",\n        \"sku\": \"PREM-001\",\n        \"description\": \"Our premium package with all features included\",\n        \"weight\": \"2.5\",\n        \"dimensions\": {\n          \"length\": \"10\",\n          \"width\": \"8\",\n          \"height\": \"6\"\n        },\n        \"requires_shipping\": true\n      },\n      \"created_at\": \"2024-01-15T10:30:00.000Z\",\n      \"updated_at\": \"2024-01-20T14:45:00.000Z\"\n    },\n    {\n      \"id\": 2,\n      \"internal_id\": \"upsell_001\",\n      \"name\": \"Extended Warranty\",\n      \"product_type\": \"upsell\",\n      \"is_active\": true,\n      \"position\": 2,\n      \"price\": \"999\",\n      \"shipping_price\": \"0\",\n      \"tax_rate\": \"0.08\",\n      \"is_tax_included\": false,\n      \"dynamic_descriptor\": \"WARRANTY\",\n      \"sale_type\": \"subscription\",\n      \"subscription_config\": {\n        \"interval\": \"monthly\",\n        \"cycles\": 12\n      },\n      \"allow_duplicates\": false,\n      \"requires_shipping_on_trial\": false,\n      \"billing_interval\": \"monthly\",\n      \"billing_cycles\": 12,\n      \"billing_schedule\": {\n        \"start_date\": \"immediate\",\n        \"trial_days\": 0\n      },\n      \"use_offer_gateway\": true,\n      \"gateway_id\": null,\n      \"payment_orchestrator_id\": null,\n      \"product\": {\n        \"id\": 2,\n        \"name\": \"Extended Warranty\",\n        \"sku\": \"WARR-001\",\n        \"description\": \"12-month extended warranty coverage\",\n        \"weight\": \"0\",\n        \"dimensions\": null,\n        \"requires_shipping\": false\n      },\n      \"created_at\": \"2024-01-15T11:00:00.000Z\",\n      \"updated_at\": \"2024-01-20T15:00:00.000Z\"\n    }\n  ],\n  \"campaign\": {\n    \"internal_id\": \"123\",\n    \"name\": \"Summer Sale Campaign\",\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\"\n  },\n  \"pagination\": {\n    \"total\": 2,\n    \"per_page\": 15,\n    \"current_page\": 1,\n    \"last_page\": 1,\n    \"from\": 1,\n    \"to\": 2\n  }\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","campaigns","1","products"],"host":["api","healthsuite","io"],"query":[{"key":"per_page","value":"100"}],"variable":[]}},"response":[{"id":"4e7c95c7-c483-46d1-a185-584fd4247f2c","name":"Search Campaign Product(s)","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.healthsuite.io/v1/campaigns/1/products?is_active=true","protocol":"https","host":["api","healthsuite","io"],"path":["v1","campaigns","1","products"],"query":[{"key":"is_active","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.7"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 18 Jun 2025 17:47:42 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"60000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Smart Watch Bundle\",\n            \"product_type\": \"offer\",\n            \"is_active\": true,\n            \"position\": 0,\n            \"price\": \"50.00\",\n            \"shipping_price\": \"0.00\",\n            \"tax_rate\": \"0.00\",\n            \"is_tax_included\": true,\n            \"dynamic_descriptor\": \"\",\n            \"sale_type\": \"none\",\n            \"subscription_config\": [],\n            \"allow_duplicates\": null,\n            \"requires_shipping_on_trial\": null,\n            \"billing_interval\": null,\n            \"billing_cycles\": null,\n            \"billing_schedule\": null,\n            \"use_offer_gateway\": null,\n            \"base_product\": {\n                \"id\": 1,\n                \"name\": \"Smart Watch Pro\",\n                \"quantity\": 1,\n                \"sku\": null,\n                \"description\": \"Advanced smartwatch with health tracking features\",\n                \"weight\": null,\n                \"dimensions\": null,\n                \"requires_shipping\": true\n            },\n            \"created_at\": \"2025-03-25T20:57:55.000000Z\",\n            \"updated_at\": \"2025-03-25T20:57:55.000000Z\"\n        },\n        {\n            \"id\": 2,\n            \"name\": \"Smart LED Bulb\",\n            \"product_type\": \"offer\",\n            \"is_active\": true,\n            \"position\": 0,\n            \"price\": \"144.00\",\n            \"shipping_price\": \"0.00\",\n            \"tax_rate\": \"0.00\",\n            \"is_tax_included\": true,\n            \"dynamic_descriptor\": \"\",\n            \"sale_type\": \"none\",\n            \"subscription_config\": [],\n            \"allow_duplicates\": null,\n            \"requires_shipping_on_trial\": null,\n            \"billing_interval\": null,\n            \"billing_cycles\": null,\n            \"billing_schedule\": null,\n            \"use_offer_gateway\": null,\n            \"base_product\": {\n                \"id\": 6,\n                \"name\": \"Smart LED Bulb\",\n                \"quantity\": 1,\n                \"sku\": null,\n                \"description\": \"WiFi-enabled LED bulb with millions of colors\",\n                \"weight\": null,\n                \"dimensions\": null,\n                \"requires_shipping\": true\n            },\n            \"created_at\": \"2025-03-25T21:26:14.000000Z\",\n            \"updated_at\": \"2025-03-25T21:26:14.000000Z\"\n        }\n    ],\n    \"campaign\": {\n        \"id\": 1,\n        \"name\": \"smartwatch.com\"\n    },\n    \"pagination\": {\n        \"total\": 2,\n        \"per_page\": \"100\",\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"from\": 1,\n        \"to\": 2\n    }\n}"}],"_postman_id":"8008ddd2-d6e3-4fec-bb9a-bc54772deb34"}],"id":"7284c824-a21d-4228-bd64-808421eeeb1d","_postman_id":"7284c824-a21d-4228-bd64-808421eeeb1d","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Transactions","item":[{"name":"Notes","item":[{"name":"Get Transaction Notes","id":"4d7abae3-8786-440b-9403-6fe5c9612aab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.healthsuite.io/v1/transactions/{transactionNumber}/notes","description":"<h1 id=\"get-transaction-notes\">Get Transaction Notes</h1>\n<p>Retrieve notes for a specific transaction that match the specified search criteria.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Filter notes by type. Maximum 50 characters.</td>\n</tr>\n<tr>\n<td><strong>search</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Search notes by title or content. Performs partial matching using SQL LIKE operations. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>per_page</strong></td>\n<td><strong><em>integer (optional)</em></strong>  <br />Number of results per page. Minimum: 1, Maximum: 100. Default: 15</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>array</strong>  <br />Array of transaction note objects matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>integer</strong>  <br />ID of the user who created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>transaction</strong></td>\n<td><strong>object</strong>  <br />Transaction information</td>\n</tr>\n<tr>\n<td><strong>transaction.transaction_number</strong></td>\n<td><strong>string</strong>  <br />Transaction's unique identifier</td>\n</tr>\n<tr>\n<td><strong>transaction.status</strong></td>\n<td><strong>string</strong>  <br />Current transaction status</td>\n</tr>\n<tr>\n<td><strong>pagination</strong></td>\n<td><strong>object</strong>  <br />Contains pagination information for the response</td>\n</tr>\n<tr>\n<td><strong>pagination.total</strong></td>\n<td><strong>integer</strong>  <br />Total number of notes matching the search criteria</td>\n</tr>\n<tr>\n<td><strong>pagination.per_page</strong></td>\n<td><strong>integer</strong>  <br />Number of notes displayed per page</td>\n</tr>\n<tr>\n<td><strong>pagination.current_page</strong></td>\n<td><strong>integer</strong>  <br />Current page number</td>\n</tr>\n<tr>\n<td><strong>pagination.last_page</strong></td>\n<td><strong>integer</strong>  <br />Total number of pages available</td>\n</tr>\n<tr>\n<td><strong>pagination.from</strong></td>\n<td><strong>integer/null</strong>  <br />Starting record number for the current page</td>\n</tr>\n<tr>\n<td><strong>pagination.to</strong></td>\n<td><strong>integer/null</strong>  <br />Ending record number for the current page</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","transactions","{transactionNumber}","notes"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"01cb2d87-a2e8-49cb-9826-eb631fc02db4","name":"Get Transaction Notes","originalRequest":{"method":"GET","header":[],"url":"https://healthsuite.test/v1/transactions/TXN-250815-000538/notes"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:16:41 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"48000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"transaction note\",\n            \"content\": \"this is a new transaction note for shipping\",\n            \"type\": \"shipping\",\n            \"created_by\": \"2\",\n            \"created_at\": \"2025-09-17T03:16:30.000000Z\",\n            \"updated_at\": \"2025-09-17T03:16:30.000000Z\"\n        }\n    ],\n    \"transaction\": {\n        \"transaction_number\": \"TXN-250815-000538\",\n        \"status\": \"completed\"\n    },\n    \"pagination\": {\n        \"total\": 1,\n        \"per_page\": 15,\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"from\": 1,\n        \"to\": 1\n    }\n}"}],"_postman_id":"4d7abae3-8786-440b-9403-6fe5c9612aab"},{"name":"Create Transaction Note","id":"75c88a0b-0011-4ee0-a360-08be669a46d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.healthsuite.io/v1/transactions/{transactionNumber}/notes","description":"<h1 id=\"create-transaction-note\">Create Transaction Note</h1>\n<p>Create a new note for a specific transaction.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>title</strong></td>\n<td><strong><em>string (required)</em></strong>  <br />Note title. Maximum 255 characters.</td>\n</tr>\n<tr>\n<td><strong>content</strong></td>\n<td><strong><em>string (required)</em></strong>  <br />Note content. Maximum 5000 characters.</td>\n</tr>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note type/category. Maximum 50 characters.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The created note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>integer</strong>  <br />ID of the user who created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","transactions","{transactionNumber}","notes"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"f2f80996-3b5e-4680-b7bb-6e6542462bba","name":"Create Transaction Note","originalRequest":{"method":"POST","header":[],"url":{"raw":"https://healthsuite.test/v1/transactions/TXN-250815-000538/notes?title=transaction note&content=this is a new transaction note for shipping&type=shipping","protocol":"https","host":["healthsuite","test"],"path":["v1","transactions","TXN-250815-000538","notes"],"query":[{"key":"title","value":"transaction note","type":"text"},{"key":"content","value":"this is a new transaction note for shipping","type":"text"},{"key":"type","value":"shipping","type":"text"}]}},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:16:30 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"59000"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note added successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"transaction note\",\n        \"content\": \"this is a new transaction note for shipping\",\n        \"type\": \"shipping\",\n        \"created_by\": 2,\n        \"created_at\": \"2025-09-17T03:16:30.000000Z\",\n        \"updated_at\": \"2025-09-17T03:16:30.000000Z\"\n    }\n}"}],"_postman_id":"75c88a0b-0011-4ee0-a360-08be669a46d3"},{"name":"Update Transaction Note","id":"2e00e5f7-4bc9-48c9-beda-6b4435e4749f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"https://api.healthsuite.io/v1/transactions/{transactionNumber}/notes/{noteId}","description":"<h1 id=\"update-transaction-note\">Update Transaction Note</h1>\n<p>Update an existing note for a specific transaction.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>title</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note title. Maximum 255 characters. Only required if updating the title.</td>\n</tr>\n<tr>\n<td><strong>content</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note content. Maximum 5000 characters. Only required if updating the content.</td>\n</tr>\n<tr>\n<td><strong>type</strong></td>\n<td><strong><em>string (optional)</em></strong>  <br />Note type/category. Maximum 50 characters. Can be set to null.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> At least one field must be provided to update the note. All fields use \"sometimes\" validation, meaning they're only validated if present in the request.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message</td>\n</tr>\n<tr>\n<td><strong>data</strong></td>\n<td><strong>object</strong>  <br />The updated note object</td>\n</tr>\n<tr>\n<td><strong>data.id</strong></td>\n<td><strong>integer</strong>  <br />Unique identifier for the note</td>\n</tr>\n<tr>\n<td><strong>data.title</strong></td>\n<td><strong>string</strong>  <br />Note title</td>\n</tr>\n<tr>\n<td><strong>data.content</strong></td>\n<td><strong>string</strong>  <br />Note content</td>\n</tr>\n<tr>\n<td><strong>data.type</strong></td>\n<td><strong>string</strong>  <br />Note type/category</td>\n</tr>\n<tr>\n<td><strong>data.created_by</strong></td>\n<td><strong>integer</strong>  <br />ID of the user who created the note</td>\n</tr>\n<tr>\n<td><strong>data.created_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was created (ISO 8601 format)</td>\n</tr>\n<tr>\n<td><strong>data.updated_at</strong></td>\n<td><strong>string</strong>  <br />Date and time when the note was last updated (ISO 8601 format)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","transactions","{transactionNumber}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"092cbd70-d21d-4da6-8fee-b8bd2bb080ff","name":"Update Transaction Note","originalRequest":{"method":"PUT","header":[],"url":{"raw":"https://healthsuite.test/v1/transactions/TXN-250815-000538/notes/1?content=updated transaction note","protocol":"https","host":["healthsuite","test"],"path":["v1","transactions","TXN-250815-000538","notes","1"],"query":[{"key":"content","value":"updated transaction note","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:17:37 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"99"},{"key":"X-RateLimit-Reset","value":"59000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note updated successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"transaction note\",\n        \"content\": \"updated transaction note\",\n        \"type\": \"shipping\",\n        \"created_by\": \"2\",\n        \"created_at\": \"2025-09-17T03:16:30.000000Z\",\n        \"updated_at\": \"2025-09-17T03:17:37.000000Z\"\n    }\n}"}],"_postman_id":"2e00e5f7-4bc9-48c9-beda-6b4435e4749f"},{"name":"Delete Transaction Note","id":"91a9d025-b955-484d-932f-1d7a0c647191","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.healthsuite.io/v1/transactions/{transactionNumber}/notes/{noteId}","description":"<h1 id=\"delete-transaction-note\">Delete Transaction Note</h1>\n<p>Delete a specific note for a transaction by note ID.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>Bearer Token from collection Health Suite</p>\n<h2 id=\"request-object\">Request Object</h2>\n<p>No request body parameters. The transaction number and note ID are provided in the URL path.</p>\n<h2 id=\"response-object\">Response Object</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>success</strong></td>\n<td><strong>boolean</strong>  <br />Indicates if the API request was successful</td>\n</tr>\n<tr>\n<td><strong>message</strong></td>\n<td><strong>string</strong>  <br />Success message confirming the note deletion</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","transactions","{transactionNumber}","notes","{noteId}"],"host":["api","healthsuite","io"],"query":[],"variable":[]}},"response":[{"id":"fed8a3a7-8eae-4986-a9ea-c0cb12994b14","name":"Delete Transaction Note","originalRequest":{"method":"DELETE","header":[],"url":"https://healthsuite.test/v1/transactions/TXN-250815-000538/notes/1"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Server","value":"nginx/1.25.2"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.4.12"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 17 Sep 2025 03:17:49 GMT"},{"key":"X-RateLimit-Limit","value":"100"},{"key":"X-RateLimit-Remaining","value":"98"},{"key":"X-RateLimit-Reset","value":"47000"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Note deleted successfully\"\n}"}],"_postman_id":"91a9d025-b955-484d-932f-1d7a0c647191"}],"id":"9e595492-8c20-488c-8eea-31bd8ee62beb","_postman_id":"9e595492-8c20-488c-8eea-31bd8ee62beb","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}}],"id":"b7e29dd7-2cd6-4982-8d79-34de6ee76ee0","_postman_id":"b7e29dd7-2cd6-4982-8d79-34de6ee76ee0","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}}],"id":"9315e073-dcf9-4a75-9200-f6479c8e8e5a","description":"<h1 id=\"health-suite-rest-api\">Health Suite REST API</h1>\n<p>The <strong>REST API</strong> is used to create, read, update, and delete all system resources, so companies can build truly headless e-commerce experiences without having to do all the integrations Health Suite has already done.</p>\n<p>This comprehensive API provides full access to your Health Suite resources including campaigns, products, orders, customers, and more. Designed with flexibility in mind, the REST API enables developers to build custom integrations, dashboards, and automated workflows while leveraging Health Suite's powerful e-commerce infrastructure. The API follows RESTful conventions and returns consistent JSON responses across all endpoints.</p>\n<p><a href=\"https://app.healthsuite.io/register\">Register for a Health Suite account to get started</a></p>\n<h2 id=\"api-authentication\">API Authentication</h2>\n<h3 id=\"getting-your-api-key\">Getting Your API Key</h3>\n<ol>\n<li>Login to your Health Suite Account</li>\n<li>Navigate to Settings &gt; API Keys</li>\n<li>Click \"Generate API Key\"</li>\n<li>Copy your newly generated API key</li>\n<li>Store this key securely - it will only be shown once</li>\n</ol>\n<h3 id=\"using-your-api-key\">Using Your API Key</h3>\n<p>Include your API key in all requests as a Bearer token in the Authorization header:\n<code>Authorization: Bearer YOUR_API_KEY_HERE</code></p>\n<p>All authenticated endpoints require this header to be present with a valid API key.</p>\n<h3 id=\"content-type-and-accept-headers\">Content-Type And Accept Headers</h3>\n<p>This is a JSON API and requires proper headers for all requests:</p>\n<ul>\n<li>All requests must include <code>Content-Type: application/json</code></li>\n<li>All requests must include <code>Accept: application/json</code></li>\n</ul>\n<p>If these headers are not included, the API will return a 400 Bad Request response with an error message indicating which header is missing or incorrect, such as \"Content-Type must be application/json\" or \"Accept must be application/json\".</p>\n<h3 id=\"api-permissions\">API Permissions</h3>\n<p>Different API endpoints require specific permissions. Your API key must have the appropriate permissions assigned to access each endpoint:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Permission</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>api:campaigns.view_any</code></td>\n<td>View all campaigns</td>\n</tr>\n<tr>\n<td><code>api:campaigns.view</code></td>\n<td>View specific campaigns</td>\n</tr>\n<tr>\n<td><code>api:campaigns.products.view</code></td>\n<td>View campaign products (offers and upsells)</td>\n</tr>\n</tbody>\n</table>\n</div><p>If your API key lacks the necessary permissions, you'll receive a 403 Forbidden response with the message \"Unauthorized. Token lacks the necessary permissions.\"</p>\n<h3 id=\"rate-and-usage-limits\">Rate and Usage Limits</h3>\n<p>To ensure system stability and fair usage, API requests are subject to the below rate limiting per account:</p>\n<ul>\n<li>100 requests per minute is default</li>\n<li>Enterprise accounts can be set to custom rate limits (e.g. 1,000 requests per minute and beyond). To increase rate limits please email <a href=\"mailto:hello@healthsuite.io\">hello@healthsuite.io</a>.</li>\n</ul>\n<p>When a rate limit is exceeded, the API will return a 429 Too Many Requests response with the following headers:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>X-RateLimit-Limit</td>\n<td>The maximum number of requests that the consumer is permitted to make per minute. Default to 100 requests per minute. Please contact support if you need a higher quota.</td>\n</tr>\n<tr>\n<td>X-RateLimit-Remaining</td>\n<td>The number of requests remaining in the current rate limit window.</td>\n</tr>\n<tr>\n<td>X-RateLimit-Reset</td>\n<td>The time in milliseconds until the current window resets.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"base-url\">Base URL</h2>\n<p>All REST API requests should be made to:\n<code>https://api.healthsuite.io/v1</code></p>\n<h2 id=\"pagination\">Pagination</h2>\n<p>List endpoints support pagination to help you manage large datasets efficiently:</p>\n<h3 id=\"pagination-parameters\">Pagination Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>per_page</code></td>\n<td>integer</td>\n<td>15</td>\n<td>Number of items per page (max: 15)</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>integer</td>\n<td>1</td>\n<td>Page number to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"pagination-response\">Pagination Response</h3>\n<p>Paginated responses include a <code>pagination</code> object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": [...],\n  \"pagination\": {\n    \"total\": 150,\n    \"per_page\": 15,\n    \"current_page\": 1,\n    \"last_page\": 10,\n    \"from\": 1,\n    \"to\": 15\n  }\n}\n</code></pre>\n<h2 id=\"filtering-and-search\">Filtering and Search</h2>\n<p>Many endpoints support filtering and search capabilities:</p>\n<h3 id=\"common-filter-parameters\">Common Filter Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>is_active</code></td>\n<td>boolean</td>\n<td>Filter by active status</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>string</td>\n<td>Search across relevant text fields</td>\n</tr>\n<tr>\n<td><code>category_id</code></td>\n<td>integer</td>\n<td>Filter by category</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"search-behavior\">Search Behavior</h3>\n<p>Search parameters typically perform partial matches across multiple fields (e.g., name, internal_id) using SQL LIKE operations.</p>\n<h2 id=\"resource-identification\">Resource Identification</h2>\n<p>Resources can be identified using multiple identifiers for flexibility:</p>\n<h3 id=\"campaign-identifiers\">Campaign Identifiers</h3>\n<ul>\n<li><strong>Internal ID</strong>: Numeric identifier (e.g., <code>123</code>)</li>\n<li><strong>UUID</strong>: Universal unique identifier (e.g., <code>550e8400-e29b-41d4-a716-446655440000</code>)</li>\n</ul>\n<p>The API automatically detects the identifier type - numeric values are treated as internal IDs, while non-numeric values are treated as UUIDs.</p>\n<h2 id=\"errors\">Errors</h2>\n<p>Health Suite uses conventional HTTP response codes to indicate the success or failure of an API request. In general:</p>\n<ul>\n<li>Codes in the <code>2xx</code> range indicate success</li>\n<li>Codes in the <code>4xx</code> range indicate an error that failed given the information provided (e.g., a required parameter was omitted, invalid object passed, etc.)</li>\n<li>Codes in the <code>5xx</code> range indicate an error with Health Suite's servers (these are rare)</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>HTTP STATUS CODE</th>\n<th>SUMMARY</th>\n<th>DESCRIPTION</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>OK</td>\n<td>Everything worked as expected.</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Created</td>\n<td>Resource was successfully created.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad Request</td>\n<td>The request was unacceptable, often due to missing a required parameter.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>No valid API key provided.</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>The API key doesn't have permissions to perform the request.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>The requested resource doesn't exist.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>The request was well-formed but was unable to be followed due to validation errors.</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Too Many Requests</td>\n<td>Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.</td>\n</tr>\n<tr>\n<td>500, 502, 503, 504</td>\n<td>Server Errors</td>\n<td>Something went wrong on Health Suite's end. (These are rare.)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-error-response\">Example Error Response</h3>\n<p>All <code>4xx</code> and <code>5xx</code> errors return an error message via the \"errors\" field.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"message\": \"Validation error\",\n  \"errors\": {\n    \"identifier\": [\n      \"The identifier field is required.\"\n    ],\n    \"per_page\": [\n      \"The per page field must be between 1 and 15.\"\n    ]\n  }\n}\n</code></pre>\n<h3 id=\"null-values\">Null Values</h3>\n<p>If there is no data for a response field, the API will use <code>null</code> for that field's value.</p>\n<h2 id=\"response-format\">Response Format</h2>\n<p>All API responses follow a consistent format:</p>\n<h3 id=\"success-response-structure\">Success Response Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {...},\n  \"pagination\": {...} // Only present for paginated responses\n}\n</code></pre>\n<h3 id=\"error-response-structure\">Error Response Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"errors\": {...}, // Validation errors (when applicable)\n  \"error\": \"Technical error message\" // Server errors (when applicable)\n}\n</code></pre>\n<h2 id=\"data-types-and-formats\">Data Types and Formats</h2>\n<h3 id=\"common-data-types\">Common Data Types</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Type</th>\n<th>Format</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Boolean</td>\n<td><code>true</code>/<code>false</code></td>\n<td><code>true</code></td>\n</tr>\n<tr>\n<td>Integer</td>\n<td>Whole numbers</td>\n<td><code>123</code></td>\n</tr>\n<tr>\n<td>String</td>\n<td>Text values</td>\n<td><code>\"Campaign Name\"</code></td>\n</tr>\n<tr>\n<td>Array</td>\n<td>List of values</td>\n<td><code>[\"USD\", \"EUR\", \"GBP\"]</code></td>\n</tr>\n<tr>\n<td>Object</td>\n<td>Nested data</td>\n<td><code>{\"id\": 1, \"name\": \"Category\"}</code></td>\n</tr>\n<tr>\n<td>Timestamp</td>\n<td>ISO 8601 format</td>\n<td><code>\"2024-01-15T10:30:00.000Z\"</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"currency-and-amounts\">Currency and Amounts</h3>\n<ul>\n<li>All monetary amounts are represented as integers in the smallest currency unit (e.g., cents for USD)</li>\n<li>Example: $19.99 USD is represented as <code>1999</code></li>\n</ul>\n<h3 id=\"country-and-currency-codes\">Country and Currency Codes</h3>\n<ul>\n<li>Country codes follow ISO 3166-1 alpha-2 format (e.g., <code>\"US\"</code>, <code>\"CA\"</code>, <code>\"GB\"</code>)</li>\n<li>Currency codes follow ISO 4217 format (e.g., <code>\"USD\"</code>, <code>\"EUR\"</code>, <code>\"GBP\"</code>)</li>\n</ul>\n<h2 id=\"team-isolation\">Team Isolation</h2>\n<p>All API requests are automatically scoped to your team/account. You can only access resources that belong to your team, ensuring complete data isolation and security.</p>\n","_postman_id":"9315e073-dcf9-4a75-9200-f6479c8e8e5a","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}},{"name":"Enrichment","item":[{"name":"Email Validation","id":"e6f1c632-bd9e-4983-804d-ffef2bc21b5d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","description":"<h1 id=\"email-validation-response\">Email Validation Response</h1>\n<p>When email validation is enabled, the following structure is returned in the enrichment.email object:</p>\n<h2 id=\"response-fields\">Response Fields</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_valid</td>\n<td>boolean</td>\n<td>Whether the email address is valid and deliverable</td>\n</tr>\n<tr>\n<td>action_required</td>\n<td>string</td>\n<td>Required action to resolve issues. Values: email_update, email_confirmation, none</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Human-readable validation result message</td>\n</tr>\n<tr>\n<td>low_deliverability</td>\n<td>boolean</td>\n<td>Indicates if the email has known deliverability issues</td>\n</tr>\n<tr>\n<td>deliverability_score</td>\n<td>number</td>\n<td>Score from 0-1, where 1 indicates highest deliverability</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"common-validation-messages\">Common Validation Messages</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Action Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Email address is valid and deliverable</td>\n<td>none</td>\n<td>Email passed validation</td>\n</tr>\n<tr>\n<td>Email address is invalid</td>\n<td>email_update</td>\n<td>Email failed validation</td>\n</tr>\n<tr>\n<td>Domain accepts all email addresses</td>\n<td>email_confirmation</td>\n<td>Catch-all domain detected</td>\n</tr>\n<tr>\n<td>Unable to verify email address</td>\n<td>email_confirmation</td>\n<td>Validation inconclusive</td>\n</tr>\n<tr>\n<td>Email address is a spam trap</td>\n<td>email_update</td>\n<td>Known spam trap detected</td>\n</tr>\n<tr>\n<td>Email address is for abuse complaints</td>\n<td>email_confirmation</td>\n<td>Abuse/role email detected</td>\n</tr>\n<tr>\n<td>Email address is on suppression list</td>\n<td>email_update</td>\n<td>Email on bounce/complaint list</td>\n</tr>\n<tr>\n<td>Disposable email detected</td>\n<td>email_update</td>\n<td>Temporary email service</td>\n</tr>\n<tr>\n<td>Role-based email detected</td>\n<td>email_confirmation</td>\n<td>Generic email like info@, support@</td>\n</tr>\n<tr>\n<td>Low deliverability score</td>\n<td>email_confirmation</td>\n<td>Poor deliverability metrics</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"deliverability-score-ranges\">Deliverability Score Ranges</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Score Range</th>\n<th>Meaning</th>\n<th>Recommended Action</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>0.8 - 1.0</td>\n<td>Excellent</td>\n<td>Process normally</td>\n</tr>\n<tr>\n<td>0.5 - 0.79</td>\n<td>Good</td>\n<td>Process with caution</td>\n</tr>\n<tr>\n<td>0.25 - 0.49</td>\n<td>Poor</td>\n<td>Request confirmation</td>\n</tr>\n<tr>\n<td>0 - 0.24</td>\n<td>Very Poor</td>\n<td>Require new email</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"query":[],"variable":[]}},"response":[{"id":"ad0ea7a9-e9bf-4cbb-b4c4-bb8a746bb52f","name":"Email Validation Response","originalRequest":{"method":"GET","header":[],"url":""},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:21:35 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9239fa083e7c72eb-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"\"email\": {\n    \"is_valid\": false,\n    \"action_required\": \"email_update\",\n    \"message\": \"Email address is on suppression list (global suppression)\",\n    \"low_deliverability\": true,\n    \"deliverability_score\": 0\n}"}],"_postman_id":"e6f1c632-bd9e-4983-804d-ffef2bc21b5d"},{"name":"Phone Validation","id":"778fe382-4da1-4148-b83c-08e7384fbf2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","description":"<h1 id=\"phone-validation-response\">Phone Validation Response</h1>\n<p>When phone validation is enabled, the following structure is returned in the enrichment.phone object:</p>\n<h2 id=\"response-fields\">Response Fields</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_valid</td>\n<td>boolean</td>\n<td>Whether the phone number is valid and callable</td>\n</tr>\n<tr>\n<td>action_required</td>\n<td>string</td>\n<td>Required action to resolve issues. Values: phone_update, phone_confirmation, none</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Validation result message</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"common-messages\">Common Messages</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Action Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Phone number validated successfully</td>\n<td>none</td>\n<td>Valid phone number</td>\n</tr>\n<tr>\n<td>Phone validation failed: INVALID</td>\n<td>phone_update</td>\n<td>Invalid phone number</td>\n</tr>\n<tr>\n<td>Phone validation failed: INVALID_BUT_POSSIBLE</td>\n<td>phone_confirmation</td>\n<td>Format could be valid</td>\n</tr>\n<tr>\n<td>Phone number not found</td>\n<td>phone_update</td>\n<td>Number doesn't exist</td>\n</tr>\n<tr>\n<td>No phone number provided</td>\n<td>phone_update</td>\n<td>Missing phone field</td>\n</tr>\n<tr>\n<td>VOIP phone detected</td>\n<td>phone_confirmation</td>\n<td>Voice over IP number</td>\n</tr>\n<tr>\n<td>Prepaid phone detected</td>\n<td>phone_confirmation</td>\n<td>Prepaid service detected</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"query":[],"variable":[]}},"response":[{"id":"72171669-8179-4f8a-a31b-5fc73c6ca298","name":"Phone Validation Response","originalRequest":{"method":"GET","header":[],"url":""},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:21:35 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9239fa083e7c72eb-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"\"phone\": {\n    \"is_valid\": false,\n    \"action_required\": \"phone_update\",\n    \"message\": \"Phone validation failed: INVALID_BUT_POSSIBLE\"\n}"}],"_postman_id":"778fe382-4da1-4148-b83c-08e7384fbf2d"},{"name":"Address Verification","id":"731ebcb7-b98f-4eb4-a977-5a5cd17afe57","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","description":"<h1 id=\"address-verification-response\">Address Verification Response</h1>\n<p>When address verification is enabled, the following structure is returned in the enrichment.address object:</p>\n<h2 id=\"response-fields\">Response Fields</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>standardized</td>\n<td>object</td>\n<td>Standardized version of the address</td>\n</tr>\n<tr>\n<td>standardized.street_1</td>\n<td>string</td>\n<td>Standardized primary address line</td>\n</tr>\n<tr>\n<td>standardized.street_2</td>\n<td>string</td>\n<td>Standardized secondary address line</td>\n</tr>\n<tr>\n<td>standardized.city</td>\n<td>string</td>\n<td>Standardized city name</td>\n</tr>\n<tr>\n<td>standardized.state</td>\n<td>string</td>\n<td>Standardized state abbreviation</td>\n</tr>\n<tr>\n<td>standardized.postal_code</td>\n<td>string</td>\n<td>5-digit ZIP code</td>\n</tr>\n<tr>\n<td>standardized.plus4</td>\n<td>string</td>\n<td>ZIP+4 extension for precise delivery</td>\n</tr>\n<tr>\n<td>action_available</td>\n<td>string</td>\n<td>Optional improvement available. Values: address_standardization, none</td>\n</tr>\n<tr>\n<td>action_required</td>\n<td>string</td>\n<td>Required action. Values: apartment_number, address_update, none</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Human-readable verification result</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"common-messages\">Common Messages</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Message</th>\n<th>Action</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Address validated successfully</td>\n<td>none</td>\n<td>Address verified and deliverable</td>\n</tr>\n<tr>\n<td>Address validation failed</td>\n<td>address_update</td>\n<td>Could not verify address</td>\n</tr>\n<tr>\n<td>Address not found</td>\n<td>address_update</td>\n<td>Street address doesn't exist</td>\n</tr>\n<tr>\n<td>Apartment or suite number may be missing</td>\n<td>apartment_number</td>\n<td>Secondary address needed</td>\n</tr>\n<tr>\n<td>Invalid address</td>\n<td>address_update</td>\n<td>Address failed validation</td>\n</tr>\n<tr>\n<td>Address not deliverable</td>\n<td>address_update</td>\n<td>Valid but undeliverable</td>\n</tr>\n<tr>\n<td>Vacant address detected</td>\n<td>address_confirmation</td>\n<td>Address is vacant</td>\n</tr>\n<tr>\n<td>Reship center detected</td>\n<td>address_confirmation</td>\n<td>Package forwarding service</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}},"urlObject":{"query":[],"variable":[]}},"response":[{"id":"731a0088-a34e-4723-86e1-681976ebaf60","name":"Address Verification Response","originalRequest":{"method":"GET","header":[],"url":""},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Mar 2025 02:21:35 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Xss-Protection","value":"1; mode=block"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9239fa083e7c72eb-ORD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"\"address\": {\n    \"standardized\": {\n        \"street_1\": \"123 S Main St Apt 4B\",\n        \"street_2\": \"\",\n        \"city\": \"Los Angeles\",\n        \"state\": \"CA\",\n        \"postal_code\": \"90012\",\n        \"plus4\": \"3701\"\n    },\n    \"action_available\": \"address_standardization\",\n    \"action_required\": \"apartment_number\",\n    \"message\": \"Apartment or suite number may be missing\"\n}"}],"_postman_id":"731ebcb7-b98f-4eb4-a977-5a5cd17afe57"}],"id":"02a506d2-1136-4216-909c-0c8af785cbc0","description":"<h1 id=\"data-enrichment--validation\">Data Enrichment &amp; Validation</h1>\n<p>Health Suite's enrichment services provide real-time validation and standardization for customer data during checkout. When enabled, these services automatically validate email addresses, phone numbers, and shipping addresses to reduce fraud, improve deliverability, and ensure accurate fulfillment.</p>\n<h2 id=\"service-activation\">Service Activation</h2>\n<p>To use enrichment services:</p>\n<ol>\n<li>Login to your Health Suite Account</li>\n<li>Navigate to Billing &gt; Manage Services</li>\n<li>Enable the desired services:<ul>\n<li>Email Validation</li>\n<li>Phone Validation</li>\n<li>Address Verification</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"how-it-works\">How It Works</h2>\n<p>When enrichment services are enabled:</p>\n<ul>\n<li><strong>Automatic Enrichment</strong>: Data validation occurs automatically during order creation and payment processing</li>\n<li><strong>Selective Response</strong>: Only enabled services appear in the <code>enrichment</code> response object</li>\n<li><strong>Action Guidance</strong>: Each service provides specific action recommendations when issues are detected</li>\n</ul>\n<h2 id=\"affected-endpoints\">Affected Endpoints</h2>\n<p>Enrichment data is automatically included in responses from:</p>\n<ul>\n<li><code>POST /checkout/orders</code> - Create Order</li>\n<li><code>POST /checkout/orders/payment</code> - Process Payment</li>\n<li><code>POST /checkout/leads</code> - Create Lead (when <code>enrich=true</code> parameter is included)</li>\n<li><code>GET /checkout/orders</code> - Search Orders (for orders processed with enrichment enabled)</li>\n</ul>\n<h2 id=\"pricing\">Pricing</h2>\n<p>Each enrichment service is billed per validation. Contact <a href=\"mailto:support@healthsuite.io\">support@healthsuite.io</a> for pricing details.</p>\n","_postman_id":"02a506d2-1136-4216-909c-0c8af785cbc0","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"19891c09-8068-478a-9933-9452ba0ca218","id":"19891c09-8068-478a-9933-9452ba0ca218","name":"Health Suite","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"2f717493-091a-4ca0-82b6-a2db10fe698d"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"a0ae985f-f52e-4995-883a-371cdc55827c"}}],"variable":[{"key":"api_token","value":"","type":"string"}]}