{"info":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","description":"<html><head></head><body><h1 id=\"stablix-api-documentation\">Stablix API Documentation</h1>\n<p><strong>Non-custodial crypto payment platform for USDC/USDT on Solana and Base</strong></p>\n<hr>\n<h2 id=\"overview\">Overview</h2>\n<p>Stablix provides secure, escrow-based payment infrastructure for online businesses. When a customer pays, funds are held in a smart contract escrow until the merchant releases them or the buffer period expires.</p>\n<h2 id=\"base-url\">Base URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Production: https://api.stablix.xyz/api/v1\n\n</code></pre><h2 id=\"key-features\">Key Features</h2>\n<ul>\n<li><p>✅ Accept USDC/USDT on Solana and Base</p>\n</li>\n<li><p>✅ Non-custodial escrow protection</p>\n</li>\n<li><p>✅ Recurring subscriptions with token approvals</p>\n</li>\n<li><p>✅ Built-in dispute resolution</p>\n</li>\n<li><p>✅ Real-time webhooks</p>\n</li>\n<li><p>✅ Tiered volume limits with KYC</p>\n</li>\n</ul>\n<h2 id=\"supported-chains--tokens\">Supported Chains &amp; Tokens</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Chain</th>\n<th>Tokens</th>\n<th>Settlement Time</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Solana</td>\n<td>USDC, USDT</td>\n<td>~400ms</td>\n</tr>\n<tr>\n<td>Base</td>\n<td>USDC, USDT</td>\n<td>~2 seconds</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"fees\">Fees</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Fee Type</th>\n<th>Amount</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Standard payment</td>\n<td>0.5%</td>\n</tr>\n<tr>\n<td>Dispute resolution</td>\n<td>+1.0%</td>\n</tr>\n<tr>\n<td>Extended escrow (&gt;7 days)</td>\n<td>+0.15% per week</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"quick-start\">Quick Start</h2>\n<ol>\n<li><p>Get your API key from the Stablix dashboard</p>\n</li>\n<li><p>Set up your environment variables</p>\n</li>\n<li><p>Create your first invoice</p>\n</li>\n<li><p>Set up webhooks to receive payment notifications</p>\n</li>\n</ol>\n<h2 id=\"need-help\">Need Help?</h2>\n<ul>\n<li><p>Email: <a href=\"https://mailto:support@stablix.xyz\">support@stablix.xyz</a></p>\n</li>\n<li><p>Discord: discord.gg/stablix</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Stablix API Documentation","slug":"stablix-api-documentation"}],"owner":"13587945","collectionId":"834a5bf6-746a-494b-9390-7470ba320d12","publishedId":"2sBXc7MQvR","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-02-04T16:42:09.000Z"},"item":[{"name":"📚 Getting Started","item":[{"name":"About Authentication","id":"a209a6ce-adce-4b82-a677-545afbf34102","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz","description":"<h1 id=\"authentication\">Authentication</h1>\n<p>All API requests require authentication using an API key.</p>\n<h2 id=\"api-key-header\">API Key Header</h2>\n<p>Include your API key in the <code>x-api-key</code> header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>x-api-key: sk_live_xxxxxxxxxxxxxxxxxxxx\n</code></pre><h2 id=\"api-key-types\">API Key Types</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Type</th>\n<th>Prefix</th>\n<th>Usage</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Live</td>\n<td><code>sk_live_</code></td>\n<td>Production transactions</td>\n</tr>\n<tr>\n<td>Test</td>\n<td><code>sk_test_</code></td>\n<td>Testing without real payments</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"permissions\">Permissions</h2>\n<p>When creating an API key, you can specify permissions:</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>invoices:read</code></td>\n<td>View invoices</td>\n</tr>\n<tr>\n<td><code>invoices:write</code></td>\n<td>Create/modify invoices</td>\n</tr>\n<tr>\n<td><code>subscriptions:read</code></td>\n<td>View subscriptions and plans</td>\n</tr>\n<tr>\n<td><code>subscriptions:write</code></td>\n<td>Create/modify subscriptions</td>\n</tr>\n<tr>\n<td><code>webhooks:read</code></td>\n<td>View webhook configurations</td>\n</tr>\n<tr>\n<td><code>webhooks:write</code></td>\n<td>Create/modify webhooks</td>\n</tr>\n<tr>\n<td><code>disputes:read</code></td>\n<td>View disputes</td>\n</tr>\n<tr>\n<td><code>disputes:write</code></td>\n<td>Respond to disputes</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"rate-limits\">Rate Limits</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Tier</th>\n<th>Requests/Minute</th>\n<th>Requests/Day</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Starter</td>\n<td>60</td>\n<td>10,000</td>\n</tr>\n<tr>\n<td>Verified</td>\n<td>120</td>\n<td>50,000</td>\n</tr>\n<tr>\n<td>Business</td>\n<td>300</td>\n<td>Unlimited</td>\n</tr>\n</tbody>\n</table>\n</div><p>Rate limit headers are included in every response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-RateLimit-Limit: 60\nX-RateLimit-Remaining: 58\nX-RateLimit-Reset: 1640000000\n</code></pre><h2 id=\"idempotency\">Idempotency</h2>\n<p>For POST requests, include <code>x-idempotency-key</code> header to prevent duplicate operations:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>x-idempotency-key: unique-request-id-12345\n</code></pre><p>Idempotency keys are valid for 24 hours.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"protocol":"https","host":["api","stablix","xyz"],"query":[],"variable":[]}},"response":[],"_postman_id":"a209a6ce-adce-4b82-a677-545afbf34102"},{"name":"About Webhooks","id":"25cfeff6-0cef-44c6-8847-b1e233618f78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz","description":"<h1 id=\"webhooks\">Webhooks</h1>\n<p>Webhooks notify your application when events occur in Stablix.</p>\n<h2 id=\"webhook-payload\">Webhook Payload</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"evt_xxxxxxxxxxxxx\",\n  \"type\": \"invoice.paid\",\n  \"created_at\": \"2025-02-04T00:00:00Z\",\n  \"data\": {\n    \"invoice_id\": \"inv_xxxxxxxxxxxxx\",\n    \"amount\": 100.00,\n    \"status\": \"paid\"\n  }\n}\n</code></pre>\n<h2 id=\"verifying-signatures\">Verifying Signatures</h2>\n<p>All webhooks are signed using HMAC-SHA256. Verify using:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const crypto = require('crypto');\n\nfunction verifyWebhook(payload, signature, timestamp, secret) {\n  const signedPayload = `${timestamp}.${JSON.stringify(payload)}`;\n  const expectedSignature = crypto\n    .createHmac('sha256', secret)\n    .update(signedPayload)\n    .digest('hex');\n  \n  return crypto.timingSafeEqual(\n    Buffer.from(signature),\n    Buffer.from(expectedSignature)\n  );\n}\n</code></pre>\n<h2 id=\"event-types\">Event Types</h2>\n<h3 id=\"invoice-events\">Invoice Events</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Event</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>invoice.created</code></td>\n<td>Invoice created</td>\n</tr>\n<tr>\n<td><code>invoice.paid</code></td>\n<td>Payment received</td>\n</tr>\n<tr>\n<td><code>invoice.released</code></td>\n<td>Funds released to merchant</td>\n</tr>\n<tr>\n<td><code>invoice.refunded</code></td>\n<td>Invoice refunded</td>\n</tr>\n<tr>\n<td><code>invoice.expired</code></td>\n<td>Invoice expired</td>\n</tr>\n<tr>\n<td><code>invoice.disputed</code></td>\n<td>Dispute opened</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"subscription-events\">Subscription Events</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Event</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>subscription.created</code></td>\n<td>Subscription created</td>\n</tr>\n<tr>\n<td><code>subscription.confirmed</code></td>\n<td>Subscription confirmed</td>\n</tr>\n<tr>\n<td><code>subscription.charged</code></td>\n<td>Recurring charge successful</td>\n</tr>\n<tr>\n<td><code>subscription.charge_failed</code></td>\n<td>Charge failed</td>\n</tr>\n<tr>\n<td><code>subscription.cancelled</code></td>\n<td>Subscription cancelled</td>\n</tr>\n<tr>\n<td><code>subscription.paused</code></td>\n<td>Subscription paused</td>\n</tr>\n<tr>\n<td><code>subscription.resumed</code></td>\n<td>Subscription resumed</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"dispute-events\">Dispute Events</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Event</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>dispute.created</code></td>\n<td>Dispute opened</td>\n</tr>\n<tr>\n<td><code>dispute.updated</code></td>\n<td>Dispute status changed</td>\n</tr>\n<tr>\n<td><code>dispute.resolved</code></td>\n<td>Dispute resolved</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"retry-policy\">Retry Policy</h2>\n<p>If your endpoint returns non-2xx, Stablix retries:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attempt</th>\n<th>Delay</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Immediate</td>\n</tr>\n<tr>\n<td>2</td>\n<td>1 minute</td>\n</tr>\n<tr>\n<td>3</td>\n<td>5 minutes</td>\n</tr>\n<tr>\n<td>4</td>\n<td>30 minutes</td>\n</tr>\n<tr>\n<td>5</td>\n<td>2 hours</td>\n</tr>\n<tr>\n<td>6</td>\n<td>24 hours</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"protocol":"https","host":["api","stablix","xyz"],"query":[],"variable":[]}},"response":[],"_postman_id":"25cfeff6-0cef-44c6-8847-b1e233618f78"},{"name":"About Errors","id":"77db9dbf-ec78-45a3-92d0-f3817d8a3974","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz","description":"<h1 id=\"error-handling\">Error Handling</h1>\n<p>Stablix uses conventional HTTP response codes.</p>\n<h2 id=\"http-status-codes\">HTTP Status Codes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200</code></td>\n<td>Success</td>\n</tr>\n<tr>\n<td><code>201</code></td>\n<td>Created</td>\n</tr>\n<tr>\n<td><code>400</code></td>\n<td>Bad Request - Invalid parameters</td>\n</tr>\n<tr>\n<td><code>401</code></td>\n<td>Unauthorized - Invalid or missing API key</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Forbidden - Insufficient permissions</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>Not Found - Resource doesn't exist</td>\n</tr>\n<tr>\n<td><code>409</code></td>\n<td>Conflict - Resource already exists</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Unprocessable Entity - Validation failed</td>\n</tr>\n<tr>\n<td><code>429</code></td>\n<td>Too Many Requests - Rate limit exceeded</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Internal Server Error</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"error-response-format\">Error Response Format</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"INVALID_AMOUNT\",\n    \"message\": \"Amount must be greater than 0\",\n    \"details\": {\n      \"field\": \"amount\",\n      \"value\": -10\n    }\n  }\n}\n</code></pre>\n<h2 id=\"common-error-codes\">Common Error Codes</h2>\n<h3 id=\"authentication-errors\">Authentication Errors</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>INVALID_API_KEY</code></td>\n<td>API key is invalid or revoked</td>\n</tr>\n<tr>\n<td><code>MISSING_API_KEY</code></td>\n<td>No API key provided</td>\n</tr>\n<tr>\n<td><code>RATE_LIMIT_EXCEEDED</code></td>\n<td>Too many requests</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"validation-errors\">Validation Errors</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>INVALID_AMOUNT</code></td>\n<td>Amount is invalid</td>\n</tr>\n<tr>\n<td><code>INVALID_CURRENCY</code></td>\n<td>Currency not supported</td>\n</tr>\n<tr>\n<td><code>INVALID_CHAIN</code></td>\n<td>Chain not supported</td>\n</tr>\n<tr>\n<td><code>MISSING_REQUIRED_FIELD</code></td>\n<td>Required field missing</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"state-errors\">State Errors</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>INVOICE_ALREADY_PAID</code></td>\n<td>Invoice already paid</td>\n</tr>\n<tr>\n<td><code>INVOICE_EXPIRED</code></td>\n<td>Invoice has expired</td>\n</tr>\n<tr>\n<td><code>CANNOT_REFUND</code></td>\n<td>Refund not allowed (buffer expired)</td>\n</tr>\n<tr>\n<td><code>INSUFFICIENT_ALLOWANCE</code></td>\n<td>Token allowance too low</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"protocol":"https","host":["api","stablix","xyz"],"query":[],"variable":[]}},"response":[],"_postman_id":"77db9dbf-ec78-45a3-92d0-f3817d8a3974"}],"id":"93bc436d-fb41-445f-bf44-cae6e8f820d3","description":"<p>Documentation and guides for using the Stablix API. These requests are for reference only - they demonstrate concepts rather than functional endpoints.</p>\n","_postman_id":"93bc436d-fb41-445f-bf44-cae6e8f820d3","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}}},{"name":"Invoices","item":[{"name":"Create Invoice","id":"c7faafbb-a871-45a2-bcfe-7e9f1b7af75c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-idempotency-key","value":"cc8a3d15-a423-4724-9595-5a06fe2a2286","description":"<p>Unique key to prevent duplicate invoices. Use order ID or UUID.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 100.00,\n    \"currencies\": [\"USDC\", \"USDT\"],\n    \"chains\": [\"solana\", \"base\"],\n    \"description\": \"Order #12345\",\n    \"customer_email\": \"customer@example.com\",\n    \"metadata\": {\n        \"order_id\": \"12345\",\n        \"product\": \"Premium Plan\"\n    },\n    \"buffer_hours\": 24,\n    \"expires_in\": 3600\n}"},"url":"https://api.stablix.xyz/api/v1/invoices","description":"<h1 id=\"create-invoice\">Create Invoice</h1>\n<p>Create a new payment invoice. Returns a payment URL and addresses where customers can send funds.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>amount</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Payment amount in USD</td>\n</tr>\n<tr>\n<td><code>currencies</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Accepted currencies: <code>[\"USDC\"]</code>, <code>[\"USDT\"]</code>, or <code>[\"USDC\", \"USDT\"]</code></td>\n</tr>\n<tr>\n<td><code>chains</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Accepted chains: <code>[\"solana\"]</code>, <code>[\"base\"]</code>, or <code>[\"solana\", \"base\"]</code></td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td></td>\n<td>Invoice description (shown to customer)</td>\n</tr>\n<tr>\n<td><code>customer_email</code></td>\n<td>string</td>\n<td></td>\n<td>Customer email for receipts</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>object</td>\n<td></td>\n<td>Custom key-value data (max 10 keys)</td>\n</tr>\n<tr>\n<td><code>buffer_hours</code></td>\n<td>number</td>\n<td></td>\n<td>Escrow hold period (default: 24, max: 168)</td>\n</tr>\n<tr>\n<td><code>expires_in</code></td>\n<td>number</td>\n<td></td>\n<td>Seconds until invoice expires (default: 3600)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"invoice_id\": \"inv_Y7xLCd5BPfPs1023hBMJ7\",\n    \"amount\": 100.00,\n    \"status\": \"pending\",\n    \"payment_url\": \"https://pay.stablix.xyz/inv_Y7xLCd5BPfPs1023hBMJ7\",\n    \"payment_address\": {\n      \"solana\": \"7wcwUMtrb5JXqpLyi4U5j6zjtMZvUFyuhwP8oso3LJLT\",\n      \"base\": \"0x659CE0FC2499E1Fa14d30F5CD88aD058ba490e39\"\n    },\n    \"expires_at\": \"2025-02-04T01:00:00Z\"\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["invoices"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8fabdec5-5e83-497d-a0f7-6bc32e4473fa","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"amount\": 100.00,\n    \"currencies\": [\"USDC\"],\n    \"chains\": [\"solana\"],\n    \"description\": \"Order #12345\"\n}"},"url":"https://api.stablix.xyz/api/v1/invoices"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"data\": {\n    \"invoice_id\": \"inv_Y7xLCd5BPfPs1023hBMJ7\",\n    \"amount\": 100.00,\n    \"status\": \"pending\",\n    \"payment_url\": \"https://pay.stablix.xyz/inv_Y7xLCd5BPfPs1023hBMJ7\",\n    \"payment_address\": {\n      \"solana\": \"7wcwUMtrb5JXqpLyi4U5j6zjtMZvUFyuhwP8oso3LJLT\"\n    },\n    \"expires_at\": \"2025-02-04T01:00:00Z\"\n  }\n}"}],"_postman_id":"c7faafbb-a871-45a2-bcfe-7e9f1b7af75c"},{"name":"Get Invoice","id":"1472bc41-8771-4552-b281-75ec8d431dc5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/invoices/:invoiceId","description":"<h1 id=\"get-invoice\">Get Invoice</h1>\n<p>Retrieve details of a specific invoice.</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>invoiceId</code></td>\n<td>The invoice ID (e.g., <code>inv_Y7xLCd5BPfPs1023hBMJ7</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"invoice_id\": \"inv_Y7xLCd5BPfPs1023hBMJ7\",\n    \"amount\": 100.00,\n    \"status\": \"paid\",\n    \"paid_at\": \"2025-02-04T00:30:00Z\",\n    \"paid_chain\": \"solana\",\n    \"paid_currency\": \"USDC\",\n    \"tx_hash\": \"5xyz...\",\n    \"escrow_status\": \"funded\",\n    \"release_at\": \"2025-02-05T00:30:00Z\"\n  }\n}\n</code></pre>\n<h2 id=\"invoice-statuses\">Invoice Statuses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pending</code></td>\n<td>Awaiting payment</td>\n</tr>\n<tr>\n<td><code>paid</code></td>\n<td>Payment received, funds in escrow</td>\n</tr>\n<tr>\n<td><code>released</code></td>\n<td>Funds released to merchant</td>\n</tr>\n<tr>\n<td><code>refunded</code></td>\n<td>Funds returned to customer</td>\n</tr>\n<tr>\n<td><code>disputed</code></td>\n<td>Payment under dispute</td>\n</tr>\n<tr>\n<td><code>expired</code></td>\n<td>Invoice expired without payment</td>\n</tr>\n<tr>\n<td><code>cancelled</code></td>\n<td>Invoice cancelled by merchant</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["invoices",":invoiceId"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"0e603621-75ef-407b-b6d8-0318079083bd","description":{"content":"<p>The invoice ID (starts with inv_)</p>\n","type":"text/plain"},"type":"any","value":"inv_Y7xLCd5BPfPs1023hBMJ7","key":"invoiceId"}]}},"response":[{"id":"0924bb78-d3c9-4299-92f7-1e20ba2226e0","name":"Paid Invoice","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.stablix.xyz/api/v1/invoices/:invoiceId","host":["https://api.stablix.xyz/api/v1"],"path":["invoices",":invoiceId"],"variable":[{"id":"0e603621-75ef-407b-b6d8-0318079083bd","key":"invoiceId","value":"inv_Y7xLCd5BPfPs1023hBMJ7","description":"The invoice ID (starts with inv_)"}]},"description":"# Get Invoice\n\nRetrieve details of a specific invoice.\n\n## Path Parameters\n\n| Parameter | Description |\n|-----------|-------------|\n| `invoiceId` | The invoice ID (e.g., `inv_Y7xLCd5BPfPs1023hBMJ7`) |\n\n## Response\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"invoice_id\": \"inv_Y7xLCd5BPfPs1023hBMJ7\",\n    \"amount\": 100.00,\n    \"status\": \"paid\",\n    \"paid_at\": \"2025-02-04T00:30:00Z\",\n    \"paid_chain\": \"solana\",\n    \"paid_currency\": \"USDC\",\n    \"tx_hash\": \"5xyz...\",\n    \"escrow_status\": \"funded\",\n    \"release_at\": \"2025-02-05T00:30:00Z\"\n  }\n}\n```\n\n## Invoice Statuses\n\n| Status | Description |\n|--------|-------------|\n| `pending` | Awaiting payment |\n| `paid` | Payment received, funds in escrow |\n| `released` | Funds released to merchant |\n| `refunded` | Funds returned to customer |\n| `disputed` | Payment under dispute |\n| `expired` | Invoice expired without payment |\n| `cancelled` | Invoice cancelled by merchant |"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"data\": {\n    \"invoice_id\": \"inv_Y7xLCd5BPfPs1023hBMJ7\",\n    \"amount\": 100.00,\n    \"status\": \"paid\",\n    \"paid_at\": \"2025-02-04T00:30:00Z\",\n    \"paid_chain\": \"solana\",\n    \"paid_currency\": \"USDC\",\n    \"tx_hash\": \"5xyz123abc...\",\n    \"escrow_status\": \"funded\",\n    \"release_at\": \"2025-02-05T00:30:00Z\"\n  }\n}"}],"_postman_id":"1472bc41-8771-4552-b281-75ec8d431dc5"},{"name":"List Invoices","id":"3f031ce1-76e5-4bef-ae65-8c183b672124","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/invoices?status=paid&limit=20&offset=0","description":"<h1 id=\"list-invoices\">List Invoices</h1>\n<p>Retrieve a paginated list of invoices.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>-</td>\n<td>Filter by status</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>number</td>\n<td>20</td>\n<td>Results per page (max: 100)</td>\n</tr>\n<tr>\n<td><code>offset</code></td>\n<td>number</td>\n<td>0</td>\n<td>Pagination offset</td>\n</tr>\n<tr>\n<td><code>from</code></td>\n<td>string</td>\n<td>-</td>\n<td>Start date (ISO 8601)</td>\n</tr>\n<tr>\n<td><code>to</code></td>\n<td>string</td>\n<td>-</td>\n<td>End date (ISO 8601)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"invoices\": [...],\n    \"pagination\": {\n      \"total\": 150,\n      \"limit\": 20,\n      \"offset\": 0,\n      \"has_more\": true\n    }\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["invoices"],"host":["https://api.stablix.xyz/api/v1"],"query":[{"description":{"content":"<p>Filter by status: pending, paid, expired, refunded, disputed, cancelled</p>\n","type":"text/plain"},"key":"status","value":"paid"},{"description":{"content":"<p>Results per page (max: 100)</p>\n","type":"text/plain"},"key":"limit","value":"20"},{"description":{"content":"<p>Pagination offset</p>\n","type":"text/plain"},"key":"offset","value":"0"},{"disabled":true,"description":{"content":"<p>Start date (ISO 8601)</p>\n","type":"text/plain"},"key":"from","value":"2025-01-01T00:00:00Z"},{"disabled":true,"description":{"content":"<p>End date (ISO 8601)</p>\n","type":"text/plain"},"key":"to","value":"2025-12-31T23:59:59Z"}],"variable":[]}},"response":[],"_postman_id":"3f031ce1-76e5-4bef-ae65-8c183b672124"},{"name":"Cancel Invoice","id":"9cab1747-516e-4c92-8863-f6570447e63e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.stablix.xyz/api/v1/invoices/:invoiceId/cancel","description":"<h1 id=\"cancel-invoice\">Cancel Invoice</h1>\n<p>Cancel a pending invoice. Only invoices with <code>status: pending</code> can be cancelled.</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>invoiceId</code></td>\n<td>The invoice ID to cancel</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"invoice_id\": \"inv_xxxxxxxxxxxxx\",\n    \"status\": \"cancelled\",\n    \"cancelled_at\": \"2025-02-04T00:45:00Z\"\n  }\n}\n</code></pre>\n<h2 id=\"errors\">Errors</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>INVOICE_NOT_FOUND</code></td>\n<td>Invoice doesn't exist</td>\n</tr>\n<tr>\n<td><code>INVOICE_ALREADY_PAID</code></td>\n<td>Cannot cancel a paid invoice</td>\n</tr>\n<tr>\n<td><code>INVOICE_EXPIRED</code></td>\n<td>Invoice already expired</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["invoices",":invoiceId","cancel"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"50648ae1-0639-423b-af08-2a6e064e9b98","description":{"content":"<p>The invoice ID to cancel</p>\n","type":"text/plain"},"type":"any","value":"inv_xxxxxxxxxxxxx","key":"invoiceId"}]}},"response":[],"_postman_id":"9cab1747-516e-4c92-8863-f6570447e63e"},{"name":"Refund Invoice","id":"d68a2db1-475c-4c93-b424-245e4c06e915","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"reason\": \"Customer requested refund\"\n}"},"url":"https://api.stablix.xyz/api/v1/invoices/:invoiceId/refund","description":"<h1 id=\"refund-invoice\">Refund Invoice</h1>\n<p>Refund a paid invoice. Only available during the buffer period before funds are released.</p>\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>invoiceId</code></td>\n<td>The invoice ID to refund</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>reason</code></td>\n<td>string</td>\n<td></td>\n<td>Reason for refund (for records)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"invoice_id\": \"inv_xxxxxxxxxxxxx\",\n    \"status\": \"refunded\",\n    \"refund_tx_hash\": \"5abc...\",\n    \"refunded_at\": \"2025-02-04T01:00:00Z\"\n  }\n}\n</code></pre>\n<h2 id=\"errors\">Errors</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>CANNOT_REFUND</code></td>\n<td>Buffer period expired, funds already released</td>\n</tr>\n<tr>\n<td><code>INVOICE_NOT_PAID</code></td>\n<td>Invoice hasn't been paid</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["invoices",":invoiceId","refund"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"c7b7ab3b-e88a-4e69-bed5-9176e3992e43","description":{"content":"<p>The invoice ID to refund</p>\n","type":"text/plain"},"type":"any","value":"inv_xxxxxxxxxxxxx","key":"invoiceId"}]}},"response":[],"_postman_id":"d68a2db1-475c-4c93-b424-245e4c06e915"}],"id":"edfe2b25-b97c-4d91-9ed9-58284ff54633","description":"<h1 id=\"invoices\">Invoices</h1>\n<p>Invoices are one-time payment requests. When you create an invoice, Stablix generates a unique payment address where customers can send funds.</p>\n<h2 id=\"invoice-lifecycle\">Invoice Lifecycle</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pending → paid → released\n              ↘ refunded\n              ↘ disputed\npending → expired\npending → cancelled\n</code></pre><h2 id=\"the-invoice-object\">The Invoice Object</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoice_id\": \"inv_Y7xLCd5BPfPs1023hBMJ7\",\n  \"merchant_id\": \"mer_xxxxxxxxxxxxx\",\n  \"amount\": 100.00,\n  \"currencies\": [\"USDC\", \"USDT\"],\n  \"chains\": [\"solana\", \"base\"],\n  \"description\": \"Order #12345\",\n  \"customer_email\": \"customer@example.com\",\n  \"status\": \"pending\",\n  \"payment_address\": {\n    \"solana\": \"7wcwUMtrb...\",\n    \"base\": \"0x659CE0FC...\"\n  },\n  \"buffer_hours\": 24,\n  \"expires_at\": \"2025-02-05T00:00:00Z\",\n  \"metadata\": {},\n  \"created_at\": \"2025-02-04T00:00:00Z\"\n}\n</code></pre>\n","_postman_id":"edfe2b25-b97c-4d91-9ed9-58284ff54633","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}}},{"name":"Plans","item":[{"name":"Create Plan","id":"b655015f-6513-4747-a1e3-c7cd7aa7f83d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Pro Plan\",\n    \"description\": \"Access to all premium features\",\n    \"amount\": 29.99,\n    \"interval\": \"month\",\n    \"interval_count\": 1,\n    \"currencies\": [\"USDC\", \"USDT\"],\n    \"chains\": [\"solana\", \"base\"],\n    \"trial_days\": 14,\n    \"buffer_hours\": 24,\n    \"metadata\": {\n        \"features\": [\"unlimited_api_calls\", \"priority_support\"]\n    },\n    \"splits\": [\n        {\n            \"address\": \"0x1234567890abcdef1234567890abcdef12345678\",\n            \"chain\": \"base\",\n            \"percentage\": 1000,\n            \"label\": \"Partner\"\n        }\n    ]\n}"},"url":"https://api.stablix.xyz/api/v1/plans","description":"<h1 id=\"create-plan\">Create Plan</h1>\n<p>Create a new subscription plan.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Plan name (shown to customers)</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td></td>\n<td>Plan description</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Price per billing period (USD)</td>\n</tr>\n<tr>\n<td><code>interval</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Billing interval: <code>day</code>, <code>week</code>, <code>month</code>, <code>quarter</code>, <code>year</code></td>\n</tr>\n<tr>\n<td><code>interval_count</code></td>\n<td>number</td>\n<td></td>\n<td>Number of intervals (default: 1)</td>\n</tr>\n<tr>\n<td><code>currencies</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Accepted currencies</td>\n</tr>\n<tr>\n<td><code>chains</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Accepted chains</td>\n</tr>\n<tr>\n<td><code>trial_days</code></td>\n<td>number</td>\n<td></td>\n<td>Free trial period in days (default: 0)</td>\n</tr>\n<tr>\n<td><code>buffer_hours</code></td>\n<td>number</td>\n<td></td>\n<td>Escrow hold period after each charge (default: 24)</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>object</td>\n<td></td>\n<td>Custom key-value data</td>\n</tr>\n<tr>\n<td><code>splits</code></td>\n<td>array</td>\n<td></td>\n<td>Revenue sharing configuration</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"revenue-splits\">Revenue Splits</h2>\n<p>Splits allow automatic revenue sharing. <strong>Percentages are in basis points</strong> (1/100th of a percent).</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Basis Points</th>\n<th>Percentage</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>100</td>\n<td>1%</td>\n</tr>\n<tr>\n<td>500</td>\n<td>5%</td>\n</tr>\n<tr>\n<td>1000</td>\n<td>10%</td>\n</tr>\n<tr>\n<td>2500</td>\n<td>25%</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"address\": \"0x1234...\",\n  \"chain\": \"base\",\n  \"percentage\": 1000,\n  \"label\": \"Partner\"\n}\n</code></pre>\n<p>⚠️ <strong>Important:</strong> Split addresses must match the chain (Solana addresses for Solana, EVM for Base).</p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"plan_id\": \"plan_xxxxxxxxxxxxx\",\n    \"name\": \"Pro Plan\",\n    \"amount\": 29.99,\n    \"interval\": \"month\",\n    \"subscribe_url\": \"https://pay.stablix.xyz/subscribe/plan_xxxxxxxxxxxxx\"\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["plans"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"b655015f-6513-4747-a1e3-c7cd7aa7f83d"},{"name":"Get Plan","id":"3750874d-9a0b-4b17-beb7-0b978ee1c1a0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/plans/:planId","description":"<h1 id=\"get-plan\">Get Plan</h1>\n<p>Retrieve details of a specific plan.</p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"plan_id\": \"plan_xxxxxxxxxxxxx\",\n    \"name\": \"Pro Plan\",\n    \"amount\": 29.99,\n    \"interval\": \"month\",\n    \"interval_count\": 1,\n    \"subscriber_count\": 150,\n    \"total_revenue\": 4498.50,\n    \"created_at\": \"2025-01-01T00:00:00Z\"\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["plans",":planId"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"5d72e20a-386b-4838-8694-971003b74bba","description":{"content":"<p>The plan ID</p>\n","type":"text/plain"},"type":"any","value":"plan_xxxxxxxxxxxxx","key":"planId"}]}},"response":[],"_postman_id":"3750874d-9a0b-4b17-beb7-0b978ee1c1a0"},{"name":"List Plans","id":"841e14c8-cc33-4c87-8b1d-d739b84c5b02","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/plans?active=true&limit=20","description":"<h1 id=\"list-plans\">List Plans</h1>\n<p>Retrieve all plans for your merchant account.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>active</code></td>\n<td>boolean</td>\n<td>-</td>\n<td>Filter by active/archived status</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>number</td>\n<td>20</td>\n<td>Results per page (max: 100)</td>\n</tr>\n<tr>\n<td><code>offset</code></td>\n<td>number</td>\n<td>0</td>\n<td>Pagination offset</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["plans"],"host":["https://api.stablix.xyz/api/v1"],"query":[{"description":{"content":"<p>Filter by active/archived status</p>\n","type":"text/plain"},"key":"active","value":"true"},{"description":{"content":"<p>Results per page (max: 100)</p>\n","type":"text/plain"},"key":"limit","value":"20"},{"disabled":true,"description":{"content":"<p>Pagination offset</p>\n","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]}},"response":[],"_postman_id":"841e14c8-cc33-4c87-8b1d-d739b84c5b02"},{"name":"Update Plan","id":"3e2a6928-519e-4489-934f-a4af1ced5d33","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Pro Plan (Updated)\",\n    \"description\": \"Updated description\",\n    \"metadata\": {\n        \"features\": [\"unlimited_api_calls\", \"priority_support\", \"custom_integrations\"]\n    }\n}"},"url":"https://api.stablix.xyz/api/v1/plans/:planId","description":"<h1 id=\"update-plan\">Update Plan</h1>\n<p>Update plan details. <strong>You cannot change pricing fields</strong> (amount, interval) on plans with active subscriptions.</p>\n<h2 id=\"updateable-fields\">Updateable Fields</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>Plan name</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>Plan description</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>Custom metadata</td>\n</tr>\n<tr>\n<td><code>trial_days</code></td>\n<td>Trial period (only affects new subscriptions)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["plans",":planId"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"bbc8019c-075b-4b2c-be9e-bd783fffeea7","description":{"content":"<p>The plan ID to update</p>\n","type":"text/plain"},"type":"any","value":"plan_xxxxxxxxxxxxx","key":"planId"}]}},"response":[],"_postman_id":"3e2a6928-519e-4489-934f-a4af1ced5d33"},{"name":"Archive Plan","id":"c6923137-6cd0-4291-93e8-c0be429f44f5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.stablix.xyz/api/v1/plans/:planId/archive","description":"<h1 id=\"archive-plan\">Archive Plan</h1>\n<p>Archive a plan to prevent new subscriptions. Existing subscriptions continue to bill normally.</p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"plan_id\": \"plan_xxxxxxxxxxxxx\",\n    \"archived_at\": \"2025-02-04T00:00:00Z\"\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["plans",":planId","archive"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"093b2e6f-418a-4ecb-a4f1-7763ad355651","description":{"content":"<p>The plan ID to archive</p>\n","type":"text/plain"},"type":"any","value":"plan_xxxxxxxxxxxxx","key":"planId"}]}},"response":[],"_postman_id":"c6923137-6cd0-4291-93e8-c0be429f44f5"},{"name":"Get Public Plan","id":"68df0c28-cf75-4c05-bed1-0528fb48e21b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/plans/:planId/public","description":"<h1 id=\"get-public-plan\">Get Public Plan</h1>\n<p>Retrieve public plan information <strong>without authentication</strong>. Used for subscribe pages.</p>\n<p>🔓 <strong>No API key required</strong></p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"plan_id\": \"plan_xxxxxxxxxxxxx\",\n    \"name\": \"Pro Plan\",\n    \"description\": \"Access to all premium features\",\n    \"amount\": 29.99,\n    \"interval\": \"month\",\n    \"interval_count\": 1,\n    \"currencies\": [\"USDC\", \"USDT\"],\n    \"chains\": [\"solana\", \"base\"],\n    \"trial_days\": 14,\n    \"merchant\": {\n      \"business_name\": \"Acme Corp\",\n      \"logo_url\": \"https://...\"\n    }\n  }\n}\n</code></pre>\n","urlObject":{"path":["plans",":planId","public"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"ebafd56b-421c-4c70-9f9e-56af26b411f0","description":{"content":"<p>The plan ID</p>\n","type":"text/plain"},"type":"any","value":"plan_xxxxxxxxxxxxx","key":"planId"}]}},"response":[],"_postman_id":"68df0c28-cf75-4c05-bed1-0528fb48e21b"}],"id":"6a902a73-e046-4f27-96f9-2737d8bdba63","description":"<h1 id=\"plans\">Plans</h1>\n<p>Plans define the pricing and billing terms for recurring subscriptions. Create plans once, then create subscriptions against them.</p>\n<h2 id=\"billing-intervals\">Billing Intervals</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>interval</th>\n<th>interval_count</th>\n<th>Result</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>day</code></td>\n<td>1</td>\n<td>Daily</td>\n</tr>\n<tr>\n<td><code>week</code></td>\n<td>1</td>\n<td>Weekly</td>\n</tr>\n<tr>\n<td><code>week</code></td>\n<td>2</td>\n<td>Bi-weekly</td>\n</tr>\n<tr>\n<td><code>month</code></td>\n<td>1</td>\n<td>Monthly</td>\n</tr>\n<tr>\n<td><code>month</code></td>\n<td>3</td>\n<td>Quarterly</td>\n</tr>\n<tr>\n<td><code>year</code></td>\n<td>1</td>\n<td>Annual</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"the-plan-object\">The Plan Object</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"plan_id\": \"plan_xxxxxxxxxxxxx\",\n  \"name\": \"Pro Plan\",\n  \"description\": \"Access to all premium features\",\n  \"amount\": 29.99,\n  \"interval\": \"month\",\n  \"interval_count\": 1,\n  \"currencies\": [\"USDC\", \"USDT\"],\n  \"chains\": [\"solana\", \"base\"],\n  \"trial_days\": 14,\n  \"buffer_hours\": 24,\n  \"subscriber_count\": 150,\n  \"total_revenue\": 4498.50\n}\n</code></pre>\n","_postman_id":"6a902a73-e046-4f27-96f9-2737d8bdba63","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}}},{"name":"Subscriptions","item":[{"name":"Create Subscription","id":"86d4e8e8-15da-42fc-8682-d9c3e598319f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"plan_id\": \"plan_xxxxxxxxxxxxx\",\n    \"subscriber_email\": \"subscriber@example.com\",\n    \"subscriber_external_id\": \"user_123\",\n    \"metadata\": {\n        \"user_id\": \"user_123\",\n        \"tier\": \"premium\"\n    }\n}"},"url":"https://api.stablix.xyz/api/v1/subscriptions","description":"<h1 id=\"create-subscription\">Create Subscription</h1>\n<p>Create a new subscription. This generates a subscription record that awaits token approval from the subscriber.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>plan_id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>The plan to subscribe to</td>\n</tr>\n<tr>\n<td><code>subscriber_email</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Subscriber's email for notifications</td>\n</tr>\n<tr>\n<td><code>subscriber_external_id</code></td>\n<td>string</td>\n<td></td>\n<td>Your internal user ID</td>\n</tr>\n<tr>\n<td><code>metadata</code></td>\n<td>object</td>\n<td></td>\n<td>Custom key-value data</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"subscription_id\": \"sub_xxxxxxxxxxxxx\",\n    \"status\": \"pending_approval\",\n    \"approve_url\": \"https://pay.stablix.xyz/subscribe/sub_xxxxxxxxxxxxx\"\n  }\n}\n</code></pre>\n<h2 id=\"next-steps\">Next Steps</h2>\n<ol>\n<li>Redirect user to <code>approve_url</code> or build your own approval UI</li>\n<li>User approves token spending in their wallet</li>\n<li>Call <strong>Confirm Subscription</strong> endpoint with approval details</li>\n</ol>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"86d4e8e8-15da-42fc-8682-d9c3e598319f"},{"name":"Confirm Subscription","id":"7be9c9a7-a0cb-46b1-9499-e801c5313dd5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"chain\": \"solana\",\n    \"currency\": \"USDC\",\n    \"wallet_address\": \"7wcwUMtrb5JXqpLyi4U5j6zjtMZvUFyuhwP8oso3LJLT\",\n    \"tx_hash\": \"5xyz123abc456def...\",\n    \"approved_amount\": 359.88\n}"},"url":"https://api.stablix.xyz/api/v1/subscriptions/:subscriptionId/confirm","description":"<h1 id=\"confirm-subscription\">Confirm Subscription</h1>\n<p>Confirm a subscription after the subscriber has approved token spending. This validates the approval on-chain and charges the first payment.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>chain</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Chain used: <code>solana</code> or <code>base</code></td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Currency approved: <code>USDC</code> or <code>USDT</code></td>\n</tr>\n<tr>\n<td><code>wallet_address</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Subscriber's wallet address</td>\n</tr>\n<tr>\n<td><code>tx_hash</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Approval transaction hash</td>\n</tr>\n<tr>\n<td><code>approved_amount</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Total amount approved for spending</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"approval-amount-calculation\">Approval Amount Calculation</h2>\n<p>We recommend approving 12 billing cycles:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Approval Amount = Plan Amount × 12\n</code></pre><p>For a $29.99/month plan: <code>$29.99 × 12 = $359.88</code></p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"subscription_id\": \"sub_xxxxxxxxxxxxx\",\n    \"status\": \"active\",\n    \"first_charge\": {\n      \"charge_id\": \"chg_xxxxxxxxxxxxx\",\n      \"amount\": 29.99,\n      \"tx_hash\": \"5abc...\"\n    },\n    \"billing\": {\n      \"next_charge_at\": \"2025-03-01T00:00:00Z\"\n    }\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions",":subscriptionId","confirm"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"19e6c66b-3c75-41df-9860-2bf16d8b1342","description":{"content":"<p>The subscription ID to confirm</p>\n","type":"text/plain"},"type":"any","value":"sub_xxxxxxxxxxxxx","key":"subscriptionId"}]}},"response":[],"_postman_id":"7be9c9a7-a0cb-46b1-9499-e801c5313dd5"},{"name":"Get Subscription","id":"e745580e-2165-486a-aae7-d16e36689fba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/subscriptions/:subscriptionId","description":"<h1 id=\"get-subscription\">Get Subscription</h1>\n<p>Retrieve details of a specific subscription.</p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"subscription_id\": \"sub_xxxxxxxxxxxxx\",\n    \"plan_id\": \"plan_xxxxxxxxxxxxx\",\n    \"status\": \"active\",\n    \"subscriber\": {\n      \"email\": \"subscriber@example.com\",\n      \"wallet_address\": \"7wcwUMtrb...\",\n      \"external_id\": \"user_123\"\n    },\n    \"approved_chain\": \"solana\",\n    \"approved_currency\": \"USDC\",\n    \"approval\": {\n      \"approved_amount\": 359.88,\n      \"total_charged\": 29.99,\n      \"remaining_allowance\": 329.89\n    },\n    \"billing\": {\n      \"current_period_start\": \"2025-02-01T00:00:00Z\",\n      \"current_period_end\": \"2025-03-01T00:00:00Z\",\n      \"next_charge_at\": \"2025-03-01T00:00:00Z\",\n      \"total_charges\": 1\n    }\n  }\n}\n</code></pre>\n<h2 id=\"subscription-statuses\">Subscription Statuses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>pending_approval</code></td>\n<td>Awaiting wallet approval</td>\n</tr>\n<tr>\n<td><code>trialing</code></td>\n<td>In free trial period</td>\n</tr>\n<tr>\n<td><code>active</code></td>\n<td>Active and billing normally</td>\n</tr>\n<tr>\n<td><code>past_due</code></td>\n<td>Payment failed, retrying</td>\n</tr>\n<tr>\n<td><code>paused</code></td>\n<td>Temporarily paused</td>\n</tr>\n<tr>\n<td><code>cancelled</code></td>\n<td>Cancelled (no more charges)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions",":subscriptionId"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"037ff76b-5fcf-4d61-8de8-78c62df77f60","description":{"content":"<p>The subscription ID</p>\n","type":"text/plain"},"type":"any","value":"sub_xxxxxxxxxxxxx","key":"subscriptionId"}]}},"response":[],"_postman_id":"e745580e-2165-486a-aae7-d16e36689fba"},{"name":"List Subscriptions","id":"8184e9b9-a155-403d-b6d8-8ffe86ba01e2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/subscriptions?status=active&plan_id=plan_xxx&limit=20","description":"<h1 id=\"list-subscriptions\">List Subscriptions</h1>\n<p>Retrieve all subscriptions.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>-</td>\n<td>Filter by status</td>\n</tr>\n<tr>\n<td><code>plan_id</code></td>\n<td>string</td>\n<td>-</td>\n<td>Filter by plan</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>number</td>\n<td>20</td>\n<td>Results per page</td>\n</tr>\n<tr>\n<td><code>offset</code></td>\n<td>number</td>\n<td>0</td>\n<td>Pagination offset</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions"],"host":["https://api.stablix.xyz/api/v1"],"query":[{"description":{"content":"<p>Filter: active, trialing, past_due, cancelled, paused</p>\n","type":"text/plain"},"key":"status","value":"active"},{"description":{"content":"<p>Filter by plan ID</p>\n","type":"text/plain"},"key":"plan_id","value":"plan_xxx"},{"description":{"content":"<p>Results per page (max: 100)</p>\n","type":"text/plain"},"key":"limit","value":"20"}],"variable":[]}},"response":[],"_postman_id":"8184e9b9-a155-403d-b6d8-8ffe86ba01e2"},{"name":"Cancel Subscription","id":"73dabff9-68d0-4cc0-a12e-f109997f39b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"reason\": \"Customer requested cancellation\",\n    \"cancel_at_period_end\": true\n}"},"url":"https://api.stablix.xyz/api/v1/subscriptions/:subscriptionId/cancel","description":"<h1 id=\"cancel-subscription\">Cancel Subscription</h1>\n<p>Cancel a subscription. You can cancel immediately or at the end of the current billing period.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>reason</code></td>\n<td>string</td>\n<td></td>\n<td>Cancellation reason</td>\n</tr>\n<tr>\n<td><code>cancel_at_period_end</code></td>\n<td>boolean</td>\n<td></td>\n<td>If <code>true</code>, subscription remains active until period ends (default: <code>false</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"subscription_id\": \"sub_xxxxxxxxxxxxx\",\n    \"status\": \"cancelled\",\n    \"cancelled_at\": \"2025-02-04T00:00:00Z\",\n    \"cancel_at_period_end\": true,\n    \"current_period_end\": \"2025-03-01T00:00:00Z\"\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions",":subscriptionId","cancel"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"6a90dffa-56d0-4224-b70e-d4359bbf7493","description":{"content":"<p>The subscription ID to cancel</p>\n","type":"text/plain"},"type":"any","value":"sub_xxxxxxxxxxxxx","key":"subscriptionId"}]}},"response":[],"_postman_id":"73dabff9-68d0-4cc0-a12e-f109997f39b2"},{"name":"Pause Subscription","id":"2b20da3d-1b0b-4b6d-83f1-9bd4f6945767","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"resume_at\": \"2025-03-01T00:00:00Z\"\n}"},"url":"https://api.stablix.xyz/api/v1/subscriptions/:subscriptionId/pause","description":"<h1 id=\"pause-subscription\">Pause Subscription</h1>\n<p>Pause a subscription. No charges will occur while paused.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>resume_at</code></td>\n<td>string</td>\n<td></td>\n<td>ISO 8601 date to auto-resume (optional)</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions",":subscriptionId","pause"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"41f3f291-3a1c-4464-86a3-8a3d6d97b12c","description":{"content":"<p>The subscription ID to pause</p>\n","type":"text/plain"},"type":"any","value":"sub_xxxxxxxxxxxxx","key":"subscriptionId"}]}},"response":[],"_postman_id":"2b20da3d-1b0b-4b6d-83f1-9bd4f6945767"},{"name":"Resume Subscription","id":"784c83e0-d415-456f-bc8b-da3c31997f72","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.stablix.xyz/api/v1/subscriptions/:subscriptionId/resume","description":"<h1 id=\"resume-subscription\">Resume Subscription</h1>\n<p>Resume a paused subscription.</p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"subscription_id\": \"sub_xxxxxxxxxxxxx\",\n    \"status\": \"active\",\n    \"next_charge_at\": \"2025-02-04T00:00:00Z\"\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions",":subscriptionId","resume"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"87503516-75f9-48eb-8095-c7c05830d218","description":{"content":"<p>The subscription ID to resume</p>\n","type":"text/plain"},"type":"any","value":"sub_xxxxxxxxxxxxx","key":"subscriptionId"}]}},"response":[],"_postman_id":"784c83e0-d415-456f-bc8b-da3c31997f72"},{"name":"Get Subscription Charges","id":"3a1ea45b-a80c-47fc-a5df-0057c991de44","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/subscriptions/:subscriptionId/charges","description":"<h1 id=\"get-subscription-charges\">Get Subscription Charges</h1>\n<p>Retrieve all charges for a subscription.</p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"charges\": [\n      {\n        \"charge_id\": \"chg_xxxxxxxxxxxxx\",\n        \"amount\": 29.99,\n        \"fee\": 0.15,\n        \"net_amount\": 29.84,\n        \"escrow_status\": \"released\",\n        \"escrow_tx_hash\": \"5xyz...\",\n        \"release_tx_hash\": \"5abc...\",\n        \"period_start\": \"2025-02-01T00:00:00Z\",\n        \"period_end\": \"2025-03-01T00:00:00Z\",\n        \"charged_at\": \"2025-02-01T00:00:00Z\"\n      }\n    ]\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions",":subscriptionId","charges"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"bbad736d-f45a-48cd-9d70-5457ec961641","description":{"content":"<p>The subscription ID</p>\n","type":"text/plain"},"type":"any","value":"sub_xxxxxxxxxxxxx","key":"subscriptionId"}]}},"response":[],"_postman_id":"3a1ea45b-a80c-47fc-a5df-0057c991de44"},{"name":"Refund Charge","id":"49f12db7-a33e-40a0-a3cb-84b627658bc8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"reason\": \"Service issue - customer complaint\"\n}"},"url":"https://api.stablix.xyz/api/v1/subscriptions/:subscriptionId/charges/:chargeId/refund","description":"<h1 id=\"refund-charge\">Refund Charge</h1>\n<p>Refund a specific subscription charge. Only available during the buffer period.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>reason</code></td>\n<td>string</td>\n<td></td>\n<td>Reason for refund</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"charge_id\": \"chg_xxxxxxxxxxxxx\",\n    \"refund_tx_hash\": \"5def...\",\n    \"refunded_at\": \"2025-02-04T00:00:00Z\"\n  }\n}\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["subscriptions",":subscriptionId","charges",":chargeId","refund"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"a1dc5d6f-5297-443a-9940-f312b8ffdd04","description":{"content":"<p>The subscription ID</p>\n","type":"text/plain"},"type":"any","value":"sub_xxxxxxxxxxxxx","key":"subscriptionId"},{"id":"5a98a813-897c-4a75-80e2-c140ab13ad02","description":{"content":"<p>The charge ID to refund</p>\n","type":"text/plain"},"type":"any","value":"chg_xxxxxxxxxxxxx","key":"chargeId"}]}},"response":[],"_postman_id":"49f12db7-a33e-40a0-a3cb-84b627658bc8"}],"id":"bda82fcd-816b-4e16-a914-b1c643a1b98c","description":"<h1 id=\"subscriptions\">Subscriptions</h1>\n<p>Subscriptions handle recurring billing for your customers. They are created against plans and automatically charge customers on each billing cycle.</p>\n<h2 id=\"subscription-lifecycle\">Subscription Lifecycle</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pending_approval → active → cancelled\n                 ↘ trialing → active\n                 ↘ past_due → active (on retry)\n                           ↘ cancelled (max retries)\nactive → paused → active (resumed)\n</code></pre><h2 id=\"token-approvals\">Token Approvals</h2>\n<p>Subscriptions use token approvals (ERC-20 <code>approve</code> / SPL delegate) to enable automatic recurring charges:</p>\n<ol>\n<li><strong>Frontend:</strong> User approves a spending limit in their wallet</li>\n<li><strong>Backend:</strong> Stablix verifies the approval on-chain</li>\n<li><strong>Billing:</strong> On each billing date, Stablix charges from the approved allowance</li>\n</ol>\n<p>When allowance runs low, the subscriber will need to re-approve.</p>\n","_postman_id":"bda82fcd-816b-4e16-a914-b1c643a1b98c","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}}},{"name":"Disputes","item":[{"name":"List Disputes","id":"f40f5bc3-6735-4251-beb6-f5d8005751c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/disputes?status=open&limit=20","description":"<h1 id=\"list-disputes\">List Disputes</h1>\n<p>Retrieve all disputes for your merchant account.</p>\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Default</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>-</td>\n<td>Filter: <code>open</code>, <code>under_review</code>, <code>resolved</code>, <code>closed</code></td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>-</td>\n<td>Filter: <code>invoice</code>, <code>subscription</code></td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>number</td>\n<td>20</td>\n<td>Results per page</td>\n</tr>\n<tr>\n<td><code>offset</code></td>\n<td>number</td>\n<td>0</td>\n<td>Pagination offset</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"disputes\": [\n      {\n        \"dispute_id\": \"dsp_xxxxxxxxxxxxx\",\n        \"type\": \"invoice\",\n        \"invoice_id\": \"inv_xxxxxxxxxxxxx\",\n        \"status\": \"open\",\n        \"reason\": \"product_not_received\",\n        \"amount\": 100.00,\n        \"created_at\": \"2025-02-04T00:00:00Z\"\n      }\n    ]\n  }\n}\n</code></pre>\n<h2 id=\"dispute-reasons\">Dispute Reasons</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Reason</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>product_not_received</code></td>\n<td>Customer didn't receive the product</td>\n</tr>\n<tr>\n<td><code>product_not_as_described</code></td>\n<td>Product differs from description</td>\n</tr>\n<tr>\n<td><code>service_not_provided</code></td>\n<td>Service wasn't delivered</td>\n</tr>\n<tr>\n<td><code>duplicate_charge</code></td>\n<td>Customer was charged twice</td>\n</tr>\n<tr>\n<td><code>unauthorized</code></td>\n<td>Customer didn't authorize the charge</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["disputes"],"host":["https://api.stablix.xyz/api/v1"],"query":[{"description":{"content":"<p>Filter: open, under_review, resolved, closed</p>\n","type":"text/plain"},"key":"status","value":"open"},{"description":{"content":"<p>Results per page</p>\n","type":"text/plain"},"key":"limit","value":"20"},{"disabled":true,"description":{"content":"<p>Filter: invoice, subscription</p>\n","type":"text/plain"},"key":"type","value":"invoice"}],"variable":[]}},"response":[],"_postman_id":"f40f5bc3-6735-4251-beb6-f5d8005751c4"},{"name":"Get Dispute","id":"53e8b5c6-50e8-4b45-a2c7-c348cf7ca57f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/disputes/:disputeId","description":"<h1 id=\"get-dispute\">Get Dispute</h1>\n<p>Retrieve details of a specific dispute.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["disputes",":disputeId"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"927e499f-c1b7-4d59-88e1-bb55abdd127b","description":{"content":"<p>The dispute ID</p>\n","type":"text/plain"},"type":"any","value":"dsp_xxxxxxxxxxxxx","key":"disputeId"}]}},"response":[],"_postman_id":"53e8b5c6-50e8-4b45-a2c7-c348cf7ca57f"},{"name":"Respond to Dispute","id":"463c78a9-117f-4a02-8b95-3f51bc94aca3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"response\": \"The product was delivered on time. Here is proof of delivery.\",\n    \"evidence\": {\n        \"delivery_proof\": \"https://example.com/tracking.png\",\n        \"communication_logs\": \"Email thread showing delivery confirmation\"\n    }\n}"},"url":"https://api.stablix.xyz/api/v1/disputes/:disputeId/respond","description":"<h1 id=\"respond-to-dispute\">Respond to Dispute</h1>\n<p>Submit your response and evidence to contest a dispute.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>response</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Your written response</td>\n</tr>\n<tr>\n<td><code>evidence</code></td>\n<td>object</td>\n<td></td>\n<td>Supporting evidence (URLs, text)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"dispute_id\": \"dsp_xxxxxxxxxxxxx\",\n    \"status\": \"under_review\",\n    \"response_submitted_at\": \"2025-02-04T01:00:00Z\"\n  }\n}\n</code></pre>\n<h2 id=\"tips-for-winning-disputes\">Tips for Winning Disputes</h2>\n<ol>\n<li><strong>Respond quickly</strong> - You have 7 days before auto-resolution</li>\n<li><strong>Provide evidence</strong> - Screenshots, logs, emails strengthen your case</li>\n<li><strong>Be professional</strong> - Clear, factual responses work best</li>\n<li><strong>Keep records</strong> - Maintain delivery proofs and communications</li>\n</ol>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["disputes",":disputeId","respond"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"944cfa9d-10c5-4ce4-a9ba-6a4ad6f7fa0d","description":{"content":"<p>The dispute ID</p>\n","type":"text/plain"},"type":"any","value":"dsp_xxxxxxxxxxxxx","key":"disputeId"}]}},"response":[],"_postman_id":"463c78a9-117f-4a02-8b95-3f51bc94aca3"},{"name":"Accept Dispute","id":"3afc5103-3a85-46ed-b151-ec7f5f29b8c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.stablix.xyz/api/v1/disputes/:disputeId/accept","description":"<h1 id=\"accept-dispute\">Accept Dispute</h1>\n<p>Accept the dispute and refund the customer. Use this if the customer's claim is valid.</p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"dispute_id\": \"dsp_xxxxxxxxxxxxx\",\n    \"status\": \"resolved\",\n    \"resolution\": \"accepted\",\n    \"refund_tx_hash\": \"5xyz...\",\n    \"resolved_at\": \"2025-02-04T01:00:00Z\"\n  }\n}\n</code></pre>\n<h2 id=\"dispute-fees\">Dispute Fees</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Outcome</th>\n<th>Fee</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Merchant wins</td>\n<td>No additional fee</td>\n</tr>\n<tr>\n<td>Customer wins</td>\n<td>+1.0% of disputed amount</td>\n</tr>\n<tr>\n<td>Merchant accepts</td>\n<td>No additional fee</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}},"urlObject":{"path":["disputes",":disputeId","accept"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[{"id":"d9fb7372-d171-41d5-b6da-8c384f3cca88","description":{"content":"<p>The dispute ID to accept</p>\n","type":"text/plain"},"type":"any","value":"dsp_xxxxxxxxxxxxx","key":"disputeId"}]}},"response":[],"_postman_id":"3afc5103-3a85-46ed-b151-ec7f5f29b8c4"}],"id":"50f8e1f5-2a15-4866-a7c6-5259b7758a84","description":"<h1 id=\"disputes\">Disputes</h1>\n<p>Disputes allow customers to contest payments. When a dispute is opened, the escrowed funds are held until resolution.</p>\n<h2 id=\"dispute-lifecycle\">Dispute Lifecycle</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>open → under_review → resolved (merchant wins)\n                   ↘ resolved (customer wins → refund)\n                   ↘ resolved (split)\nopen → accepted (merchant accepts → refund)\n</code></pre><h2 id=\"dispute-statuses\">Dispute Statuses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>open</code></td>\n<td>Dispute opened, awaiting merchant response</td>\n</tr>\n<tr>\n<td><code>under_review</code></td>\n<td>Merchant responded, under admin review</td>\n</tr>\n<tr>\n<td><code>resolved</code></td>\n<td>Dispute resolved</td>\n</tr>\n<tr>\n<td><code>closed</code></td>\n<td>Dispute closed</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"50f8e1f5-2a15-4866-a7c6-5259b7758a84","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}}},{"name":"Health","item":[{"name":"Health Check","id":"054abfa1-24f9-4dca-9aa5-b47996b41775","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"https://api.stablix.xyz/api/v1/health","description":"<h1 id=\"health-check\">Health Check</h1>\n<p>Check API health status.</p>\n<p>🔓 <strong>No API key required</strong></p>\n<h2 id=\"response\">Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"healthy\",\n  \"version\": \"1.0.0\",\n  \"timestamp\": \"2025-02-04T00:00:00Z\"\n}\n</code></pre>\n","urlObject":{"path":["health"],"host":["https://api.stablix.xyz/api/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"054abfa1-24f9-4dca-9aa5-b47996b41775"}],"id":"2207a563-08ee-4814-b4fa-971fa27681f6","description":"<h1 id=\"health\">Health</h1>\n<p>API health check endpoints. Use these to monitor API availability.</p>\n","_postman_id":"2207a563-08ee-4814-b4fa-971fa27681f6","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"834a5bf6-746a-494b-9390-7470ba320d12","id":"834a5bf6-746a-494b-9390-7470ba320d12","name":"Stablix API Docs","type":"collection"}}}],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{API_KEY}}"}]}},"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""],"id":"dafc4fb9-eea3-4db4-b877-55fa344b6c0b"}},{"listen":"test","script":{"type":"text/javascript","exec":["// Auto-save common IDs from responses","if (pm.response.code === 200 || pm.response.code === 201) {","    try {","        const json = pm.response.json();","        if (json.data) {","            if (json.data.invoice_id) pm.environment.set('LAST_INVOICE_ID', json.data.invoice_id);","            if (json.data.plan_id) pm.environment.set('LAST_PLAN_ID', json.data.plan_id);","            if (json.data.subscription_id) pm.environment.set('LAST_SUBSCRIPTION_ID', json.data.subscription_id);","            if (json.data.dispute_id) pm.environment.set('LAST_DISPUTE_ID', json.data.dispute_id);","        }","    } catch (e) {}","}"],"id":"4d6c0e35-049c-44e1-9a08-75f408a1fe78"}}],"variable":[{"key":"baseUrl","value":"https://api.stablix.xyz/api/v1","type":"string"}]}