{
  "info": {
    "_postman_id": "auxcore-api-collection-v2.0",
    "name": "AuxCORE API v2.0",
    "description": "Enterprise-grade Postman collection for AuxCORE Payment Gateway Platform.\n\n## Setup\n\n1. Import this collection into Postman\n2. Set the following collection variables:\n   - `baseUrl` — `https://uat.auxcore.net` (sandbox) or `https://app.auxcore.net` (production)\n   - `tenantId` — Your tenant identifier\n   - `apiKey` — Your API key from Dashboard → Settings → Developer & Integrations → API Keys\n   - `merchantId` — Your merchant ID (leave blank for tenant-level operations)\n\n3. Run the **Auth / Login** request first to auto-populate `jwtToken`.\n4. Run **Connection / Test Connection** to verify credentials.\n\n## Authentication\n\nServer integration Public API requests use `x-api-key: {{apiKey}}`. Tenant-wide ERP keys also require `X-Merchant-ID: {{merchantId}}`; X-Tenant-ID is ignored on /public/*. Customer-facing invoice, payment-link, checkout and payment-plan requests use no authentication.\n\nAdmin API requests use `Authorization: Bearer {{jwtToken}}` and `X-Tenant-ID: {{tenantId}}`. Admin API / Authentication / Login saves jwtToken and refreshToken; set loginEmail and loginPassword first.\n\n## API Surfaces\n- **Public API** (`/api/v1/public/*`) — ERP and server integration\n- **Admin API** (`/api/v1/*`) — Dashboard operations\n- **AuxCORE SDK / Hosted Fields** (`/api/v1/public/*`) — current auxVault.js, pciToken sale/auth and checkout configuration\n- **AuxCORE SDK / API (v2.0)** (`/api/v1/auxvault/*`) — official SDK namespace; currently no root handler, PCI token forwarding or auth-only on transaction\n\n## Additional flows\n- Admin API groups device provisioning, mobile/POS, recurring billing, payment plans, invoicing, catalog, receipts, settlement, disputes, reporting and permissions.\n- Mobile calls need deviceToken from registration in addition to jwtToken.\n- Transactions / Token Processing uses processingBaseUrl, processingApiKey and processingTransactionId on the PCI host. Set serverEgressIp to your allowlisted server IP. Clear idempotencyKey for a new charge attempt; retries keep the same key and body.\n- Checkout & Webhooks / Yeastar uses yeastarApiKey issued on a Provider Profile.\n- File-upload requests use multipart form-data; select files in Postman.\n- Original request examples are retained. In particular, the legacy Rerun Transaction request returns 404; use a new transaction request to retry.\n\nEndpoint inventory reconciled with Markdown documentation in docs/api on 2026-10-02.\nSDK request contracts reconciled with gateway routes, downstream controllers and current auxVault.js on 2026-10-02. SDK embed keys with allowed origins require X-Merchant-Origin; enable the optional header and set merchantOrigin. PascalCase tokenization saves tok_ tokens as sdkCardToken. Use server-side x-api-key for /api/v1/auxvault/*; SDK public keys are rejected at gateway authentication.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "version": {
      "major": 2,
      "minor": 0,
      "patch": 0
    }
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://uat.auxcore.net",
      "description": "Base URL — switch to https://app.auxcore.net for production"
    },
    {
      "key": "tenantId",
      "value": "your-tenant-id",
      "description": "Tenant identifier — required for ERP keys and Admin API; optional for merchant-scoped Public API keys"
    },
    {
      "key": "apiKey",
      "value": "your-api-key-here",
      "description": "API key from Dashboard → Settings → Developer & Integrations → API Keys. Used in x-api-key header."
    },
    {
      "key": "jwtToken",
      "value": "",
      "description": "Auto-populated by Auth / Login. Used for admin API calls."
    },
    {
      "key": "merchantId",
      "value": "",
      "description": "Merchant ID — required for merchant-scoped operations"
    },
    {
      "key": "testTransactionId",
      "value": "",
      "description": "Auto-populated after processing a test transaction"
    },
    {
      "key": "testCustomerId",
      "value": "",
      "description": "Auto-populated after creating a test customer"
    },
    {
      "key": "testToken",
      "value": "",
      "description": "PCI token (pci_tok_…) from Tokenize Card or the PCI SDK"
    },
    {
      "key": "loginEmail",
      "value": "admin@yourcompany.com",
      "description": "User email for JWT login."
    },
    {
      "key": "loginPassword",
      "value": "",
      "description": "User password for JWT login; configure locally."
    },
    {
      "key": "refreshToken",
      "value": "",
      "description": "JWT refresh token returned by login or merchant selection."
    },
    {
      "key": "selectionToken",
      "value": "",
      "description": "Short-lived selection token from a multi-merchant login."
    },
    {
      "key": "clientToken",
      "value": "",
      "description": "SDK client token returned by Auth / Get Client Token."
    },
    {
      "key": "deviceToken",
      "value": "",
      "description": "Device JWT returned by device registration; separate from jwtToken."
    },
    {
      "key": "tpn",
      "value": "",
      "description": "12-digit terminal TPN returned by Create Device."
    },
    {
      "key": "pairingCode",
      "value": "",
      "description": "6-digit pairing code returned by Create Device or Refresh Pairing Code."
    },
    {
      "key": "merchantPin",
      "value": "",
      "description": "Merchant 6-digit PIN for mobile void/refund verification."
    },
    {
      "key": "testAchToken",
      "value": "",
      "description": "pci_ach_ token returned by Tokenize ACH."
    },
    {
      "key": "processingBaseUrl",
      "value": "https://vault.auxcore.net",
      "description": "PCI token processing origin; set the sandbox host issued with your credentials."
    },
    {
      "key": "processingApiKey",
      "value": "",
      "description": "Dedicated ltk_ token_processing key; separate from the platform apiKey."
    },
    {
      "key": "processingTransactionId",
      "value": "",
      "description": "Transaction ID returned by Token Processing / Charge."
    },
    {
      "key": "serverEgressIp",
      "value": "203.0.113.10",
      "description": "Your allowlisted server egress IP; must match X-Forwarded-For and processing body ipAddress."
    },
    {
      "key": "idempotencyKey",
      "value": "",
      "description": "Unique key per processing charge attempt. Reuse the same key and body only for retries."
    },
    {
      "key": "yeastarApiKey",
      "value": "",
      "description": "Yeastar key issued on a Provider Profile; separate from the platform apiKey."
    },
    {
      "key": "dateFrom",
      "value": "2026-10-01",
      "description": "Start date for reports and settlement queries."
    },
    {
      "key": "dateTo",
      "value": "2026-10-31",
      "description": "End date for reports and settlement queries."
    },
    {
      "key": "testOtpId",
      "value": "",
      "description": "OTP ID returned by OTP / Generate OTP."
    },
    {
      "key": "resetPasswordToken",
      "value": "",
      "description": "Set resetPasswordToken before running requests that reference it."
    },
    {
      "key": "newPassword",
      "value": "",
      "description": "Set newPassword before running requests that reference it."
    },
    {
      "key": "userId",
      "value": "",
      "description": "Set userId before running requests that reference it."
    },
    {
      "key": "gatewayToken",
      "value": "",
      "description": "Set gatewayToken before running requests that reference it."
    },
    {
      "key": "gatewayApiKey",
      "value": "",
      "description": "Set gatewayApiKey before running requests that reference it."
    },
    {
      "key": "reroutingSessionId",
      "value": "",
      "description": "Set reroutingSessionId before running requests that reference it."
    },
    {
      "key": "productId",
      "value": "",
      "description": "Set productId before running requests that reference it."
    },
    {
      "key": "applePayValidationUrl",
      "value": "",
      "description": "Set applePayValidationUrl before running requests that reference it."
    },
    {
      "key": "refundId",
      "value": "",
      "description": "Set refundId before running requests that reference it."
    },
    {
      "key": "savedCardSessionId",
      "value": "",
      "description": "Set savedCardSessionId before running requests that reference it."
    },
    {
      "key": "verificationToken",
      "value": "",
      "description": "Set verificationToken before running requests that reference it."
    },
    {
      "key": "paymentMethodId",
      "value": "",
      "description": "Set paymentMethodId before running requests that reference it."
    },
    {
      "key": "batchId",
      "value": "",
      "description": "Set batchId before running requests that reference it."
    },
    {
      "key": "depositId",
      "value": "",
      "description": "Set depositId before running requests that reference it."
    },
    {
      "key": "gatewayId",
      "value": "",
      "description": "Set gatewayId before running requests that reference it."
    },
    {
      "key": "refundQueueId",
      "value": "",
      "description": "Set refundQueueId before running requests that reference it."
    },
    {
      "key": "webhookEndpointId",
      "value": "",
      "description": "Set webhookEndpointId before running requests that reference it."
    },
    {
      "key": "deliveryId",
      "value": "",
      "description": "Set deliveryId before running requests that reference it."
    },
    {
      "key": "branchId",
      "value": "",
      "description": "Set branchId before running requests that reference it."
    },
    {
      "key": "merchantIds",
      "value": "",
      "description": "Set merchantIds before running requests that reference it."
    },
    {
      "key": "chargebackId",
      "value": "",
      "description": "Set chargebackId before running requests that reference it."
    },
    {
      "key": "documentId",
      "value": "",
      "description": "Set documentId before running requests that reference it."
    },
    {
      "key": "disputeAlertId",
      "value": "",
      "description": "Set disputeAlertId before running requests that reference it."
    },
    {
      "key": "linkId",
      "value": "",
      "description": "Set linkId before running requests that reference it."
    },
    {
      "key": "sessionId",
      "value": "",
      "description": "Set sessionId before running requests that reference it."
    },
    {
      "key": "recurringId",
      "value": "",
      "description": "Set recurringId before running requests that reference it."
    },
    {
      "key": "invoiceId",
      "value": "",
      "description": "Set invoiceId before running requests that reference it."
    },
    {
      "key": "invoiceNumber",
      "value": "",
      "description": "Set invoiceNumber before running requests that reference it."
    },
    {
      "key": "categoryId",
      "value": "",
      "description": "Set categoryId before running requests that reference it."
    },
    {
      "key": "subCategoryId",
      "value": "",
      "description": "Set subCategoryId before running requests that reference it."
    },
    {
      "key": "apiKeyId",
      "value": "",
      "description": "Set apiKeyId before running requests that reference it."
    },
    {
      "key": "templateId",
      "value": "",
      "description": "Set templateId before running requests that reference it."
    },
    {
      "key": "deviceId",
      "value": "",
      "description": "Set deviceId before running requests that reference it."
    },
    {
      "key": "roleCode",
      "value": "merchant_staff",
      "description": "Set roleCode before running requests that reference it."
    },
    {
      "key": "roleId",
      "value": "",
      "description": "Set roleId before running requests that reference it."
    },
    {
      "key": "transactionId",
      "value": "",
      "description": "Set transactionId before running requests that reference it."
    },
    {
      "key": "planId",
      "value": "",
      "description": "Set planId before running requests that reference it."
    },
    {
      "key": "shopifyShopDomain",
      "value": "your-store.myshopify.com",
      "description": "Set shopifyShopDomain before running requests that reference it."
    },
    {
      "key": "settlementId",
      "value": "",
      "description": "Set settlementId before running requests that reference it."
    },
    {
      "key": "batchPayoutId",
      "value": "",
      "description": "Set batchPayoutId before running requests that reference it."
    },
    {
      "key": "itemId",
      "value": "",
      "description": "Set itemId before running requests that reference it."
    },
    {
      "key": "merchantOrigin",
      "value": "",
      "description": "Allowed website origin for SDK public keys; enable X-Merchant-Origin on Hosted Fields requests when required."
    },
    {
      "key": "sdkCardToken",
      "value": "",
      "description": "Card-security tok_ token from AuxCORE SDK / API (v2.0) / Tokenize Card; separate from PCI testToken."
    }
  ],
  "auth": {
    "type": "apikey",
    "apikey": [
      { "key": "key", "value": "x-api-key" },
      { "key": "value", "value": "{{apiKey}}" },
      { "key": "in", "value": "header" }
    ]
  },
  "item": [
    {
      "name": "Connection",
      "description": "Health checks and SDK information",
      "item": [
        {
          "name": "Test Connection",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "pm.test('Status 200', () => pm.response.to.have.status(200));",
                  "pm.test('success is true', () => pm.expect(pm.response.json().success).to.be.true);",
                  "pm.test('platform is AuxCORE', () => pm.expect(pm.response.json().data.platform).to.equal('AuxCORE'));",
                  "console.log('Connection OK. Version:', pm.response.json().data.version);"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/testConnection",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "testConnection"]
            },
            "description": "Verify API key, tenant ID, and server connectivity."
          },
          "response": [
            {
              "name": "200 OK — Connection successful",
              "originalRequest": {
                "method": "POST",
                "header": [
                  { "key": "x-api-key", "value": "{{apiKey}}" },
                  { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
                ],
                "url": { "raw": "{{baseUrl}}/api/v1/public/testConnection" }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "body": "{\n  \"success\": true,\n  \"message\": \"Connection successful\",\n  \"data\": {\n    \"platform\": \"AuxCORE\",\n    \"version\": \"2.0.0\",\n    \"tenantId\": \"acme-payments\",\n    \"merchantId\": \"merchant-456\",\n    \"timestamp\": \"2026-02-23T14:00:00.000Z\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Get SDK Info",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/sdk-info",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "sdk-info"]
            },
            "description": "Get SDK version and hosted fields URL. No authentication required."
          }
        },
        {
          "name": "Get Key Info",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/key-info",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "key-info"]
            },
            "description": "Resolve API key metadata (tenant, merchant scope)."
          }
        }
      ]
    },
    {
      "name": "Auth",
      "description": "Authentication — login, token refresh, client tokens",
      "item": [
        {
          "name": "Login (Get JWT)",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "pm.test('Status 200', () => pm.response.to.have.status(200));",
                  "if (pm.response.json().data && pm.response.json().data.token) {",
                  "  pm.collectionVariables.set('jwtToken', pm.response.json().data.token);",
                  "  console.log('JWT token saved to collection variable');",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"admin@yourcompany.com\",\n  \"password\": \"your-password\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/accesstoken",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "accesstoken"]
            },
            "description": "Exchange email/password for a JWT. The token is auto-saved to the `jwtToken` collection variable."
          },
          "response": [
            {
              "name": "200 OK — Login successful",
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n    \"user\": {\n      \"id\": \"user-123\",\n      \"email\": \"admin@yourcompany.com\",\n      \"role\": \"merchant\",\n      \"merchantId\": \"merchant-456\"\n    }\n  }\n}"
            }
          ]
        },
        {
          "name": "Refresh Token",
          "request": {
            "method": "POST",
            "header": [
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"refreshToken\": \"your-refresh-token\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/refreshToken",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "refreshToken"]
            }
          }
        },
        {
          "name": "Get Client Token (SDK)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/client-token",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "client-token"]
            },
            "description": "Generate a short-lived client token for the AuxCORE hosted fields SDK."
          }
        },
        {
          "name": "Validate a client token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"token\": \"{{clientToken}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/validate-client-token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "validate-client-token"
              ]
            },
            "description": "Validate a client token.\n\nDocumentation: `docs/api/getting-started/authentication.md`.\nEndpoint: `POST /api/v1/public/validate-client-token`."
          }
        }
      ]
    },
    {
      "name": "Transactions",
      "description": "Process sales, voids, refunds, and token transactions via the Public API",
      "item": [
        {
          "name": "Process Sale (Card)",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "pm.test('Status 200', () => pm.response.to.have.status(200));",
                  "const json = pm.response.json();",
                  "if (json.data && (json.data.TransactionId || json.data.transactionId)) {",
                  "  const txnId = json.data.TransactionId || json.data.transactionId;",
                  "  pm.collectionVariables.set('testTransactionId', txnId);",
                  "  console.log('Transaction ID saved:', txnId);",
                  "  pm.test('Status is 1 (Approved)', () => pm.expect(json.data.Status).to.equal('1'));",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"Amount\": 10.00,\n  \"SuggestedMode\": \"Card\",\n  \"pciToken\": \"{{testToken}}\",\n  \"BillingCustomerName\": \"John Doe\",\n  \"BillingEmail\": \"john@example.com\",\n  \"BillingAddress\": \"123 Main St\",\n  \"BillingCity\": \"New York\",\n  \"BillingState\": \"NY\",\n  \"BillingPostalCode\": \"10001\",\n  \"OrderId\": \"ORD-TEST-001\",\n  \"Description\": \"Postman test transaction\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/transaction",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "transaction"]
            },
            "description": "Process a card sale with a PCI token (pci_tok_…) from Tokenize Card or the PCI SDK. Raw CardNumber/CVV is rejected outside development with 400 PCI_SCOPE_VIOLATION. Status '1' = Approved; a decline returns HTTP 402 with Status '9'."
          },
          "response": [
            {
              "name": "200 OK — Approved",
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "body": "{\n  \"status\": \"success\",\n  \"status_code\": 200,\n  \"message\": \"Transaction processed successfully\",\n  \"data\": {\n    \"TransactionId\": \"txn_1234567890abcdef\",\n    \"Status\": \"1\",\n    \"Amount\": 10.00,\n    \"AuthCode\": \"123456\",\n    \"ResponseCode\": \"100\",\n    \"ResponseMessage\": \"Approved\",\n    \"AvsResult\": \"Y\",\n    \"CvvResult\": \"M\",\n    \"ProcessedAt\": \"2026-02-23T14:00:00.000Z\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Process Sale (ACH)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"Amount\": 250.00,\n  \"SuggestedMode\": \"ACH\",\n  \"account_number\": \"1234567890\",\n  \"routing_number\": \"021000021\",\n  \"account_type\": \"checking\",\n  \"BillingCustomerName\": \"John Doe\",\n  \"BillingEmail\": \"john@example.com\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/transaction",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "transaction"]
            },
            "description": "Process an ACH (bank account) payment."
          }
        },
        {
          "name": "Token Transaction",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"amount\": 125.00,\n  \"description\": \"Monthly subscription charge\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/token-transaction",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "token-transaction"]
            }
          }
        },
        {
          "name": "Void Transaction",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/void",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "void"]
            }
          }
        },
        {
          "name": "Refund Transaction (Full)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/refund",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "refund"]
            }
          }
        },
        {
          "name": "Refund Transaction (Partial)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\",\n  \"amount\": 5.00,\n  \"reason\": \"Partial return\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/refund",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "refund"]
            }
          }
        },
        {
          "name": "Get Transaction by ID",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/transaction/{{testTransactionId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "transaction", "{{testTransactionId}}"]
            }
          }
        },
        {
          "name": "List Transactions",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/transaction-list?page=1&limit=20",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "transaction-list"],
              "query": [
                { "key": "page", "value": "1" },
                { "key": "limit", "value": "20" },
                { "key": "startDate", "value": "", "disabled": true },
                { "key": "endDate", "value": "", "disabled": true },
                { "key": "status", "value": "approved", "disabled": true }
              ]
            }
          }
        },
        {
          "name": "Rerun Transaction",
          "request": {
            "description": "Not currently functional: the gateway forwards to a transaction-service route that does not exist, so this returns 404. Submit a new sale instead.",
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/rerun",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "rerun"]
            }
          }
        },
        {
          "name": "Convenience-fee preview before charging",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/fee-preview?amount=100",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "fee-preview"
              ],
              "query": [
                {
                  "key": "amount",
                  "value": "100",
                  "description": "number | Yes | Base amount (> 0) — the same number you send to /transaction, never the fee-inclusive total. baseAmount is an alias",
                  "disabled": false
                },
                {
                  "key": "tipAmount",
                  "value": "0",
                  "description": "number | No | Tip (default 0)",
                  "disabled": true
                },
                {
                  "key": "paymentMethod",
                  "value": "card",
                  "description": "string | No | card (default), ach or cash",
                  "disabled": true
                },
                {
                  "key": "transactionType",
                  "value": "sale",
                  "description": "string | No | sale (default) or auth",
                  "disabled": true
                },
                {
                  "key": "branchId",
                  "value": "{{branchId}}",
                  "description": "string (uuid) | No | Branch-specific schedule",
                  "disabled": true
                }
              ]
            },
            "description": "Convenience-fee preview before charging.\n\nDocumentation: `docs/api/core/fee-preview.md`.\nEndpoint: `GET /api/v1/public/fee-preview`."
          }
        },
        {
          "name": "Charge a stored ACH token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"token\": \"{{testAchToken}}\",\n  \"amount\": 250.0,\n  \"description\": \"Invoice 1042\",\n  \"billingEmail\": \"john.doe@example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/token-transaction-ach",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "token-transaction-ach"
              ]
            },
            "description": "Charge a stored ACH token.\n\nDocumentation: `docs/api/core/transactions.md`.\nEndpoint: `POST /api/v1/public/token-transaction-ach`."
          }
        },
        {
          "name": "Append/query transaction logs",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/transaction-logs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "transaction-logs"
              ]
            },
            "description": "Append/query transaction logs.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/transaction-logs`.\n\nThe Markdown endpoint catalog does not specify a complete request-body schema for this route. Supply the payload required by your integration."
          }
        },
        {
          "name": "Trigger decline notifications",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/send-decline-notifications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "send-decline-notifications"
              ]
            },
            "description": "Trigger decline notifications.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/send-decline-notifications`.\n\nThe Markdown endpoint catalog does not specify a complete request-body schema for this route. Supply the payload required by your integration."
          }
        },
        {
          "name": "Dashboard (Public)",
          "item": [
            {
              "name": "GET /api/v1/public/totalTrasactions/multi/:merchantIds",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/totalTrasactions/multi/{{merchantIds}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "totalTrasactions",
                    "multi",
                    "{{merchantIds}}"
                  ]
                },
                "description": "GET /api/v1/public/totalTrasactions/multi/:merchantIds.\n\nDocumentation: `docs/api/dashboard-summary-multi.md`.\nEndpoint: `GET /api/v1/public/totalTrasactions/multi/:ids`."
              }
            },
            {
              "name": "Total transactions for several users (no key; `X-Tenant-ID`, 300 per 15 min per IP)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/totalTransactions/multi/{{merchantIds}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "totalTransactions",
                    "multi",
                    "{{merchantIds}}"
                  ]
                },
                "description": "Total transactions for several users (no key; `X-Tenant-ID`, 300 per 15 min per IP).\n\nDocumentation: `docs/api/dashboard-summary-multi.md`.\nEndpoint: `GET /api/v1/public/totalTransactions/multi/:ids`."
              }
            },
            {
              "name": "Multi-merchant dashboard summary (API key)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/dashboard/summary/multi",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "dashboard",
                    "summary",
                    "multi"
                  ]
                },
                "description": "Multi-merchant dashboard summary (API key).\n\nDocumentation: `docs/api/dashboard-summary-multi.md`.\nEndpoint: `GET /api/v1/public/dashboard/summary/multi`."
              }
            }
          ]
        },
        {
          "name": "Token Processing",
          "item": [
            {
              "name": "Charge (Sale)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}"
                  },
                  {
                    "key": "X-Forwarded-For",
                    "value": "{{serverEgressIp}}"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{idempotencyKey}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "key",
                      "value": "x-api-key"
                    },
                    {
                      "key": "value",
                      "value": "{{processingApiKey}}"
                    },
                    {
                      "key": "in",
                      "value": "header"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"tokenProvider\": \"vgs\",\n  \"paymentToken\": \"tok_sandbox_abc123\",\n  \"cvvToken\": \"tok_sandbox_cvv_abc123\",\n  \"expiryMonth\": \"12\",\n  \"expiryYear\": \"2028\",\n  \"cardLast4\": \"4242\",\n  \"cardBrand\": \"visa\",\n  \"amount\": 150.0,\n  \"currency\": \"USD\",\n  \"transactionType\": \"sale\",\n  \"externalReferenceId\": \"partner-order-456\",\n  \"orderId\": \"ORD-456\",\n  \"description\": \"Monthly subscription\",\n  \"subMerchant\": {\n    \"id\": \"store-789\",\n    \"name\": \"Acme Store #12\",\n    \"reportingCode\": \"FBOCP\"\n  },\n  \"billingCustomerName\": \"Jane Smith\",\n  \"billingEmail\": \"jane@example.com\",\n  \"billingPhoneNumber\": \"+15551234567\",\n  \"billingAddress\": \"123 Main St\",\n  \"billingCity\": \"Austin\",\n  \"billingState\": \"TX\",\n  \"billingPostalCode\": \"78701\",\n  \"billingCountry\": \"US\",\n  \"ipAddress\": \"{{serverEgressIp}}\",\n  \"userAgent\": \"Mozilla/5.0 ...\",\n  \"returnUrl\": \"https://yourstore.com/checkout/complete\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{processingBaseUrl}}/api/v1/processing/charge",
                  "host": [
                    "{{processingBaseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "processing",
                    "charge"
                  ]
                },
                "description": "Charge (Sale).\n\nDocumentation: `docs/api/partner/TOKEN_PROCESSING_API.md`.\nEndpoint: `POST /api/v1/processing/charge`.\n\nServer-to-server PCI API. Set processingBaseUrl and processingApiKey from the issued credentials. The first X-Forwarded-For hop and body ipAddress must equal your allowlisted server egress IP. Reuse the same Idempotency-Key and body only for a retry."
              },
              "event": [
                {
                  "listen": "prerequest",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (!pm.collectionVariables.get('idempotencyKey')) {",
                      "  pm.collectionVariables.set('idempotencyKey', pm.variables.replaceIn('{{$guid}}'));",
                      "}"
                    ]
                  }
                },
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.transactionId) pm.collectionVariables.set('processingTransactionId', data.transactionId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Get Transaction Status",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}"
                  },
                  {
                    "key": "X-Forwarded-For",
                    "value": "{{serverEgressIp}}"
                  }
                ],
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "key",
                      "value": "x-api-key"
                    },
                    {
                      "key": "value",
                      "value": "{{processingApiKey}}"
                    },
                    {
                      "key": "in",
                      "value": "header"
                    }
                  ]
                },
                "url": {
                  "raw": "{{processingBaseUrl}}/api/v1/processing/transactions/{{processingTransactionId}}",
                  "host": [
                    "{{processingBaseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "processing",
                    "transactions",
                    "{{processingTransactionId}}"
                  ]
                },
                "description": "Get Transaction Status.\n\nDocumentation: `docs/api/partner/TOKEN_PROCESSING_INTEGRATOR_GUIDE.md`.\nEndpoint: `GET /api/v1/processing/transactions/{transactionId}`.\n\nServer-to-server PCI API. Set processingBaseUrl and processingApiKey from the issued credentials. The first X-Forwarded-For hop and body ipAddress must equal your allowlisted server egress IP. Reuse the same Idempotency-Key and body only for a retry."
              }
            },
            {
              "name": "Void Transaction",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}"
                  },
                  {
                    "key": "X-Forwarded-For",
                    "value": "{{serverEgressIp}}"
                  }
                ],
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "key",
                      "value": "x-api-key"
                    },
                    {
                      "key": "value",
                      "value": "{{processingApiKey}}"
                    },
                    {
                      "key": "in",
                      "value": "header"
                    }
                  ]
                },
                "url": {
                  "raw": "{{processingBaseUrl}}/api/v1/processing/transactions/{{processingTransactionId}}/void",
                  "host": [
                    "{{processingBaseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "processing",
                    "transactions",
                    "{{processingTransactionId}}",
                    "void"
                  ]
                },
                "description": "Void Transaction.\n\nDocumentation: `docs/api/partner/TOKEN_PROCESSING_INTEGRATOR_GUIDE.md`.\nEndpoint: `POST /api/v1/processing/transactions/{transactionId}/void`.\n\nServer-to-server PCI API. Set processingBaseUrl and processingApiKey from the issued credentials. The first X-Forwarded-For hop and body ipAddress must equal your allowlisted server egress IP. Reuse the same Idempotency-Key and body only for a retry."
              }
            },
            {
              "name": "Refund Transaction (Partial)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}"
                  },
                  {
                    "key": "X-Forwarded-For",
                    "value": "{{serverEgressIp}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "key",
                      "value": "x-api-key"
                    },
                    {
                      "key": "value",
                      "value": "{{processingApiKey}}"
                    },
                    {
                      "key": "in",
                      "value": "header"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 25\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{processingBaseUrl}}/api/v1/processing/transactions/{{processingTransactionId}}/refund",
                  "host": [
                    "{{processingBaseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "processing",
                    "transactions",
                    "{{processingTransactionId}}",
                    "refund"
                  ]
                },
                "description": "Refund Transaction (Partial).\n\nDocumentation: `docs/api/partner/TOKEN_PROCESSING_INTEGRATOR_GUIDE.md`.\nEndpoint: `POST /api/v1/processing/transactions/{transactionId}/refund`.\n\nServer-to-server PCI API. Set processingBaseUrl and processingApiKey from the issued credentials. The first X-Forwarded-For hop and body ipAddress must equal your allowlisted server egress IP. Reuse the same Idempotency-Key and body only for a retry.\nOmit the amount body for a full refund; the sample amount performs a partial refund."
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Tokenization",
      "item": [
        {
          "name": "Tokenize Card",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "pm.test('Status 200', () => pm.response.to.have.status(200));",
                  "if (pm.response.json().data && pm.response.json().data.token) {",
                  "  pm.collectionVariables.set('testToken', pm.response.json().data.token);",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cardNumber\": \"4111111111111111\",\n  \"expiryMonth\": \"12\",\n  \"expiryYear\": \"2027\",\n  \"cvv\": \"123\",\n  \"cardholderName\": \"John Doe\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/tokenize-card",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "tokenize-card"]
            }
          }
        },
        {
          "name": "Decrypt Token",
          "request": {
            "description": "Development/test only: returns 404 outside development environments.",
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"token\": \"{{testToken}}\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/decrypt-token",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "decrypt-token"]
            }
          }
        },
        {
          "name": "Save Card",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"customerId\": \"{{testCustomerId}}\",\n  \"isDefault\": true,\n  \"label\": \"Personal Visa\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/save-card",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "save-card"]
            },
            "description": "Promote a PCI token to a vaulted card for future charges."
          }
        },
        {
          "name": "Tokenize a bank account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"routingNumber\": \"021000021\",\n  \"accountNumber\": \"123456789\",\n  \"accountType\": \"checking\",\n  \"accountHolderName\": \"John Doe\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/tokenize-ach",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "tokenize-ach"
              ]
            },
            "description": "Tokenize a bank account.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/tokenize-ach`."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code >= 200 && pm.response.code < 300) {",
                  "  const json = pm.response.json();",
                  "  const data = json.data || json;",
                  "  if (data.token || data.tokenId) pm.collectionVariables.set('testAchToken', data.token || data.tokenId);",
                  "}"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Customer Vault",
      "item": [
        {
          "name": "List Customers",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customers?page=1&limit=20",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "customers"],
              "query": [
                { "key": "page", "value": "1" },
                { "key": "limit", "value": "20" },
                { "key": "search", "value": "", "disabled": true }
              ]
            }
          }
        },
        {
          "name": "Create Customer",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "pm.test('Status 200 or 201', () => pm.expect([200,201]).to.include(pm.response.code));",
                  "const json = pm.response.json();",
                  "if (json.data && (json.data.id || json.data.customerId)) {",
                  "  pm.collectionVariables.set('testCustomerId', json.data.id || json.data.customerId);",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+12125551234\",\n  \"address\": \"123 Main Street\",\n  \"city\": \"New York\",\n  \"state\": \"NY\",\n  \"postalCode\": \"10001\",\n  \"country\": \"US\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "customer"]
            }
          }
        },
        {
          "name": "Get Customer",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer/{{testCustomerId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "customer", "{{testCustomerId}}"]
            }
          }
        },
        {
          "name": "Update Customer",
          "request": {
            "method": "PUT",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+12125559999\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer/{{testCustomerId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "customer", "{{testCustomerId}}"]
            }
          }
        },
        {
          "name": "Add Payment Method",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"pciToken\": \"{{testToken}}\",\n  \"isDefault\": true\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer/{{testCustomerId}}/payment-method",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "customer", "{{testCustomerId}}", "payment-method"]
            }
          }
        },
        {
          "name": "List Payment Methods",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer/{{testCustomerId}}/payment-methods",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "customer", "{{testCustomerId}}", "payment-methods"]
            }
          }
        },
        {
          "name": "Delete Customer",
          "request": {
            "method": "DELETE",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer/{{testCustomerId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "customer", "{{testCustomerId}}"]
            }
          }
        },
        {
          "name": "Remove a stored payment method",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer/{{testCustomerId}}/payment-method/{{paymentMethodId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "customer",
                "{{testCustomerId}}",
                "payment-method",
                "{{paymentMethodId}}"
              ]
            },
            "description": "Remove a stored payment method.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `DELETE /api/v1/public/customer/:id/payment-method/:pmId`."
          }
        },
        {
          "name": "Charge a stored ACH payment method",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 100\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/customer/{{testCustomerId}}/payment-method/{{paymentMethodId}}/charge-ach",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "customer",
                "{{testCustomerId}}",
                "payment-method",
                "{{paymentMethodId}}",
                "charge-ach"
              ]
            },
            "description": "Charge a stored ACH payment method.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/customer/:id/payment-method/:pmId/charge-ach`."
          }
        }
      ]
    },
    {
      "name": "Recurring Billing",
      "item": [
        {
          "name": "Create Recurring Plan",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerId\": \"{{testCustomerId}}\",\n  \"recurringAmount\": 99.00,\n  \"period\": \"Monthly\",\n  \"recurringDate1\": \"2026-11-01\",\n  \"maximumOccurrence\": 12,\n  \"suggestedMode\": \"CARD\",\n  \"description\": \"Monthly service subscription\",\n  \"children\": [\n    {\n      \"pciToken\": \"{{testToken}}\"\n    }\n  ]\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/recurring",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "recurring"]
            }
          }
        },
        {
          "name": "Payment Plans (Public)",
          "item": [
            {
              "name": "Fetch payment plan details",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-plans/{{planId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-plans",
                    "{{planId}}"
                  ]
                },
                "description": "Fetch payment plan details.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/public/payment-plans/:planId`."
              }
            },
            {
              "name": "Authorize first payment on plan",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"last4\": \"1111\",\n  \"cardBrand\": \"visa\",\n  \"customerName\": \"Jane Smith\",\n  \"customerEmail\": \"jane@example.com\",\n  \"consentAccepted\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-plans/{{planId}}/authorize",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-plans",
                    "{{planId}}",
                    "authorize"
                  ]
                },
                "description": "Authorize first payment on plan.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/public/payment-plans/:planId/authorize`."
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Merchants",
      "item": [
        {
          "name": "Get Merchant Details",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/merchants",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "merchants"]
            }
          }
        },
        {
          "name": "Get Merchant Config",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/getConfig",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "getConfig"]
            }
          }
        },
        {
          "name": "Get Merchant Fees",
          "request": {
            "method": "GET",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/getFee",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "getFee"]
            }
          }
        },
        {
          "name": "Provision Merchant",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"businessName\": \"Acme Coffee Shop\",\n  \"dba\": \"Acme Coffee\",\n  \"email\": \"owner@acmecoffee.com\",\n  \"phone\": \"+12125551234\",\n  \"address\": \"456 Main Street\",\n  \"city\": \"New York\",\n  \"state\": \"NY\",\n  \"postalCode\": \"10001\",\n  \"country\": \"US\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/merchants/provision",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "merchants", "provision"]
            },
            "description": "Provision a new merchant. Requires a tenant-level API key."
          }
        },
        {
          "name": "Payment purposes configured for the merchant's gateways",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/payment-purposes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "payment-purposes"
              ]
            },
            "description": "Payment purposes configured for the merchant's gateways.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `GET /api/v1/public/payment-purposes`."
          }
        },
        {
          "name": "List merchant transactions (alias)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/merchant-transactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "merchant-transactions"
              ]
            },
            "description": "List merchant transactions (alias).\n\nDocumentation: `docs/api/core/transactions.md`.\nEndpoint: `GET /api/v1/public/merchant-transactions`."
          }
        },
        {
          "name": "Which checkout fields to show, and which to require (`?channel=sdk`, `?paymentMethod=card`)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/field-config",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "field-config"
              ],
              "query": [
                {
                  "key": "channel",
                  "value": "sdk",
                  "description": "sdk | Field Config channel. An unknown channel resolves to web; the response says which one was used",
                  "disabled": true
                },
                {
                  "key": "paymentMethod",
                  "value": "card",
                  "description": "— | Echoed back as paymentMethod",
                  "disabled": true
                }
              ]
            },
            "description": "Which checkout fields to show, and which to require (`?channel=sdk`, `?paymentMethod=card`).\n\nDocumentation: `docs/api/getting-started/sdks.md`.\nEndpoint: `GET /api/v1/public/field-config`."
          }
        },
        {
          "name": "Get merchant by ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/merchants/{{merchantId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "merchants",
                "{{merchantId}}"
              ]
            },
            "description": "Get merchant by ID.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/merchants/:merchantId`."
          }
        },
        {
          "name": "Get merchant by ID (pass `?id=merchantId`)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/merchant?id={{merchantId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "merchant"
              ],
              "query": [
                {
                  "key": "id",
                  "value": "{{merchantId}}"
                }
              ]
            },
            "description": "Get merchant by ID (pass `?id=merchantId`).\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/merchant`."
          }
        },
        {
          "name": "Run a KYC verification (60 per hour per IP)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Buyer\",\n  \"street\": \"123 Test St\",\n  \"city\": \"Las Vegas\",\n  \"state\": \"NV\",\n  \"zipCode\": \"89101\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/kyc/verify",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "kyc",
                "verify"
              ]
            },
            "description": "Run a KYC verification (60 per hour per IP).\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/kyc/verify`."
          }
        }
      ]
    },
    {
      "name": "OTP",
      "item": [
        {
          "name": "Generate OTP",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.json().data && pm.response.json().data.otpId) {",
                  "  pm.collectionVariables.set('testOtpId', pm.response.json().data.otpId);",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"email\",\n  \"destination\": \"customer@example.com\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/otp/generate",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "otp", "generate"]
            }
          }
        },
        {
          "name": "Verify OTP",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"otpId\": \"{{testOtpId}}\",\n  \"code\": \"123456\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/otp/verify",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "otp", "verify"]
            }
          }
        },
        {
          "name": "Resend OTP",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"otpId\": \"{{testOtpId}}\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/otp/resend",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "otp", "resend"]
            }
          }
        }
      ]
    },
    {
      "name": "Invoicing",
      "item": [
        {
          "name": "Create Payment Link",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"text_to_pay\",\n  \"amount\": 250.00,\n  \"currency\": \"USD\",\n  \"description\": \"Web design services\",\n  \"orderNumber\": \"INV-001\",\n  \"customerName\": \"John Doe\",\n  \"customerEmail\": \"john@example.com\",\n  \"customerPhone\": \"+12125551234\",\n  \"expiresInDays\": 30,\n  \"sendSMS\": true,\n  \"sendEmail\": false,\n  \"allowPartialPayment\": false,\n  \"waiveConvenienceFee\": false,\n  \"webhookUrl\": \"https://example.com/hooks/payment-link\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/generate-url",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "generate-url"]
            }
          }
        },
        {
          "name": "Shorten URL",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://app.auxcore.net/pay/abc123xyz\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/shorten-url",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "shorten-url"]
            }
          }
        },
        {
          "name": "Text-to-Pay (Shorten URL + SMS)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://app.auxcore.net/pay/abc123xyz\",\n  \"phone\": \"+12125551234\",\n  \"message\": \"Your invoice is ready. Pay securely:\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/shorten-url-sms",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "shorten-url-sms"]
            }
          }
        },
        {
          "name": "Edit Invoice (Full — Draft/Sent/Viewed)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customerName\": \"Acme Corp\",\n  \"customerEmail\": \"ap@acme.com\",\n  \"customerPhone\": \"+15551234567\",\n  \"lineItems\": [\n    { \"id\": \"li_1\", \"description\": \"Consulting\", \"quantity\": 2, \"unitPrice\": 125.00, \"amount\": 250.00 }\n  ],\n  \"taxRate\": 8.5,\n  \"discountAmount\": 0,\n  \"allowPartialPayment\": true,\n  \"dueDate\": \"2026-07-15\",\n  \"expiresInDays\": 14,\n  \"notes\": \"Updated scope\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/edit",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "invoices", "{{invoiceId}}", "edit"]
            },
            "description": "Full edit (Draft/Sent/Viewed): rotates the payment link, sets status to sent, and auto-resends via Email/SMS. Returns the same invoice id with a new linkId, previousLinkId set, and meta.delivery."
          }
        },
        {
          "name": "Edit Invoice (Partial — Due Date + Notes)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"dueDate\": \"2026-07-31\",\n  \"notes\": \"Extended terms\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/edit",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "invoices", "{{invoiceId}}", "edit"]
            },
            "description": "Partial invoice: due date + notes only, in place. Link and expiry unchanged, no resend. Any amount-affecting field returns 400."
          }
        },
        {
          "name": "Generate receipt PDF",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/receipt-pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "receipt-pdf"
              ]
            },
            "description": "Generate receipt PDF.\n\nDocumentation: `docs/api/receipts/receipts.md`.\nEndpoint: `POST /api/v1/public/receipt-pdf`."
          }
        },
        {
          "name": "Create payment link (REST alias of generate-url)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"text_to_pay\",\n  \"merchantId\": \"{{merchantId}}\",\n  \"amount\": 100,\n  \"currency\": \"USD\",\n  \"description\": \"Invoice payment\",\n  \"customerName\": \"John Doe\",\n  \"customerEmail\": \"john@example.com\",\n  \"customerPhone\": \"+15551234567\",\n  \"expiresInDays\": 30\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/payment-links",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "payment-links"
              ]
            },
            "description": "Create payment link (REST alias of generate-url).\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links`."
          }
        },
        {
          "name": "Create payment link and text customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-Merchant-ID",
                "value": "{{merchantId}}",
                "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                "disabled": false
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/shorten-url-payment-sms",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "public",
                "shorten-url-payment-sms"
              ]
            },
            "description": "Create payment link and text customer.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/shorten-url-payment-sms`.\n\nThe Markdown endpoint catalog does not specify a complete request-body schema for this route. Supply the payload required by your integration."
          }
        },
        {
          "name": "Payment Links (Public)",
          "item": [
            {
              "name": "Fetch hosted payment link",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}"
                  ]
                },
                "description": "Fetch hosted payment link.\n\nDocumentation: `docs/api/getting-started/authentication.md`.\nEndpoint: `GET /api/v1/public/payment-links/:linkId`."
              }
            },
            {
              "name": "Pay via card on payment link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"amount\": 100,\n  \"email\": \"john@example.com\",\n  \"customerName\": \"John Doe\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/pay",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "pay"
                  ]
                },
                "description": "Pay via card on payment link.\n\nDocumentation: `docs/api/getting-started/authentication.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/pay`."
              }
            },
            {
              "name": "Pay via ACH on payment link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"accountHolderName\": \"John Doe\",\n  \"routingNumber\": \"021000021\",\n  \"accountNumber\": \"123456789\",\n  \"accountType\": \"checking\",\n  \"customerType\": \"personal\",\n  \"email\": \"john@example.com\",\n  \"phone\": \"+15551234567\",\n  \"consentAccepted\": true,\n  \"eSignature\": \"John Doe\",\n  \"amount\": 100\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/pay-ach",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "pay-ach"
                  ]
                },
                "description": "Pay via ACH on payment link.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/pay-ach`."
              }
            },
            {
              "name": "Pay via crypto (CoinVoyage) on payment link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 100,\n  \"email\": \"john@example.com\",\n  \"customerName\": \"John Doe\",\n  \"tipAmount\": 0\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/pay-crypto",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "pay-crypto"
                  ]
                },
                "description": "Pay via crypto (CoinVoyage) on payment link.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/pay-crypto`."
              }
            },
            {
              "name": "Apple Pay merchant session",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"validationURL\": \"{{applePayValidationUrl}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/apple-pay-session",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "apple-pay-session"
                  ]
                },
                "description": "Apple Pay merchant session.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/apple-pay-session`."
              }
            },
            {
              "name": "Convenience fee preview",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/fee-preview?amount=100",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "fee-preview"
                  ],
                  "query": [
                    {
                      "key": "amount",
                      "value": "100"
                    },
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "disabled": true
                    }
                  ]
                },
                "description": "Convenience fee preview.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/payment-links/:linkId/fee-preview`."
              }
            },
            {
              "name": "Saved-card setup metadata",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/setup-info",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "setup-info"
                  ]
                },
                "description": "Saved-card setup metadata.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/payment-links/:linkId/setup-info`."
              }
            },
            {
              "name": "Save card on payment link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"cardLast4\": \"4242\",\n  \"cardBrand\": \"visa\",\n  \"customerName\": \"John Doe\",\n  \"customerEmail\": \"john@example.com\",\n  \"consentAccepted\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/setup",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "setup"
                  ]
                },
                "description": "Save card on payment link.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/setup`."
              }
            },
            {
              "name": "OTP for saved-card pay",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"john@example.com\",\n  \"channel\": \"email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/saved-card/request-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "saved-card",
                    "request-otp"
                  ]
                },
                "description": "OTP for saved-card pay.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/saved-card/request-otp`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.sessionId) pm.collectionVariables.set('savedCardSessionId', data.sessionId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Verify saved-card OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sessionId\": \"{{savedCardSessionId}}\",\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/saved-card/verify-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "saved-card",
                    "verify-otp"
                  ]
                },
                "description": "Verify saved-card OTP.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/saved-card/verify-otp`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.verificationToken) pm.collectionVariables.set('verificationToken', data.verificationToken);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Resend saved-card OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sessionId\": \"{{savedCardSessionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/saved-card/resend-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "saved-card",
                    "resend-otp"
                  ]
                },
                "description": "Resend saved-card OTP.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/saved-card/resend-otp`."
              }
            },
            {
              "name": "Charge saved card",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"verificationToken\": \"{{verificationToken}}\",\n  \"paymentMethodId\": \"{{paymentMethodId}}\",\n  \"amount\": 100\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/pay-with-saved-card",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "pay-with-saved-card"
                  ]
                },
                "description": "Charge saved card.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/pay-with-saved-card`."
              }
            },
            {
              "name": "Set default saved card",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"verificationToken\": \"{{verificationToken}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/saved-card/{{paymentMethodId}}/set-default",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "saved-card",
                    "{{paymentMethodId}}",
                    "set-default"
                  ]
                },
                "description": "Set default saved card.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `PUT /api/v1/public/payment-links/:linkId/saved-card/:paymentMethodId/set-default`."
              }
            },
            {
              "name": "Remove saved card",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"verificationToken\": \"{{verificationToken}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/saved-card/{{paymentMethodId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "saved-card",
                    "{{paymentMethodId}}"
                  ]
                },
                "description": "Remove saved card.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `DELETE /api/v1/public/payment-links/:linkId/saved-card/:paymentMethodId`."
              }
            },
            {
              "name": "Email payment link receipt",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"email\",\n  \"recipient\": \"john@example.com\",\n  \"transactionId\": \"{{testTransactionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/payment-links/{{linkId}}/send-receipt",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "payment-links",
                    "{{linkId}}",
                    "send-receipt"
                  ]
                },
                "description": "Email payment link receipt.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/payment-links/:linkId/send-receipt`."
              }
            }
          ]
        },
        {
          "name": "Invoice Payments (Public)",
          "item": [
            {
              "name": "Fetch public invoice by link ID",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/link/{{linkId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "link",
                    "{{linkId}}"
                  ]
                },
                "description": "Fetch public invoice by link ID.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `GET /api/v1/public/invoices/link/:linkId`."
              }
            },
            {
              "name": "Pay an invoice link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"amount\": 100,\n  \"email\": \"john@example.com\",\n  \"customerName\": \"John Doe\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/pay",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "pay"
                  ]
                },
                "description": "Pay an invoice link.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/public/invoices/:linkId/pay`."
              }
            },
            {
              "name": "Pay an invoice link by ACH",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"accountHolderName\": \"John Doe\",\n  \"routingNumber\": \"021000021\",\n  \"accountNumber\": \"123456789\",\n  \"accountType\": \"checking\",\n  \"customerType\": \"personal\",\n  \"email\": \"john@example.com\",\n  \"phone\": \"+15551234567\",\n  \"consentAccepted\": true,\n  \"eSignature\": \"John Doe\",\n  \"amount\": 100\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/pay-ach",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "pay-ach"
                  ]
                },
                "description": "Pay an invoice link by ACH.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/public/invoices/:linkId/pay-ach`."
              }
            },
            {
              "name": "Email or text a receipt for an invoice payment",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"email\",\n  \"recipient\": \"john@example.com\",\n  \"transactionId\": \"{{testTransactionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/send-receipt",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "send-receipt"
                  ]
                },
                "description": "Email or text a receipt for an invoice payment.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/public/invoices/:linkId/send-receipt`."
              }
            },
            {
              "name": "Set the date of the next installment",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"nextPaymentDate\": \"2026-11-01\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/next-payment",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "next-payment"
                  ]
                },
                "description": "Set the date of the next installment.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `PATCH /api/v1/public/invoices/:linkId/next-payment`."
              }
            },
            {
              "name": "OTP for saved-card pay",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"john@example.com\",\n  \"channel\": \"email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/saved-card/request-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "saved-card",
                    "request-otp"
                  ]
                },
                "description": "OTP for saved-card pay.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/public/invoices/:linkId/saved-card/request-otp`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.sessionId) pm.collectionVariables.set('savedCardSessionId', data.sessionId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Verify the OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sessionId\": \"{{savedCardSessionId}}\",\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/saved-card/verify-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "saved-card",
                    "verify-otp"
                  ]
                },
                "description": "Verify the OTP.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/public/invoices/:linkId/saved-card/verify-otp`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.verificationToken) pm.collectionVariables.set('verificationToken', data.verificationToken);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Resend the OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sessionId\": \"{{savedCardSessionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/saved-card/resend-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "saved-card",
                    "resend-otp"
                  ]
                },
                "description": "Resend the OTP.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/public/invoices/:linkId/saved-card/resend-otp`."
              }
            },
            {
              "name": "Charge a saved card on an invoice",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"verificationToken\": \"{{verificationToken}}\",\n  \"paymentMethodId\": \"{{paymentMethodId}}\",\n  \"amount\": 100\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/pay-with-saved-card",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "pay-with-saved-card"
                  ]
                },
                "description": "Charge a saved card on an invoice.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/public/invoices/:linkId/pay-with-saved-card`."
              }
            },
            {
              "name": "Set default saved card",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"verificationToken\": \"{{verificationToken}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/saved-card/{{paymentMethodId}}/set-default",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "saved-card",
                    "{{paymentMethodId}}",
                    "set-default"
                  ]
                },
                "description": "Set default saved card.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `PUT /api/v1/public/invoices/:linkId/saved-card/:paymentMethodId/set-default`."
              }
            },
            {
              "name": "Remove saved card",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"verificationToken\": \"{{verificationToken}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{linkId}}/saved-card/{{paymentMethodId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{linkId}}",
                    "saved-card",
                    "{{paymentMethodId}}"
                  ]
                },
                "description": "Remove saved card.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `DELETE /api/v1/public/invoices/:linkId/saved-card/:paymentMethodId`."
              }
            },
            {
              "name": "Fee preview for invoice link",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/link/{{linkId}}/fee-preview?amount=100",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "link",
                    "{{linkId}}",
                    "fee-preview"
                  ],
                  "query": [
                    {
                      "key": "amount",
                      "value": "100"
                    },
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "disabled": true
                    }
                  ]
                },
                "description": "Fee preview for invoice link.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `GET /api/v1/public/invoices/link/:linkId/fee-preview`."
              }
            },
            {
              "name": "Fetch invoice by internal ID",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/invoices/{{invoiceId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "invoices",
                    "{{invoiceId}}"
                  ]
                },
                "description": "Fetch invoice by internal ID.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/invoices/:id`."
              }
            }
          ]
        }
      ]
    },
    {
      "name": "AuxCORE SDK",
      "description": "API v2.0 AuxCORE SDK routes use the official /api/v1/auxvault/* namespace. The namespace root has no handler. Current auxVault.js hosted-fields payments use /api/v1/public/* with pciToken. Use server-side x-api-key on /auxvault; SDK public keys are rejected there.",
      "item": [
        {
          "name": "Hosted Fields (Public API)",
          "description": "Current SDK REST contract. Inherits x-api-key={{apiKey}}. SDK embed keys may require an allowed X-Merchant-Origin; tenant-scoped / ERP keys require X-Merchant-ID. Obtain a fresh PCI token from hosted fields before each payment.",
          "item": [
            {
              "name": "[SDK] Process Sale",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "X-Merchant-Origin",
                    "value": "{{merchantOrigin}}",
                    "description": "Enable for an SDK embed key with allowed origins; use an allowed website origin.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"Amount\": 100,\n  \"pciToken\": \"{{testToken}}\",\n  \"BillingCustomerName\": \"John Doe\",\n  \"BillingEmail\": \"john@example.com\",\n  \"BillingAddress\": \"123 Main St\",\n  \"BillingCity\": \"New York\",\n  \"BillingState\": \"NY\",\n  \"BillingPostalCode\": \"10001\",\n  \"SuggestedMode\": \"Card\",\n  \"TransactionType\": \"sale\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/transaction",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "transaction"
                  ]
                },
                "description": "Current auxVault.js payment endpoint. Supply a fresh pci_tok_ token from PCI hosted fields in testToken. TransactionType \"sale\" or \"1\" selects /transactions/sale. For SDK keys with allowed origins, enable X-Merchant-Origin. For tenant-scoped / ERP keys, enable X-Merchant-ID. See docs/api/getting-started/sdks.md."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const json = pm.response.json();",
                      "const id = json.data && json.data.TransactionId;",
                      "if (json.success && id) pm.collectionVariables.set(\"testTransactionId\", id);"
                    ]
                  }
                }
              ]
            },
            {
              "name": "[SDK] Auth Only",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "X-Merchant-Origin",
                    "value": "{{merchantOrigin}}",
                    "description": "Enable for an SDK embed key with allowed origins; use an allowed website origin.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"Amount\": 100,\n  \"TransactionType\": \"auth\",\n  \"BillingCustomerName\": \"John Doe\",\n  \"pciToken\": \"{{testToken}}\",\n  \"SuggestedMode\": \"Card\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/transaction",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "transaction"
                  ]
                },
                "description": "Current auxVault.js payment endpoint. Supply a fresh pci_tok_ token from PCI hosted fields in testToken. Reserves funds without capture; TransactionType \"auth\" or \"2\" selects /transactions/auth. Use API (v2.0) / Capture or Admin API to capture later. For SDK keys with allowed origins, enable X-Merchant-Origin. For tenant-scoped / ERP keys, enable X-Merchant-ID. See docs/api/getting-started/sdks.md."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const json = pm.response.json();",
                      "const id = json.data && json.data.TransactionId;",
                      "if (json.success && id) pm.collectionVariables.set(\"testTransactionId\", id);"
                    ]
                  }
                }
              ]
            },
            {
              "name": "[SDK] Get Key Info",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "X-Merchant-Origin",
                    "value": "{{merchantOrigin}}",
                    "description": "Enable for an SDK embed key with allowed origins; use an allowed website origin.",
                    "disabled": true
                  }
                ],
                "description": "SDK initialization: key scope, merchant, tenant, PCI server URL and public encryption key.",
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/key-info",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "key-info"
                  ]
                }
              }
            },
            {
              "name": "[SDK] Get Merchant Config",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "X-Merchant-Origin",
                    "value": "{{merchantOrigin}}",
                    "description": "Enable for an SDK embed key with allowed origins; use an allowed website origin.",
                    "disabled": true
                  }
                ],
                "description": "Merchant checkout configuration loaded by auxVault.js.",
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/getConfig",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "getConfig"
                  ]
                }
              }
            },
            {
              "name": "[SDK] Get Field Config",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "X-Merchant-Origin",
                    "value": "{{merchantOrigin}}",
                    "description": "Enable for an SDK embed key with allowed origins; use an allowed website origin.",
                    "disabled": true
                  }
                ],
                "description": "Show/require fields for the SDK checkout channel.",
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/field-config?channel=sdk&paymentMethod=card",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "field-config"
                  ],
                  "query": [
                    {
                      "key": "channel",
                      "value": "sdk"
                    },
                    {
                      "key": "paymentMethod",
                      "value": "card"
                    }
                  ]
                }
              }
            },
            {
              "name": "[SDK] Preview Fees",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "X-Merchant-Origin",
                    "value": "{{merchantOrigin}}",
                    "description": "Enable for an SDK embed key with allowed origins; use an allowed website origin.",
                    "disabled": true
                  }
                ],
                "description": "Quote fees before payment; amount is the base amount, excluding fees. Use transactionType=auth for an auth quote.",
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/fee-preview?amount=100&tipAmount=0&paymentMethod=card&transactionType=sale",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "fee-preview"
                  ],
                  "query": [
                    {
                      "key": "amount",
                      "value": "100"
                    },
                    {
                      "key": "tipAmount",
                      "value": "0"
                    },
                    {
                      "key": "paymentMethod",
                      "value": "card"
                    },
                    {
                      "key": "transactionType",
                      "value": "sale"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "name": "API (v2.0)",
          "description": "Official API v2.0 namespace: /api/v1/auxvault/*. Use a server-side key in x-api-key; SDK public keys are rejected by gateway auth. Tenant/ERP keys also need X-Merchant-ID. Omit Authorization to avoid conflicting JWT/key validation. Tenant resolves from the API key. These routes currently share the compatibility handler: transaction always calls sale and does not forward PCI tokens. Use Hosted Fields (Public API) for token payments and auth-only. See docs/api/reference/endpoints.md.",
          "item": [
            {
              "name": "[SDK] Process Sale (raw card; development only)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"Amount\": \"100.00\",\n  \"SuggestedMode\": \"Card\",\n  \"CardNumber\": \"4111111111111111\",\n  \"ExpiryDate\": \"12/27\",\n  \"Cvv\": \"123\",\n  \"BillingCustomerName\": \"John Doe\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/transaction",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "transaction"
                  ]
                },
                "description": "PascalCase transaction adapter currently always forwards to /transactions/sale, including TransactionType \"0\". pciToken, PciToken and paymentToken are not forwarded. Raw card data is rejected by the transaction service outside development unless ALLOW_RAW_CARD_DATA=true. Use Hosted Fields (Public API) for token payments and auth-only. This sample is for local development with test cards."
              }
            },
            {
              "name": "[SDK] Tokenize Card",
              "request": {
                "description": "Card-security tokenization accepts raw card data and returns token / data.tokenId (tok_...), not a PCI vault token (pci_tok_...). Saved as sdkCardToken; never overwrites testToken. ExpiryDate accepts MMYY, MM/YY or MM/YYYY; separate ExpiryMonth/ExpiryYear and camelCase aliases also work. The handler has no development-only PCI_SCOPE guard on tokenization; /auxvault requires a server-side API key and rejects SDK public keys at gateway auth. Prefer PCI hosted fields for new card collection.",
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"CardNumber\": \"4111111111111111\",\n  \"ExpiryDate\": \"1227\",\n  \"Cvv\": \"123\",\n  \"BillingCustomerName\": \"John Doe\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/tokenize",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "tokenize"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const json = pm.response.json();",
                      "const token = json.token || (json.data && json.data.tokenId);",
                      "if (json.success && token) pm.collectionVariables.set(\"sdkCardToken\", token);"
                    ]
                  }
                }
              ]
            },
            {
              "name": "[SDK] Query Transaction",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/query/{{testTransactionId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "query",
                    "{{testTransactionId}}"
                  ]
                },
                "description": "Retrieve a transaction by ID. success=true means lookup succeeded; Status is 1 for approved/completed/captured/settled, 2 for pending/processing, and 9 otherwise."
              }
            },
            {
              "name": "[SDK] Capture an authorization",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"TransactionId\": \"{{testTransactionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/capture",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "capture"
                  ]
                },
                "description": "Capture the full authorized amount. Amount is ignored by this PascalCase adapter. Create the authorization through Public API first. See docs/api/core/captures.md."
              }
            },
            {
              "name": "[SDK] Reverse a capture",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"TransactionId\": \"{{testTransactionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/cancel-capture",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "cancel-capture"
                  ]
                },
                "description": "Reverse a capture in the platform record; no gateway call. Transaction must be captured and not assigned to a batch. See docs/api/core/captures.md."
              }
            },
            {
              "name": "[SDK] Refund (Partial)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"TransactionId\": \"{{testTransactionId}}\",\n  \"Amount\": 50.0\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/refund",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "refund"
                  ]
                },
                "description": "Include a positive Amount for a partial refund. Omit Amount for a full refund. See docs/api/core/refunds.md."
              }
            },
            {
              "name": "[SDK] Refund (Full)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"TransactionId\": \"{{testTransactionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/refund",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "refund"
                  ]
                },
                "description": "Full refund: omit Amount. See docs/api/core/refunds.md."
              }
            },
            {
              "name": "[SDK] Void a transaction",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"TransactionId\": \"{{testTransactionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/void",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "void"
                  ]
                },
                "description": "Void a transaction.\n\nDocumentation: `docs/api/core/voids.md`.\nEndpoint: `POST /api/v1/auxvault/void`."
              }
            },
            {
              "name": "[SDK] Record a credit against a transaction (no gateway call)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Enable and set merchantId for tenant-scoped / ERP keys.",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"TransactionId\": \"{{testTransactionId}}\",\n  \"Amount\": \"25.00\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auxvault/credit",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auxvault",
                    "credit"
                  ]
                },
                "description": "Record a credit against a transaction (no gateway call).\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/auxvault/credit`."
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Checkout & Webhooks",
      "description": "Hosted checkout sessions and webhook registration",
      "item": [
        {
          "name": "Create Checkout Session",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 99.99,\n  \"currency\": \"USD\",\n  \"description\": \"Order #1001\",\n  \"successUrl\": \"https://yoursite.com/success\",\n  \"cancelUrl\": \"https://yoursite.com/cancel\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/checkout-session",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "checkout-session"]
            }
          }
        },
        {
          "name": "Register Webhook",
          "request": {
            "method": "POST",
            "header": [
              { "key": "x-api-key", "value": "{{apiKey}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://yoursite.com/webhooks/auxvault\",\n  \"events\": [\"transaction.approved\", \"transaction.declined\"]\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/public/register-webhook",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "public", "register-webhook"]
            }
          }
        },
        {
          "name": "Checkout Sessions",
          "item": [
            {
              "name": "Complete payment for a session",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"paymentMethod\": \"card\",\n  \"pciToken\": \"{{testToken}}\",\n  \"customerName\": \"John Doe\",\n  \"email\": \"john@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/checkout-sessions/{{sessionId}}/pay",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "checkout-sessions",
                    "{{sessionId}}",
                    "pay"
                  ]
                },
                "description": "Complete payment for a session.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/checkout-sessions/:sessionId/pay`."
              }
            },
            {
              "name": "Fetch session details for the hosted page",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/checkout-sessions/{{sessionId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "checkout-sessions",
                    "{{sessionId}}"
                  ]
                },
                "description": "Fetch session details for the hosted page.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/checkout-sessions/:sessionId`."
              }
            },
            {
              "name": "Convenience fee for the session",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/checkout-sessions/{{sessionId}}/fee?paymentMethod=card",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "checkout-sessions",
                    "{{sessionId}}",
                    "fee"
                  ],
                  "query": [
                    {
                      "key": "paymentMethod",
                      "value": "card"
                    }
                  ]
                },
                "description": "Convenience fee for the session.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/checkout-sessions/:sessionId/fee`."
              }
            },
            {
              "name": "Poll session status",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/checkout-sessions/{{sessionId}}/status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "checkout-sessions",
                    "{{sessionId}}",
                    "status"
                  ]
                },
                "description": "Poll session status.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/checkout-sessions/:sessionId/status`."
              }
            },
            {
              "name": "Return URL handler after a redirect",
              "request": {
                "method": "GET",
                "header": [],
                "auth": {
                  "type": "noauth"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/checkout-sessions/{{sessionId}}/return",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "checkout-sessions",
                    "{{sessionId}}",
                    "return"
                  ]
                },
                "description": "Return URL handler after a redirect.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/checkout-sessions/:sessionId/return`.\n\nRedirect return handler: append the signed return parameters supplied by the hosted checkout flow. A session ID alone is not sufficient."
              }
            },
            {
              "name": "Report `payment_cancelled` / `payment_expired` from the hosted page (`event`); fires `session.cancelled` / `session.expired`",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"payment_cancelled\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/checkout-sessions/{{sessionId}}/event",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "checkout-sessions",
                    "{{sessionId}}",
                    "event"
                  ]
                },
                "description": "Report `payment_cancelled` / `payment_expired` from the hosted page (`event`); fires `session.cancelled` / `session.expired`.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/checkout-sessions/:sessionId/event`."
              }
            }
          ]
        },
        {
          "name": "Integrations",
          "item": [
            {
              "name": "WooCommerce plugin health",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/woocommerce-status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "woocommerce-status"
                  ]
                },
                "description": "WooCommerce plugin health.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/public/woocommerce-status`."
              }
            },
            {
              "name": "Process a Shopify transaction",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Merchant-ID",
                    "value": "{{merchantId}}",
                    "description": "Required for tenant-scoped ERP keys; optional for a merchant-scoped key.",
                    "disabled": false
                  },
                  {
                    "key": "shopify-shop-domain",
                    "value": "{{shopifyShopDomain}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/public/shopifyTransaction",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "public",
                    "shopifyTransaction"
                  ]
                },
                "description": "Process a Shopify transaction.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/public/shopifyTransaction`.\n\nThe Markdown endpoint catalog does not specify a complete request-body schema for this route. Supply the payload required by your integration."
              }
            }
          ]
        },
        {
          "name": "Yeastar",
          "item": [
            {
              "name": "Yeastar AI receptionist — transaction lookup (Phase 1)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "key",
                      "value": "X-API-Key"
                    },
                    {
                      "key": "value",
                      "value": "{{yeastarApiKey}}"
                    },
                    {
                      "key": "in",
                      "value": "header"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"card_last4\": \"4242\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/yeastar/v1/transaction/lookup",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "yeastar",
                    "v1",
                    "transaction",
                    "lookup"
                  ]
                },
                "description": "Yeastar AI receptionist — transaction lookup (Phase 1).\n\nDocumentation: `docs/api/yeastar-transaction-lookup.md`.\nEndpoint: `POST /yeastar/v1/transaction/lookup`."
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Admin API",
      "auth": {
        "type": "bearer",
        "bearer": [{ "key": "token", "value": "{{jwtToken}}" }]
      },
      "description": "Dashboard operations — require Authorization: Bearer JWT + X-Tenant-ID",
      "item": [
        {
          "name": "Get Current User",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/auth/me",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "auth", "me"]
            }
          }
        },
        {
          "name": "List API Keys",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/api-keys",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "api-keys"]
            }
          }
        },
        {
          "name": "Create API Key",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"name\": \"ERP Integration Key\",\n  \"permissions\": [\n    \"transactions.read\",\n    \"transactions.write\",\n    \"refunds.write\",\n    \"customers.read\",\n    \"customers.write\",\n    \"reports.read\"\n  ],\n  \"expiresInDays\": 365\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/api-keys",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "api-keys"]
            }
          }
        },
        {
          "name": "List Webhook Endpoints",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhooks/endpoints",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "webhooks", "endpoints"]
            }
          }
        },
        {
          "name": "Get Transactions (Admin)",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/transactions?limit=10",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "transactions"],
              "query": [{ "key": "limit", "value": "10" }]
            }
          }
        },
        {
          "name": "Get Funding Report",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{jwtToken}}" },
              { "key": "X-Tenant-ID", "value": "{{tenantId}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/settlements/funding-report?merchantId={{merchantId}}&dateFrom=2026-09-01&dateTo=2026-09-30",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "settlements", "funding-report"],
              "query": [
                { "key": "merchantId", "value": "{{merchantId}}" },
                { "key": "dateFrom", "value": "2026-09-01" },
                { "key": "dateTo", "value": "2026-09-30" }
              ]
            }
          }
        },
        {
          "name": "Batches",
          "item": [
            {
              "name": "List batches",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches?merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "Admin only; merchant users are always scoped to their own merchant",
                      "disabled": false
                    },
                    {
                      "key": "status",
                      "value": "active",
                      "description": "One of the statuses above",
                      "disabled": true
                    }
                  ]
                },
                "description": "List batches.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches`."
              }
            },
            {
              "name": "Batch detail",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/{{batchId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "{{batchId}}"
                  ]
                },
                "description": "Batch detail.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches/:id`."
              }
            },
            {
              "name": "Transactions in a batch",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/{{batchId}}/transactions",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "{{batchId}}",
                    "transactions"
                  ]
                },
                "description": "Transactions in a batch.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches/:id/transactions`."
              }
            },
            {
              "name": "Export a Batch",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/{{batchId}}/export",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "{{batchId}}",
                    "export"
                  ]
                },
                "description": "Export a Batch.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches/:id/export`."
              }
            },
            {
              "name": "Export the Batch List",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/export",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "export"
                  ]
                },
                "description": "Export the Batch List.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches/export`."
              }
            },
            {
              "name": "Create a Batch",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"scheduledSettleTime\": \"2026-02-24T23:00:00Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches"
                  ]
                },
                "description": "Create a Batch.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `POST /api/v1/batches`."
              }
            },
            {
              "name": "Settle a batch",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/{{batchId}}/settle",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "{{batchId}}",
                    "settle"
                  ]
                },
                "description": "Settle a batch.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `POST /api/v1/batches/:id/settle`."
              }
            },
            {
              "name": "Resubmit a batch",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/{{batchId}}/resubmit",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "{{batchId}}",
                    "resubmit"
                  ]
                },
                "description": "Resubmit a batch.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `POST /api/v1/batches/:id/resubmit`."
              }
            },
            {
              "name": "Auto-settle schedule",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/schedule",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "schedule"
                  ]
                },
                "description": "Auto-settle schedule.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches/schedule`."
              }
            },
            {
              "name": "Auto-settle schedule [POST batches/schedule]",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"settleTime\": \"23:30\",\n  \"settleTimezone\": \"America/Chicago\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/schedule",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "schedule"
                  ]
                },
                "description": "Auto-settle schedule.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `POST /api/v1/batches/schedule`."
              }
            },
            {
              "name": "Settlement Summary",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/settlement-summary",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "settlement-summary"
                  ]
                },
                "description": "Settlement Summary.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches/settlement-summary`."
              }
            },
            {
              "name": "Net Deposits",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/batches/net-deposits",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "batches",
                    "net-deposits"
                  ]
                },
                "description": "Net Deposits.\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `GET /api/v1/batches/net-deposits`."
              }
            }
          ]
        },
        {
          "name": "Settlement",
          "item": [
            {
              "name": "List deposits",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/deposits",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "deposits"
                  ]
                },
                "description": "List deposits.\n\nDocumentation: `docs/api/settlement/reconciliation.md`.\nEndpoint: `GET /api/v1/deposits`."
              }
            },
            {
              "name": "Compare with Deposits",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/deposits/{{depositId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "deposits",
                    "{{depositId}}"
                  ]
                },
                "description": "Compare with Deposits.\n\nDocumentation: `docs/api/settlement/reconciliation.md`.\nEndpoint: `GET /api/v1/deposits/:id`."
              }
            },
            {
              "name": "Export funding report as CSV",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/funding-report/export/csv",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "funding-report",
                    "export",
                    "csv"
                  ]
                },
                "description": "Export funding report as CSV.\n\nDocumentation: `docs/api/settlement/funding-reports.md`.\nEndpoint: `GET /api/v1/settlements/funding-report/export/csv`."
              }
            },
            {
              "name": "Email funding report",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"recipientEmail\": \"accounting@example.com\",\n  \"merchantId\": \"{{merchantId}}\",\n  \"dateFrom\": \"2026-01-01\",\n  \"dateTo\": \"2026-01-31\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/funding-report/email",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "funding-report",
                    "email"
                  ]
                },
                "description": "Email funding report.\n\nDocumentation: `docs/api/settlement/funding-reports.md`.\nEndpoint: `POST /api/v1/settlements/funding-report/email`."
              }
            },
            {
              "name": "Initiate a payout (`merchantId`, `date`, `amount`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"date\": \"2026-02-22\",\n  \"amount\": 5824.75\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/payout",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "payout"
                  ]
                },
                "description": "Initiate a payout (`merchantId`, `date`, `amount`).\n\nDocumentation: `docs/api/advanced/batch-processing.md`.\nEndpoint: `POST /api/v1/settlements/payout`."
              }
            },
            {
              "name": "Schedule change history",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/history/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "history",
                    "{{merchantId}}"
                  ]
                },
                "description": "Schedule change history.\n\nDocumentation: `docs/api/settlement/settlement-schedule.md`.\nEndpoint: `GET /api/v1/settlements/history/:merchantId`."
              }
            },
            {
              "name": "List settlements (`merchantId`, `dateFrom`, `dateTo`, `status`)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements?merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "With it: that merchant's settlements, filtered by the params below. Without it: the tenant's settlements awaiting approval (other filters ignored).",
                      "disabled": false
                    },
                    {
                      "key": "status",
                      "value": "active",
                      "description": "calculating, calculated, reconciling, reconciled, discrepancy, approved, payout_processing, paid, failed",
                      "disabled": true
                    }
                  ]
                },
                "description": "List settlements (`merchantId`, `dateFrom`, `dateTo`, `status`).\n\nDocumentation: `docs/api/settlement/reconciliation.md`.\nEndpoint: `GET /api/v1/settlements`."
              }
            },
            {
              "name": "Settlement detail",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/{{settlementId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "{{settlementId}}"
                  ]
                },
                "description": "Settlement detail.\n\nDocumentation: `docs/api/settlement/reconciliation.md`.\nEndpoint: `GET /api/v1/settlements/:settlementId`."
              }
            },
            {
              "name": "Approve a settlement",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/{{settlementId}}/approve",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "{{settlementId}}",
                    "approve"
                  ]
                },
                "description": "Approve a settlement.\n\nDocumentation: `docs/api/settlement/reconciliation.md`.\nEndpoint: `POST /api/v1/settlements/:settlementId/approve`."
              }
            },
            {
              "name": "Reconcile against the gateway (`gatewayType`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"gatewayType\": \"NMI\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/{{settlementId}}/reconcile",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "{{settlementId}}",
                    "reconcile"
                  ]
                },
                "description": "Reconcile against the gateway (`gatewayType`).\n\nDocumentation: `docs/api/settlement/reconciliation.md`.\nEndpoint: `POST /api/v1/settlements/:settlementId/reconcile`."
              }
            },
            {
              "name": "Get settlement schedule",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/schedule/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "schedule",
                    "{{merchantId}}"
                  ]
                },
                "description": "Get settlement schedule.\n\nDocumentation: `docs/api/settlement/settlement-schedule.md`.\nEndpoint: `GET /api/v1/settlements/schedule/:merchantId`."
              }
            },
            {
              "name": "Create settlement schedule",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"interval\": \"daily\",\n  \"scheduledTime\": \"14:00\",\n  \"timezone\": \"America/New_York\",\n  \"autoSettle\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/schedule",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "schedule"
                  ]
                },
                "description": "Create settlement schedule.\n\nDocumentation: `docs/api/settlement/settlement-schedule.md`.\nEndpoint: `POST /api/v1/settlements/schedule`."
              }
            },
            {
              "name": "Update settlement schedule",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"interval\": \"daily\",\n  \"scheduledTime\": \"09:00\",\n  \"timezone\": \"America/New_York\",\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/schedule/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "schedule",
                    "{{merchantId}}"
                  ]
                },
                "description": "Update settlement schedule.\n\nDocumentation: `docs/api/settlement/settlement-schedule.md`.\nEndpoint: `PUT /api/v1/settlements/schedule/:merchantId`."
              }
            },
            {
              "name": "Delete settlement schedule",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/schedule/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "schedule",
                    "{{merchantId}}"
                  ]
                },
                "description": "Delete settlement schedule.\n\nDocumentation: `docs/api/settlement/settlement-schedule.md`.\nEndpoint: `DELETE /api/v1/settlements/schedule/:merchantId`."
              }
            },
            {
              "name": "Generate a batch payout (`dateFrom`, `dateTo`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"dateFrom\": \"2026-01-01\",\n  \"dateTo\": \"2026-01-31\",\n  \"gatewayType\": \"NMI\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts/generate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts",
                    "generate"
                  ]
                },
                "description": "Generate a batch payout (`dateFrom`, `dateTo`).\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `POST /api/v1/settlements/batch-payouts/generate`."
              }
            },
            {
              "name": "List batch payouts",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts"
                  ]
                },
                "description": "List batch payouts.\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `GET /api/v1/settlements/batch-payouts`."
              }
            },
            {
              "name": "Batch payout detail",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts/{{batchPayoutId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts",
                    "{{batchPayoutId}}"
                  ]
                },
                "description": "Batch payout detail.\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `GET /api/v1/settlements/batch-payouts/:id`."
              }
            },
            {
              "name": "Include / exclude an item",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"isIncluded\": true,\n  \"reason\": \"Include in payout\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts/items/{{itemId}}/inclusion",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts",
                    "items",
                    "{{itemId}}",
                    "inclusion"
                  ]
                },
                "description": "Include / exclude an item.\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `PATCH /api/v1/settlements/batch-payouts/items/:itemId/inclusion`."
              }
            },
            {
              "name": "Approve",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts/{{batchPayoutId}}/approve",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts",
                    "{{batchPayoutId}}",
                    "approve"
                  ]
                },
                "description": "Approve.\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `POST /api/v1/settlements/batch-payouts/:id/approve`."
              }
            },
            {
              "name": "Mark processed",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"externalReference\": \"BANK-FILE-001\",\n  \"notes\": \"Paid through bank file\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts/{{batchPayoutId}}/process",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts",
                    "{{batchPayoutId}}",
                    "process"
                  ]
                },
                "description": "Mark processed.\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `POST /api/v1/settlements/batch-payouts/:id/process`."
              }
            },
            {
              "name": "Cancel",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Merchant request\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts/{{batchPayoutId}}/cancel",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts",
                    "{{batchPayoutId}}",
                    "cancel"
                  ]
                },
                "description": "Cancel.\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `POST /api/v1/settlements/batch-payouts/:id/cancel`."
              }
            },
            {
              "name": "Export as `.xlsx`",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/settlements/batch-payouts/{{batchPayoutId}}/export",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "settlements",
                    "batch-payouts",
                    "{{batchPayoutId}}",
                    "export"
                  ]
                },
                "description": "Export as `.xlsx`.\n\nDocumentation: `docs/api/settlement/batch-payouts.md`.\nEndpoint: `GET /api/v1/settlements/batch-payouts/:id/export`."
              }
            }
          ]
        },
        {
          "name": "Merchants",
          "item": [
            {
              "name": "List merchant gateways",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways"
                  ]
                },
                "description": "List merchant gateways.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/gateways`."
              }
            },
            {
              "name": "Get the Primary Gateway",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways/primary",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways",
                    "primary"
                  ]
                },
                "description": "Get the Primary Gateway.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/gateways/primary`."
              }
            },
            {
              "name": "Gateway Stats",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways/stats",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways",
                    "stats"
                  ]
                },
                "description": "Gateway Stats.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/gateways/stats`."
              }
            },
            {
              "name": "Set gateway priority",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 1\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways/{{gatewayId}}/priority",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways",
                    "{{gatewayId}}",
                    "priority"
                  ]
                },
                "description": "Set gateway priority.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `PATCH /api/v1/merchants/:merchantId/gateways/:id/priority`."
              }
            },
            {
              "name": "Set gateway status",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"INACTIVE\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways/{{gatewayId}}/status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways",
                    "{{gatewayId}}",
                    "status"
                  ]
                },
                "description": "Set gateway status.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `PATCH /api/v1/merchants/:merchantId/gateways/:id/status`."
              }
            },
            {
              "name": "Update gateway (including `routingRules`, AVS/CVV rules, limits)",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"requireCVV\": true,\n  \"cvvRules\": {\n    \"rejectOnMismatch\": true,\n    \"allowedResponses\": [\n      \"M\"\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways/{{gatewayId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways",
                    "{{gatewayId}}"
                  ]
                },
                "description": "Update gateway (including `routingRules`, AVS/CVV rules, limits).\n\nDocumentation: `docs/api/fraud/cvv.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId/gateways/:id`."
              }
            },
            {
              "name": "Initialize the Gateway Switch",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"baseGateway\": {\n    \"name\": \"NMI\"\n  },\n  \"secondaryGateway\": {\n    \"name\": \"TsysSierra\"\n  },\n  \"rotationEnabled\": true,\n  \"rotationStrategy\": \"failover\",\n  \"transactionCountLimit\": 50\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateway-switch/initialize",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateway-switch",
                    "initialize"
                  ]
                },
                "description": "Initialize the Gateway Switch.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/gateway-switch/initialize`."
              }
            },
            {
              "name": "Get Gateway Switch Status",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateway-switch-status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateway-switch-status"
                  ]
                },
                "description": "Get Gateway Switch Status.\n\nDocumentation: `docs/api/advanced/gateway-routing.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/gateway-switch-status`."
              }
            },
            {
              "name": "Get fraud settings",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/fraud-settings",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "fraud-settings"
                  ]
                },
                "description": "Get fraud settings.\n\nDocumentation: `docs/api/fraud/avs.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/fraud-settings`."
              }
            },
            {
              "name": "Update fraud settings",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"enabled\": true,\n  \"avsRejectCodes\": [\n    \"noMatch\",\n    \"partialMatch\"\n  ],\n  \"cvvRejectCodes\": [\n    \"noMatch\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/fraud-settings",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "fraud-settings"
                  ]
                },
                "description": "Update fraud settings.\n\nDocumentation: `docs/api/fraud/avs.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId/fraud-settings`."
              }
            },
            {
              "name": "Get WatchDog volume rules",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/watchdog-rules",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "watchdog-rules"
                  ]
                },
                "description": "Get WatchDog volume rules.\n\nDocumentation: `docs/api/fraud/risk.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/watchdog-rules`."
              }
            },
            {
              "name": "Save WatchDog volume rules",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"perTransactionLimit\": 2000,\n  \"dailyVolumeLimit\": 5000,\n  \"monthlyVolumeLimit\": 100000,\n  \"dailyCountLimit\": 200,\n  \"rerouteOnLimit\": true,\n  \"rerouteToGatewayId\": \"{{gatewayId}}\",\n  \"isActive\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/watchdog-rules",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "watchdog-rules"
                  ]
                },
                "description": "Save WatchDog volume rules.\n\nDocumentation: `docs/api/fraud/risk.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/watchdog-rules`."
              }
            },
            {
              "name": "Get branding",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/branding",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "branding"
                  ]
                },
                "description": "Get branding.\n\nDocumentation: `docs/api/merchants/branding.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/branding`."
              }
            },
            {
              "name": "Update branding",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"logoUrl\": \"https://cdn.example.com/newlogo.png\",\n  \"primaryColor\": \"#ff6600\",\n  \"darkMode\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/branding",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "branding"
                  ]
                },
                "description": "Update branding.\n\nDocumentation: `docs/api/merchants/branding.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId/branding`."
              }
            },
            {
              "name": "Upload Branding with Files",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "logo",
                      "type": "file",
                      "src": [],
                      "disabled": false
                    },
                    {
                      "key": "logoDark",
                      "type": "file",
                      "src": [],
                      "disabled": true
                    },
                    {
                      "key": "favicon",
                      "type": "file",
                      "src": [],
                      "disabled": true
                    },
                    {
                      "key": "settings",
                      "type": "text",
                      "value": "{\"primaryColor\":\"#ff6600\"}",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/branding/upload",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "branding",
                    "upload"
                  ]
                },
                "description": "Upload Branding with Files.\n\nDocumentation: `docs/api/merchants/branding.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/branding/upload`.\n\nSelect the upload file in Postman before sending. Postman sets the multipart Content-Type and boundary."
              }
            },
            {
              "name": "Upload Logo Files",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "logo",
                      "type": "file",
                      "src": [],
                      "disabled": false
                    },
                    {
                      "key": "logoDark",
                      "type": "file",
                      "src": [],
                      "disabled": true
                    },
                    {
                      "key": "favicon",
                      "type": "file",
                      "src": [],
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/logo/upload",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "logo",
                    "upload"
                  ]
                },
                "description": "Upload Logo Files.\n\nDocumentation: `docs/api/merchants/branding.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/logo/upload`.\n\nSelect the upload file in Postman before sending. Postman sets the multipart Content-Type and boundary."
              }
            },
            {
              "name": "Set Logo by URL",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"logoUrl\": \"https://cdn.example.com/logo.png\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/logo",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "logo"
                  ]
                },
                "description": "Set Logo by URL.\n\nDocumentation: `docs/api/merchants/branding.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/logo`."
              }
            },
            {
              "name": "Get Logo",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/logo",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "logo"
                  ]
                },
                "description": "Get Logo.\n\nDocumentation: `docs/api/merchants/branding.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/logo`."
              }
            },
            {
              "name": "Delete Logo",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/logo",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "logo"
                  ]
                },
                "description": "Delete Logo.\n\nDocumentation: `docs/api/merchants/branding.md`.\nEndpoint: `DELETE /api/v1/merchants/:merchantId/logo`."
              }
            },
            {
              "name": "Update merchant",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"companyName\": \"ACME Corporation\",\n  \"timezone\": \"America/Los_Angeles\",\n  \"notificationEmails\": [\n    \"admin@acme.example\",\n    \"billing@acme.example\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}"
                  ]
                },
                "description": "Update merchant.\n\nDocumentation: `docs/api/merchants/settings.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId`."
              }
            },
            {
              "name": "Get merchant details",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}"
                  ]
                },
                "description": "Get merchant details.\n\nDocumentation: `docs/api/merchants/settings.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId`."
              }
            },
            {
              "name": "Get notification preferences",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/notification-preferences",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "notification-preferences"
                  ]
                },
                "description": "Get notification preferences.\n\nDocumentation: `docs/api/merchants/settings.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/notification-preferences`."
              }
            },
            {
              "name": "Update notification preferences",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"transactionAlerts\": {\n    \"email\": true,\n    \"inApp\": false\n  },\n  \"dailySummary\": {\n    \"email\": true,\n    \"deliveryTime\": {\n      \"hour\": 6,\n      \"minute\": 30,\n      \"period\": \"PM\"\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/notification-preferences",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "notification-preferences"
                  ]
                },
                "description": "Update notification preferences.\n\nDocumentation: `docs/api/merchants/settings.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId/notification-preferences`."
              }
            },
            {
              "name": "List team members",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/users",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "users"
                  ]
                },
                "description": "List team members.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/users`."
              }
            },
            {
              "name": "Get virtual terminal settings",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/vt-settings",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "vt-settings"
                  ]
                },
                "description": "Get virtual terminal settings.\n\nDocumentation: `docs/api/merchants/vt-settings.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/vt-settings`."
              }
            },
            {
              "name": "Update virtual terminal settings",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"cvvRequired\": true,\n  \"cardBrandOptions\": [\n    \"visa\",\n    \"mastercard\"\n  ],\n  \"maxTicketAmount\": 5000.0,\n  \"tipActive\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/vt-settings",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "vt-settings"
                  ]
                },
                "description": "Update virtual terminal settings.\n\nDocumentation: `docs/api/merchants/vt-settings.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId/vt-settings`."
              }
            },
            {
              "name": "Checkout field configuration",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/field-config",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "field-config"
                  ],
                  "query": [
                    {
                      "key": "channel",
                      "value": "sdk",
                      "description": "vt | One of the channels above, or all for every channel",
                      "disabled": true
                    },
                    {
                      "key": "paymentMethod",
                      "value": "card",
                      "description": "— | card, ach or cash",
                      "disabled": true
                    }
                  ]
                },
                "description": "Checkout field configuration.\n\nDocumentation: `docs/api/merchants/vt-settings.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/field-config`."
              }
            },
            {
              "name": "Get receipt / reminder / failed-payment email toggles",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/messaging-defaults",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "messaging-defaults"
                  ]
                },
                "description": "Get receipt / reminder / failed-payment email toggles.\n\nDocumentation: `docs/api/recurring/dunning.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/messaging-defaults`."
              }
            },
            {
              "name": "Update them",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"failedPaymentNoticeEnabled\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/messaging-defaults",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "messaging-defaults"
                  ]
                },
                "description": "Update them.\n\nDocumentation: `docs/api/recurring/dunning.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId/messaging-defaults`."
              }
            },
            {
              "name": "Create merchant",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"companyName\": \"Acme Coffee Shop\",\n  \"dbaName\": \"Acme Coffee\",\n  \"contactEmail\": \"owner@example.com\",\n  \"contactFirstName\": \"Sam\",\n  \"contactLastName\": \"Rivera\",\n  \"timezone\": \"America/New_York\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants"
                  ]
                },
                "description": "Create merchant.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/merchants`."
              }
            },
            {
              "name": "List merchants",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants"
                  ]
                },
                "description": "List merchants.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/merchants`."
              }
            },
            {
              "name": "Delete merchant",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}"
                  ]
                },
                "description": "Delete merchant.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `DELETE /api/v1/merchants/:id`."
              }
            },
            {
              "name": "Add gateway",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"gatewayType\": \"NMI\",\n  \"gatewayName\": \"NMI Primary\",\n  \"priority\": 1,\n  \"apiKey\": \"{{gatewayApiKey}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways"
                  ]
                },
                "description": "Add gateway.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/merchants/:id/gateways`."
              }
            },
            {
              "name": "Remove gateway",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/gateways/{{gatewayId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "gateways",
                    "{{gatewayId}}"
                  ]
                },
                "description": "Remove gateway.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `DELETE /api/v1/merchants/:id/gateways/:gwId`."
              }
            },
            {
              "name": "POST /api/v1/merchants/provision",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "key",
                      "value": "x-api-key"
                    },
                    {
                      "key": "value",
                      "value": "{{apiKey}}"
                    },
                    {
                      "key": "in",
                      "value": "header"
                    }
                  ]
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/provision",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "provision"
                  ]
                },
                "description": "POST /api/v1/merchants/provision.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/merchants/provision`.\n\nProvisioning requires a tenant-level key. See the merchant provisioning contract before sending.\n\nThe Markdown endpoint catalog does not specify a complete request-body schema for this route. Supply the payload required by your integration."
              }
            }
          ]
        },
        {
          "name": "Refund Queue",
          "item": [
            {
              "name": "Declined refunds awaiting retry",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/refund-decline-queue?merchantId={{merchantId}}&page=1&limit=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "refund-decline-queue"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "active",
                      "description": "string | Filter by status (see below)",
                      "disabled": true
                    },
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "string | Filter by merchant",
                      "disabled": false
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "integer | Page number (default 1)",
                      "disabled": false
                    },
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "integer | Items per page (default 50)",
                      "disabled": false
                    }
                  ]
                },
                "description": "Declined refunds awaiting retry.\n\nDocumentation: `docs/api/advanced/refund-queue.md`.\nEndpoint: `GET /api/v1/refund-decline-queue`."
              }
            },
            {
              "name": "Retry now",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/refund-decline-queue/{{refundQueueId}}/retry",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "refund-decline-queue",
                    "{{refundQueueId}}",
                    "retry"
                  ]
                },
                "description": "Retry now.\n\nDocumentation: `docs/api/advanced/refund-queue.md`.\nEndpoint: `POST /api/v1/refund-decline-queue/:id/retry`."
              }
            },
            {
              "name": "Resolve (`notes`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"notes\": \"Refunded via check\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/refund-decline-queue/{{refundQueueId}}/resolve",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "refund-decline-queue",
                    "{{refundQueueId}}",
                    "resolve"
                  ]
                },
                "description": "Resolve (`notes`).\n\nDocumentation: `docs/api/advanced/refund-queue.md`.\nEndpoint: `POST /api/v1/refund-decline-queue/:id/resolve`."
              }
            },
            {
              "name": "Cancel (`reason`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Customer request\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/refund-decline-queue/{{refundQueueId}}/cancel",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "refund-decline-queue",
                    "{{refundQueueId}}",
                    "cancel"
                  ]
                },
                "description": "Cancel (`reason`).\n\nDocumentation: `docs/api/advanced/refund-queue.md`.\nEndpoint: `POST /api/v1/refund-decline-queue/:id/cancel`."
              }
            },
            {
              "name": "Run all due retries (nothing schedules this; retries only happen when it or `/:id/retry` is called)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/refund-decline-queue/process-retries",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "refund-decline-queue",
                    "process-retries"
                  ]
                },
                "description": "Run all due retries (nothing schedules this; retries only happen when it or `/:id/retry` is called).\n\nDocumentation: `docs/api/advanced/refund-queue.md`.\nEndpoint: `POST /api/v1/refund-decline-queue/process-retries`."
              }
            }
          ]
        },
        {
          "name": "Webhooks",
          "item": [
            {
              "name": "Update endpoint",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"maxRetries\": 5,\n  \"retryDelaySeconds\": 120\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/endpoints/{{webhookEndpointId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "endpoints",
                    "{{webhookEndpointId}}"
                  ]
                },
                "description": "Update endpoint.\n\nDocumentation: `docs/api/advanced/webhooks-advanced.md`.\nEndpoint: `PATCH /api/v1/webhooks/endpoints/:id`."
              }
            },
            {
              "name": "Rotate the signing secret",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/endpoints/{{webhookEndpointId}}/regenerate-secret",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "endpoints",
                    "{{webhookEndpointId}}",
                    "regenerate-secret"
                  ]
                },
                "description": "Rotate the signing secret.\n\nDocumentation: `docs/api/advanced/webhooks-advanced.md`.\nEndpoint: `POST /api/v1/webhooks/endpoints/:id/regenerate-secret`."
              }
            },
            {
              "name": "Create webhook endpoint",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://your-app.example.com/webhook\",\n  \"description\": \"Order system\",\n  \"events\": [\n    \"transaction.approved\",\n    \"transaction.declined\",\n    \"transaction.refunded\"\n  ],\n  \"maxRetries\": 3,\n  \"retryDelaySeconds\": 60\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/endpoints",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "endpoints"
                  ]
                },
                "description": "Create webhook endpoint.\n\nDocumentation: `docs/api/advanced/webhooks-advanced.md`.\nEndpoint: `POST /api/v1/webhooks/endpoints`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.id) pm.collectionVariables.set('webhookEndpointId', data.id);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Send a `webhook.test` event",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/endpoints/{{webhookEndpointId}}/test",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "endpoints",
                    "{{webhookEndpointId}}",
                    "test"
                  ]
                },
                "description": "Send a `webhook.test` event.\n\nDocumentation: `docs/api/advanced/webhooks-advanced.md`.\nEndpoint: `POST /api/v1/webhooks/endpoints/:id/test`."
              }
            },
            {
              "name": "Delivery attempts (`limit`, `offset`)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/endpoints/{{webhookEndpointId}}/deliveries?limit=20&offset=0",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "endpoints",
                    "{{webhookEndpointId}}",
                    "deliveries"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "50 | Page size",
                      "disabled": false
                    },
                    {
                      "key": "offset",
                      "value": "0",
                      "description": "0 | Rows to skip",
                      "disabled": false
                    }
                  ]
                },
                "description": "Delivery attempts (`limit`, `offset`).\n\nDocumentation: `docs/api/advanced/webhooks-advanced.md`.\nEndpoint: `GET /api/v1/webhooks/endpoints/:id/deliveries`."
              }
            },
            {
              "name": "Retry a delivery",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/deliveries/{{deliveryId}}/retry",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "deliveries",
                    "{{deliveryId}}",
                    "retry"
                  ]
                },
                "description": "Retry a delivery.\n\nDocumentation: `docs/api/advanced/webhooks-advanced.md`.\nEndpoint: `POST /api/v1/webhooks/deliveries/:deliveryId/retry`."
              }
            },
            {
              "name": "Get endpoint details",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/endpoints/{{webhookEndpointId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "endpoints",
                    "{{webhookEndpointId}}"
                  ]
                },
                "description": "Get endpoint details.\n\nDocumentation: `docs/api/getting-started/webhooks.md`.\nEndpoint: `GET /api/v1/webhooks/endpoints/:id`."
              }
            },
            {
              "name": "Delete endpoint",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/webhooks/endpoints/{{webhookEndpointId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "webhooks",
                    "endpoints",
                    "{{webhookEndpointId}}"
                  ]
                },
                "description": "Delete endpoint.\n\nDocumentation: `docs/api/getting-started/webhooks.md`.\nEndpoint: `DELETE /api/v1/webhooks/endpoints/:id`."
              }
            }
          ]
        },
        {
          "name": "Transactions",
          "item": [
            {
              "name": "Capture authorization",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/{{testTransactionId}}/capture",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{testTransactionId}}",
                    "capture"
                  ]
                },
                "description": "Capture authorization.\n\nDocumentation: `docs/api/core/captures.md`.\nEndpoint: `POST /api/v1/transactions/:transactionId/capture`."
              }
            },
            {
              "name": "Cancel a capture",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/{{testTransactionId}}/cancel-capture",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{testTransactionId}}",
                    "cancel-capture"
                  ]
                },
                "description": "Cancel a capture.\n\nDocumentation: `docs/api/core/captures.md`.\nEndpoint: `POST /api/v1/transactions/:transactionId/cancel-capture`."
              }
            },
            {
              "name": "Get transaction details",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/{{testTransactionId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{testTransactionId}}"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "",
                      "description": "string | sale, auth, void, refund, capture, cancel_capture, credit",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "active",
                      "description": "string | pending, approved, declined, settled, voided, refunded, error, reversed (ACH return), processing (ACH in flight)",
                      "disabled": true
                    },
                    {
                      "key": "amount",
                      "value": "100",
                      "description": "string (decimal) | Total charged: baseAmount + tipAmount + taxAmount + convenienceFee. All money fields on a read are decimal strings such as \"153.75\" — parse them before doing arithmetic",
                      "disabled": true
                    },
                    {
                      "key": "paymentMethod",
                      "value": "card",
                      "description": "string | Card, ACH, Cash, GiftCard",
                      "disabled": true
                    },
                    {
                      "key": "requestOrigin",
                      "value": "",
                      "description": "string | Where it came from: vt, api, ipos, amp, woocommerce and others",
                      "disabled": true
                    }
                  ]
                },
                "description": "Get transaction details.\n\nDocumentation: `docs/api/reference/data-models.md`.\nEndpoint: `GET /api/v1/transactions/:id`."
              }
            },
            {
              "name": "Pre-sale cash / credit / ACH prices (POS dual pricing)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": true
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/fee-preview?merchantId={{merchantId}}&baseAmount=100",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "fee-preview"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "UUID | Admin only | Merchant to preview",
                      "disabled": false
                    },
                    {
                      "key": "baseAmount",
                      "value": "100",
                      "description": "number | Yes | Merchandise amount before tip and before lane adjustment",
                      "disabled": false
                    },
                    {
                      "key": "amount",
                      "value": "100",
                      "description": "number | Alias | Same as baseAmount",
                      "disabled": true
                    },
                    {
                      "key": "tipAmount",
                      "value": "0",
                      "description": "number | No | Tip (default 0)",
                      "disabled": true
                    },
                    {
                      "key": "transactionType",
                      "value": "sale",
                      "description": "string | No | sale (default) or auth",
                      "disabled": true
                    },
                    {
                      "key": "branchId",
                      "value": "{{branchId}}",
                      "description": "UUID | No | Branch-specific schedule",
                      "disabled": true
                    },
                    {
                      "key": "configOnly",
                      "value": "",
                      "description": "boolean | No | When true, return display config only (no amount math)",
                      "disabled": true
                    }
                  ]
                },
                "description": "Pre-sale cash / credit / ACH prices (POS dual pricing).\n\nDocumentation: `docs/api/core/fee-preview.md`.\nEndpoint: `GET /api/v1/transactions/fee-preview`."
              }
            },
            {
              "name": "Full refund",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/{{testTransactionId}}/refund",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{testTransactionId}}",
                    "refund"
                  ]
                },
                "description": "Full refund.\n\nDocumentation: `docs/api/core/refunds.md`.\nEndpoint: `POST /api/v1/transactions/:transactionId/refund`."
              }
            },
            {
              "name": "Partial refund",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 50.0\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/{{testTransactionId}}/refund/partial",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{testTransactionId}}",
                    "refund",
                    "partial"
                  ]
                },
                "description": "Partial refund.\n\nDocumentation: `docs/api/core/refunds.md`.\nEndpoint: `POST /api/v1/transactions/:transactionId/refund/partial`."
              }
            },
            {
              "name": "Process sale (card, cash, etc.)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": true
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"amount\": 100,\n  \"currency\": \"USD\",\n  \"paymentMethod\": \"card\",\n  \"pciToken\": \"{{testToken}}\",\n  \"billingCustomerName\": \"John Doe\",\n  \"billingEmail\": \"john@example.com\",\n  \"enhancedData\": {\n    \"source\": \"manual\",\n    \"lines\": [{ \"stableLineId\": \"mobile-line-1\", \"description\": \"Widget\", \"quantity\": \"1\", \"unitPrice\": \"100.00\" }]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/sale",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "sale"
                  ]
                },
                "description": "Process sale (card, cash, etc.). Mobile device calls may optionally send immutable `enhancedData` manual lines or an invoiceId; it is stored locally and never reaches a processor.\n\nDocumentation: `docs/api/core/transactions.md`.\nEndpoint: `POST /api/v1/transactions/sale`."
              }
            },
            {
              "name": "Record a linked credit (no gateway call)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 50.0\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/{{testTransactionId}}/credit",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{testTransactionId}}",
                    "credit"
                  ]
                },
                "description": "Record a linked credit (no gateway call).\n\nDocumentation: `docs/api/core/transactions.md`.\nEndpoint: `POST /api/v1/transactions/:transactionId/credit`."
              }
            },
            {
              "name": "Issue an unlinked credit through the gateway",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"amount\": 100,\n  \"currency\": \"USD\",\n  \"paymentMethod\": \"card\",\n  \"pciToken\": \"{{testToken}}\",\n  \"billingCustomerName\": \"John Doe\",\n  \"billingEmail\": \"john@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/credit",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "credit"
                  ]
                },
                "description": "Issue an unlinked credit through the gateway.\n\nDocumentation: `docs/api/core/transactions.md`.\nEndpoint: `POST /api/v1/transactions/credit`."
              }
            },
            {
              "name": "Record a device payment made outside the API (mobile device token)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": false
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"gatewayTransactionId\": \"85635456265410555120260724032413\",\n  \"paymentMode\": \"IPOS\",\n  \"type\": \"sale\",\n  \"amount\": 108.0,\n  \"baseAmount\": 100.0,\n  \"tipAmount\": 5.0,\n  \"convenienceFee\": 3.0,\n  \"taxAmount\": 0.0,\n  \"currency\": \"USD\",\n  \"cardLast4\": \"4242\",\n  \"cardBrand\": \"Visa\",\n  \"enhancedData\": {\n    \"source\": \"manual\",\n    \"lines\": [{ \"stableLineId\": \"ipos-line-1\", \"description\": \"Widget\", \"quantity\": \"1\", \"unitPrice\": \"100.00\", \"tax\": \"8.00\" }]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/external-payment",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "external-payment"
                  ]
                },
                "description": "Record a device payment made outside the API (mobile device token). Optional immutable `enhancedData` is stored only with the local transaction after the provider result; same-candidate retries are idempotent and different candidates conflict.\n\nDocumentation: `docs/api/core/transactions.md`.\nEndpoint: `POST /api/v1/transactions/external-payment`."
              }
            },
            {
              "name": "Authorize only (capture later)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"amount\": 100,\n  \"currency\": \"USD\",\n  \"paymentMethod\": \"card\",\n  \"pciToken\": \"{{testToken}}\",\n  \"billingCustomerName\": \"John Doe\",\n  \"billingEmail\": \"john@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/auth",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "auth"
                  ]
                },
                "description": "Authorize only (capture later).\n\nDocumentation: `docs/api/core/transactions.md`.\nEndpoint: `POST /api/v1/transactions/auth`."
              }
            },
            {
              "name": "Void transaction",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/{{testTransactionId}}/void",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{testTransactionId}}",
                    "void"
                  ]
                },
                "description": "Void transaction.\n\nDocumentation: `docs/api/core/voids.md`.\nEndpoint: `POST /api/v1/transactions/:transactionId/void`."
              }
            },
            {
              "name": "ACH sale",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"amount\": 100,\n  \"pciAchToken\": \"{{testAchToken}}\",\n  \"accountType\": \"checking\",\n  \"accountHolderName\": \"John Doe\",\n  \"customerType\": \"personal\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/ach-sale",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "ach-sale"
                  ]
                },
                "description": "ACH sale.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/transactions/ach-sale`."
              }
            },
            {
              "name": "Charge saved card / vault token",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"amount\": 100,\n  \"gatewayToken\": \"{{gatewayToken}}\",\n  \"customerId\": \"{{testCustomerId}}\",\n  \"transactionType\": \"sale\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/transactions/token-sale",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "token-sale"
                  ]
                },
                "description": "Charge saved card / vault token.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/transactions/token-sale`."
              }
            }
          ]
        },
        {
          "name": "Virtual Terminal",
          "item": [
            {
              "name": "GET /api/v1/virtual-terminal/fee-preview",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/virtual-terminal/fee-preview?baseAmount=100&merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "virtual-terminal",
                    "fee-preview"
                  ],
                  "query": [
                    {
                      "key": "baseAmount",
                      "value": "100"
                    },
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "disabled": false
                    }
                  ]
                },
                "description": "GET /api/v1/virtual-terminal/fee-preview.\n\nDocumentation: `docs/api/core/fee-preview.md`.\nEndpoint: `GET /api/v1/virtual-terminal/fee-preview`."
              }
            },
            {
              "name": "Get Terminal Preferences",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/virtual-terminal/settings",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "virtual-terminal",
                    "settings"
                  ]
                },
                "description": "Get Terminal Preferences.\n\nDocumentation: `docs/api/merchants/vt-settings.md`.\nEndpoint: `GET /api/v1/virtual-terminal/settings`."
              }
            },
            {
              "name": "Update Terminal Preferences",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"defaultTransactionType\": \"sale\",\n  \"allowSale\": true,\n  \"allowAuth\": true,\n  \"acceptCreditCard\": true,\n  \"acceptACH\": true,\n  \"acceptCash\": true,\n  \"defaultCurrency\": \"USD\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/virtual-terminal/settings",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "virtual-terminal",
                    "settings"
                  ]
                },
                "description": "Update Terminal Preferences.\n\nDocumentation: `docs/api/merchants/vt-settings.md`.\nEndpoint: `PUT /api/v1/virtual-terminal/settings`."
              }
            }
          ]
        },
        {
          "name": "Reports & Analytics",
          "item": [
            {
              "name": "Multi-Merchant Dashboard Summary",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/dashboard/summary/multi?dateFrom={{dateFrom}}&dateTo={{dateTo}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "dashboard",
                    "summary",
                    "multi"
                  ],
                  "query": [
                    {
                      "key": "dateRange",
                      "value": "",
                      "description": "no | this_month | One of the keys below.",
                      "disabled": true
                    },
                    {
                      "key": "dateFrom",
                      "value": "{{dateFrom}}",
                      "description": "conditional | — | Only honored when dateRange=custom. ISO date (YYYY-MM-DD) or datetime.",
                      "disabled": false
                    },
                    {
                      "key": "dateTo",
                      "value": "{{dateTo}}",
                      "description": "conditional | — | Same.",
                      "disabled": false
                    }
                  ]
                },
                "description": "Multi-Merchant Dashboard Summary.\n\nDocumentation: `docs/api/dashboard-summary-multi.md`.\nEndpoint: `GET /api/v1/dashboard/summary/multi`."
              }
            },
            {
              "name": "AuxVault v1-compatible endpoint",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/dashboard/totalTrasactions/multi/{{merchantIds}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "dashboard",
                    "totalTrasactions",
                    "multi",
                    "{{merchantIds}}"
                  ]
                },
                "description": "AuxVault v1-compatible endpoint.\n\nDocumentation: `docs/api/dashboard-summary-multi.md`.\nEndpoint: `GET /api/v1/dashboard/totalTrasactions/multi/:ids`."
              }
            },
            {
              "name": "AuxVault v1-compatible endpoint [GET dashboard/totalTransactions/multi/{{merchantIds}}]",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/dashboard/totalTransactions/multi/{{merchantIds}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "dashboard",
                    "totalTransactions",
                    "multi",
                    "{{merchantIds}}"
                  ]
                },
                "description": "AuxVault v1-compatible endpoint.\n\nDocumentation: `docs/api/dashboard-summary-multi.md`.\nEndpoint: `GET /api/v1/dashboard/totalTransactions/multi/:ids`."
              }
            },
            {
              "name": "AuxVault v1-compatible endpoint [GET vt/totalTrasactions/multi/{{merchantIds}}]",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/vt/totalTrasactions/multi/{{merchantIds}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "vt",
                    "totalTrasactions",
                    "multi",
                    "{{merchantIds}}"
                  ]
                },
                "description": "AuxVault v1-compatible endpoint.\n\nDocumentation: `docs/api/dashboard-summary-multi.md`.\nEndpoint: `GET /api/v1/vt/totalTrasactions/multi/:ids`."
              }
            },
            {
              "name": "Dashboard totals, channel breakdown, period comparison",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/dashboard/summary?merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "dashboard",
                    "summary"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "Optional. Merchant users default to their own merchant; tenant admins omitting it get a tenant-wide summary.",
                      "disabled": false
                    },
                    {
                      "key": "dateRange",
                      "value": "",
                      "description": "today, yesterday, this_week, last_week, last_7_days, last_30_days, this_month (default), last_month, mtd, qtd, ytd, all, custom. Unknown values fall back to this_month.",
                      "disabled": true
                    }
                  ]
                },
                "description": "Dashboard totals, channel breakdown, period comparison.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/dashboard/summary`."
              }
            },
            {
              "name": "Daily summary",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/daily-summary?merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "daily-summary"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "Admins: optional (omit for a tenant-wide aggregate). Merchants: optional, must be their own.",
                      "disabled": false
                    }
                  ]
                },
                "description": "Daily summary.\n\nDocumentation: `docs/api/receipts/transaction-reports.md`.\nEndpoint: `GET /api/v1/reports/daily-summary`."
              }
            },
            {
              "name": "Totals by card brand",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/card-aggregate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "card-aggregate"
                  ]
                },
                "description": "Totals by card brand.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/card-aggregate`."
              }
            },
            {
              "name": "GET /api/v1/reports/tip-report",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/tip-report",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "tip-report"
                  ]
                },
                "description": "GET /api/v1/reports/tip-report.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/tip-report`."
              }
            },
            {
              "name": "GET /api/v1/reports/fees",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/fees",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "fees"
                  ]
                },
                "description": "GET /api/v1/reports/fees.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/fees`."
              }
            },
            {
              "name": "GET /api/v1/reports/settlements/summary",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/settlements/summary",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "settlements",
                    "summary"
                  ]
                },
                "description": "GET /api/v1/reports/settlements/summary.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/settlements/summary`."
              }
            },
            {
              "name": "GET /api/v1/reports/payouts/summary",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/payouts/summary",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "payouts",
                    "summary"
                  ]
                },
                "description": "GET /api/v1/reports/payouts/summary.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/payouts/summary`."
              }
            },
            {
              "name": "GET /api/v1/reports/reserves/:merchantId",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/reserves/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "reserves",
                    "{{merchantId}}"
                  ]
                },
                "description": "GET /api/v1/reports/reserves/:merchantId.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/reserves/:merchantId`."
              }
            },
            {
              "name": "GET /api/v1/reports/merchant-performance/:merchantId",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/merchant-performance/{{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "merchant-performance",
                    "{{merchantId}}"
                  ]
                },
                "description": "GET /api/v1/reports/merchant-performance/:merchantId.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/merchant-performance/:merchantId`."
              }
            },
            {
              "name": "GET /api/v1/reports/discrepancies",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/discrepancies",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "discrepancies"
                  ]
                },
                "description": "GET /api/v1/reports/discrepancies.\n\nDocumentation: `docs/api/receipts/analytics.md`.\nEndpoint: `GET /api/v1/reports/discrepancies`."
              }
            },
            {
              "name": "Transaction report (`dateFrom`, `dateTo`)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/transactions?merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "Admins: filter to one merchant. Merchants: optional, must be their own.",
                      "disabled": false
                    },
                    {
                      "key": "branchId",
                      "value": "{{branchId}}",
                      "description": "Filter to one location.",
                      "disabled": true
                    }
                  ]
                },
                "description": "Transaction report (`dateFrom`, `dateTo`).\n\nDocumentation: `docs/api/receipts/transaction-reports.md`.\nEndpoint: `GET /api/v1/reports/transactions`."
              }
            },
            {
              "name": "Export transactions (CSV)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/export/csv",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "export",
                    "csv"
                  ]
                },
                "description": "Export transactions (CSV).\n\nDocumentation: `docs/api/receipts/transaction-reports.md`.\nEndpoint: `GET /api/v1/reports/export/csv`."
              }
            },
            {
              "name": "Export transactions (Excel)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/export/excel",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "export",
                    "excel"
                  ]
                },
                "description": "Export transactions (Excel).\n\nDocumentation: `docs/api/receipts/transaction-reports.md`.\nEndpoint: `GET /api/v1/reports/export/excel`."
              }
            },
            {
              "name": "Generic export (`format`: `csv` or `json`)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/export?limit=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "export"
                  ],
                  "query": [
                    {
                      "key": "format",
                      "value": "csv",
                      "description": "csv (default) or json.",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "Default 5000.",
                      "disabled": false
                    },
                    {
                      "key": "type",
                      "value": "",
                      "description": "Only changes the download file name; the rows are always transactions.",
                      "disabled": true
                    }
                  ]
                },
                "description": "Generic export (`format`: `csv` or `json`).\n\nDocumentation: `docs/api/receipts/transaction-reports.md`.\nEndpoint: `GET /api/v1/reports/export`."
              }
            },
            {
              "name": "Batch report",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/reports/batches",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reports",
                    "batches"
                  ]
                },
                "description": "Batch report.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/reports/batches`."
              }
            }
          ]
        },
        {
          "name": "Authentication",
          "item": [
            {
              "name": "Login (returns JWT)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"{{loginEmail}}\",\n  \"password\": \"{{loginPassword}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/login",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "login"
                  ]
                },
                "description": "Login (returns JWT).\n\nDocumentation: `docs/api/getting-started/rate-limits.md`.\nEndpoint: `POST /api/v1/auth/login`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.token) pm.collectionVariables.set('jwtToken', data.token);",
                      "  if (data.refreshToken) pm.collectionVariables.set('refreshToken', data.refreshToken);",
                      "  if (data.selectionToken) pm.collectionVariables.set('selectionToken', data.selectionToken);",
                      "  if (data.user && data.user.merchantId) pm.collectionVariables.set('merchantId', data.user && data.user.merchantId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Complete login after the merchant picker — requires the 10-minute `selectionToken` from `/auth/login`",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"selectionToken\": \"{{selectionToken}}\",\n  \"merchantId\": \"{{merchantId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/select-merchant",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "select-merchant"
                  ]
                },
                "description": "Complete login after the merchant picker — requires the 10-minute `selectionToken` from `/auth/login`.\n\nDocumentation: `docs/api/getting-started/authentication.md`.\nEndpoint: `POST /api/v1/auth/select-merchant`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.token) pm.collectionVariables.set('jwtToken', data.token);",
                      "  if (data.refreshToken) pm.collectionVariables.set('refreshToken', data.refreshToken);",
                      "  if (data.selectionToken) pm.collectionVariables.set('selectionToken', data.selectionToken);",
                      "  if (data.user && data.user.merchantId) pm.collectionVariables.set('merchantId', data.user && data.user.merchantId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Merchants the signed-in user can work in, each with `deviceRegistration.hasActiveDevice`",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/my-merchants?includeDeviceStatus=true",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "my-merchants"
                  ],
                  "query": [
                    {
                      "key": "includeDeviceStatus",
                      "value": "true"
                    }
                  ]
                },
                "description": "Merchants the signed-in user can work in, each with `deviceRegistration.hasActiveDevice`.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `GET /api/v1/auth/my-merchants`."
              }
            },
            {
              "name": "Switch the active merchant without logging out; re-issues the JWT scoped to the new merchant",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/switch-merchant",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "switch-merchant"
                  ]
                },
                "description": "Switch the active merchant without logging out; re-issues the JWT scoped to the new merchant.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `POST /api/v1/auth/switch-merchant`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.token) pm.collectionVariables.set('jwtToken', data.token);",
                      "  if (data.refreshToken) pm.collectionVariables.set('refreshToken', data.refreshToken);",
                      "  if (data.selectionToken) pm.collectionVariables.set('selectionToken', data.selectionToken);",
                      "  if (data.user && data.user.merchantId) pm.collectionVariables.set('merchantId', data.user && data.user.merchantId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Refresh JWT — keeps the merchant the session was scoped to",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"refreshToken\": \"{{refreshToken}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/refresh",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "refresh"
                  ]
                },
                "description": "Refresh JWT — keeps the merchant the session was scoped to.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `POST /api/v1/auth/refresh`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.token) pm.collectionVariables.set('jwtToken', data.token);",
                      "  if (data.refreshToken) pm.collectionVariables.set('refreshToken', data.refreshToken);",
                      "  if (data.selectionToken) pm.collectionVariables.set('selectionToken', data.selectionToken);",
                      "  if (data.user && data.user.merchantId) pm.collectionVariables.set('merchantId', data.user && data.user.merchantId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Login alias (what `/public/accesstoken` calls)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"{{loginEmail}}\",\n  \"password\": \"{{loginPassword}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/token",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "token"
                  ]
                },
                "description": "Login alias (what `/public/accesstoken` calls).\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/auth/token`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.token) pm.collectionVariables.set('jwtToken', data.token);",
                      "  if (data.refreshToken) pm.collectionVariables.set('refreshToken', data.refreshToken);",
                      "  if (data.selectionToken) pm.collectionVariables.set('selectionToken', data.selectionToken);",
                      "  if (data.user && data.user.merchantId) pm.collectionVariables.set('merchantId', data.user && data.user.merchantId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Logout and invalidate token",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"refreshToken\": \"{{refreshToken}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/logout",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "logout"
                  ]
                },
                "description": "Logout and invalidate token.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/auth/logout`."
              }
            },
            {
              "name": "Verify 2FA OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"{{userId}}\",\n  \"otpCode\": \"123456\",\n  \"purpose\": \"mfa_login\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/verify-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "verify-otp"
                  ]
                },
                "description": "Verify 2FA OTP.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/auth/verify-otp`."
              }
            },
            {
              "name": "Resend 2FA OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"userId\": \"{{userId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/resend-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "resend-otp"
                  ]
                },
                "description": "Resend 2FA OTP.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/auth/resend-otp`."
              }
            },
            {
              "name": "Send password reset email",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"{{loginEmail}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/forgot-password",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "forgot-password"
                  ]
                },
                "description": "Send password reset email.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/auth/forgot-password`."
              }
            },
            {
              "name": "Reset password",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"token\": \"{{resetPasswordToken}}\",\n  \"newPassword\": \"{{newPassword}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/reset-password",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "reset-password"
                  ]
                },
                "description": "Reset password.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/auth/reset-password`."
              }
            }
          ]
        },
        {
          "name": "Disputes",
          "item": [
            {
              "name": "List disputes",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks?merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "Merchant (required for tenant-level callers)",
                      "disabled": false
                    },
                    {
                      "key": "status",
                      "value": "active",
                      "description": "Legacy single status: open, under_review, won, lost, expired",
                      "disabled": true
                    },
                    {
                      "key": "branchId",
                      "value": "{{branchId}}",
                      "description": "Location filter (all = no filter)",
                      "disabled": true
                    }
                  ]
                },
                "description": "List disputes.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `GET /api/v1/chargebacks`."
              }
            },
            {
              "name": "Dispute detail",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}"
                  ]
                },
                "description": "Dispute detail.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `GET /api/v1/chargebacks/:id`."
              }
            },
            {
              "name": "Dispute Summary",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/summary",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "summary"
                  ]
                },
                "description": "Dispute Summary.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `GET /api/v1/chargebacks/summary`."
              }
            },
            {
              "name": "Create Dispute",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"caseNumber\": \"CB-2026-000123\",\n  \"originalTransactionId\": \"{{testTransactionId}}\",\n  \"transactionAmount\": 120.0,\n  \"disputeAmount\": 120.0,\n  \"reasonCode\": \"13.1\",\n  \"reason\": \"Merchandise/Services Not Received\",\n  \"dueDate\": \"2026-02-15\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks"
                  ]
                },
                "description": "Create Dispute.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `POST /api/v1/chargebacks`."
              }
            },
            {
              "name": "Update Status",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"outcome\": \"merchant_won\",\n  \"auxcoreStatus\": \"closed\",\n  \"note\": \"Issuer reversed the chargeback\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "status"
                  ]
                },
                "description": "Update Status.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `PATCH /api/v1/chargebacks/:id/status`."
              }
            },
            {
              "name": "Submit a response",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"response\": \"Item was delivered on 2026-01-10; tracking and signed proof attached.\",\n  \"documentIds\": [\n    \"{{documentId}}\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/respond",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "respond"
                  ]
                },
                "description": "Submit a response.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `POST /api/v1/chargebacks/:id/respond`."
              }
            },
            {
              "name": "Accept the dispute",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"acceptanceNote\": \"Accept the dispute.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/accept",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "accept"
                  ]
                },
                "description": "Accept the dispute.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `POST /api/v1/chargebacks/:id/accept`."
              }
            },
            {
              "name": "Notes",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": \"Evidence added for review.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/notes",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "notes"
                  ]
                },
                "description": "Notes.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `POST /api/v1/chargebacks/:id/notes`."
              }
            },
            {
              "name": "Upload Evidence Documents",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": [],
                      "disabled": false
                    }
                  ]
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/documents",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "documents"
                  ]
                },
                "description": "Upload Evidence Documents.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `POST /api/v1/chargebacks/:id/documents`.\n\nSelect the upload file in Postman before sending. Postman sets the multipart Content-Type and boundary."
              }
            },
            {
              "name": "List Evidence Documents",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/documents",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "documents"
                  ]
                },
                "description": "List Evidence Documents.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `GET /api/v1/chargebacks/:id/documents`."
              }
            },
            {
              "name": "Download an Evidence Document",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/documents/{{documentId}}/download",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "documents",
                    "{{documentId}}",
                    "download"
                  ]
                },
                "description": "Download an Evidence Document.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `GET /api/v1/chargebacks/:id/documents/:docId/download`."
              }
            },
            {
              "name": "Delete an Evidence Document",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/chargebacks/{{chargebackId}}/documents/{{documentId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chargebacks",
                    "{{chargebackId}}",
                    "documents",
                    "{{documentId}}"
                  ]
                },
                "description": "Delete an Evidence Document.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `DELETE /api/v1/chargebacks/:id/documents/:docId`."
              }
            },
            {
              "name": "Pre-dispute alerts",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/dispute-alerts",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "dispute-alerts"
                  ]
                },
                "description": "Pre-dispute alerts.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `GET /api/v1/dispute-alerts`."
              }
            },
            {
              "name": "Get a Pre-Dispute Alert",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/dispute-alerts/{{disputeAlertId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "dispute-alerts",
                    "{{disputeAlertId}}"
                  ]
                },
                "description": "Get a Pre-Dispute Alert.\n\nDocumentation: `docs/api/fraud/disputes.md`.\nEndpoint: `GET /api/v1/dispute-alerts/:id`."
              }
            }
          ]
        },
        {
          "name": "Risk & Routing",
          "item": [
            {
              "name": "Check Eligibility",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"declineReason\": \"Insufficient funds\",\n  \"declineCode\": \"51\",\n  \"gatewayType\": \"NMI\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/watchdog/check-rerouting",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "watchdog",
                    "check-rerouting"
                  ]
                },
                "description": "Check Eligibility.\n\nDocumentation: `docs/api/fraud/risk.md`.\nEndpoint: `POST /api/v1/watchdog/check-rerouting`."
              }
            },
            {
              "name": "Create Rerouting Session",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"transactionData\": {\n    \"transactionId\": \"{{testTransactionId}}\",\n    \"amount\": 100,\n    \"billingEmail\": \"john@example.com\"\n  },\n  \"declineInfo\": {\n    \"declineReason\": \"Insufficient funds\",\n    \"declineCode\": \"51\",\n    \"gatewayType\": \"NMI\"\n  },\n  \"cardToken\": \"{{testToken}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/watchdog/sessions",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "watchdog",
                    "sessions"
                  ]
                },
                "description": "Create Rerouting Session.\n\nDocumentation: `docs/api/fraud/risk.md`.\nEndpoint: `POST /api/v1/watchdog/sessions`."
              }
            },
            {
              "name": "Verify OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"otpCode\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/watchdog/sessions/{{reroutingSessionId}}/verify-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "watchdog",
                    "sessions",
                    "{{reroutingSessionId}}",
                    "verify-otp"
                  ]
                },
                "description": "Verify OTP.\n\nDocumentation: `docs/api/fraud/risk.md`.\nEndpoint: `POST /api/v1/watchdog/sessions/:id/verify-otp`."
              }
            },
            {
              "name": "Process Rerouting",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/watchdog/sessions/{{reroutingSessionId}}/process-rerouting",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "watchdog",
                    "sessions",
                    "{{reroutingSessionId}}",
                    "process-rerouting"
                  ]
                },
                "description": "Process Rerouting.\n\nDocumentation: `docs/api/fraud/risk.md`.\nEndpoint: `POST /api/v1/watchdog/sessions/:id/process-rerouting`."
              }
            },
            {
              "name": "Convert to Gift Card",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sessionId\": \"{{reroutingSessionId}}\",\n  \"transactionData\": {\n    \"transactionId\": \"{{testTransactionId}}\",\n    \"amount\": 100\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/watchdog/convert-to-gift-card",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "watchdog",
                    "convert-to-gift-card"
                  ]
                },
                "description": "Convert to Gift Card.\n\nDocumentation: `docs/api/fraud/risk.md`.\nEndpoint: `POST /api/v1/watchdog/convert-to-gift-card`."
              }
            }
          ]
        },
        {
          "name": "Mobile & POS",
          "item": [
            {
              "name": "Is the stored device token still usable for this merchant? Answers `200` with `reusable` + `reason`",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/device/session",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "device",
                    "session"
                  ]
                },
                "description": "Is the stored device token still usable for this merchant? Answers `200` with `reusable` + `reason`.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `GET /api/v1/device/session`."
              }
            },
            {
              "name": "Validate gateway config; `REGISTERED` → `ACTIVE`",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/device/test-connection",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "device",
                    "test-connection"
                  ]
                },
                "description": "Validate gateway config; `REGISTERED` → `ACTIVE`.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `POST /api/v1/device/test-connection`."
              }
            },
            {
              "name": "Device configuration",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/device/parameters",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "device",
                    "parameters"
                  ]
                },
                "description": "Device configuration.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `GET /api/v1/device/parameters`."
              }
            },
            {
              "name": "**Unregister Device** — releases it and sets `INACTIVE`. Not user sign-out",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/device/logout",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "device",
                    "logout"
                  ]
                },
                "description": "**Unregister Device** — releases it and sets `INACTIVE`. Not user sign-out.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `POST /api/v1/device/logout`."
              }
            },
            {
              "name": "Pair the app using TPN + pairing code; returns the device token",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"tpn\": \"{{tpn}}\",\n  \"pairingCode\": \"{{pairingCode}}\",\n  \"appVersion\": \"2.1.0\",\n  \"osVersion\": \"14.0\",\n  \"osPlatform\": \"ANDROID\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/device/register",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "device",
                    "register"
                  ]
                },
                "description": "Pair the app using TPN + pairing code; returns the device token.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `POST /api/v1/device/register`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.deviceToken) pm.collectionVariables.set('deviceToken', data.deviceToken);",
                      "  if (data.device && data.device.id) pm.collectionVariables.set('deviceId', data.device && data.device.id);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Current device record (`ACTIVE` only)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/device/me",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "device",
                    "me"
                  ]
                },
                "description": "Current device record (`ACTIVE` only).\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `GET /api/v1/device/me`."
              }
            },
            {
              "name": "Poll `paramVersion` for config changes",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": false
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/device/heartbeat",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "device",
                    "heartbeat"
                  ]
                },
                "description": "Poll `paramVersion` for config changes.\n\nDocumentation: `docs/api/mobile/device-integration.md`.\nEndpoint: `GET /api/v1/device/heartbeat`."
              }
            },
            {
              "name": "Merchant PIN Verification",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "X-Device-Token",
                    "value": "{{deviceToken}}",
                    "disabled": true
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"pin\": \"{{merchantPin}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/verify-pin",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "verify-pin"
                  ]
                },
                "description": "Merchant PIN Verification.\n\nDocumentation: `docs/api/mobile/merchant-pin-verification.md`.\nEndpoint: `POST /api/v1/merchants/verify-pin`."
              }
            }
          ]
        },
        {
          "name": "Recurring Billing",
          "item": [
            {
              "name": "Reset failed counters so the next run retries (does not charge)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/retry-failed",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "retry-failed"
                  ]
                },
                "description": "Reset failed counters so the next run retries (does not charge).\n\nDocumentation: `docs/api/recurring/dunning.md`.\nEndpoint: `POST /api/v1/recurring/:id/retry-failed`."
              }
            },
            {
              "name": "Email a payment-method update link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/send-method-update-link",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "send-method-update-link"
                  ]
                },
                "description": "Email a payment-method update link.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `POST /api/v1/recurring/:id/send-method-update-link`."
              }
            },
            {
              "name": "Payment schedule rows",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/schedule",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "schedule"
                  ]
                },
                "description": "Payment schedule rows.\n\nDocumentation: `docs/api/recurring/billing-cycles.md`.\nEndpoint: `GET /api/v1/recurring/:id/schedule`."
              }
            },
            {
              "name": "Skip next payment",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/skip-next",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "skip-next"
                  ]
                },
                "description": "Skip next payment.\n\nDocumentation: `docs/api/recurring/billing-cycles.md`.\nEndpoint: `POST /api/v1/recurring/:id/skip-next`."
              }
            },
            {
              "name": "Update subscription",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"recurringAmount\": 39.99,\n  \"description\": \"Premium plus\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}"
                  ]
                },
                "description": "Update subscription.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `PUT /api/v1/recurring/:id`."
              }
            },
            {
              "name": "Charge the next payment immediately",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/charge-now",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "charge-now"
                  ]
                },
                "description": "Charge the next payment immediately.\n\nDocumentation: `docs/api/recurring/dunning.md`.\nEndpoint: `POST /api/v1/recurring/:id/charge-now`."
              }
            },
            {
              "name": "Attach a payment method",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"gatewayType\": \"TsysSierra\",\n  \"last4\": \"4242\",\n  \"brand\": \"visa\",\n  \"isDefault\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/link-payment-method",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "link-payment-method"
                  ]
                },
                "description": "Attach a payment method.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `POST /api/v1/recurring/:id/link-payment-method`."
              }
            },
            {
              "name": "Counts and totals",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/overview",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "overview"
                  ]
                },
                "description": "Counts and totals.\n\nDocumentation: `docs/api/recurring/dunning.md`.\nEndpoint: `GET /api/v1/recurring/overview`."
              }
            },
            {
              "name": "Get subscription details",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}"
                  ]
                },
                "description": "Get subscription details.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `GET /api/v1/recurring/:id`."
              }
            },
            {
              "name": "Resume",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/resume",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "resume"
                  ]
                },
                "description": "Resume.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `POST /api/v1/recurring/:id/resume`."
              }
            },
            {
              "name": "Create subscription",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"recurringAmount\": 29.99,\n  \"period\": \"Monthly\",\n  \"recurringDate1\": \"2026-11-01\",\n  \"nextPaymentDate\": \"2026-11-01\",\n  \"maximumOccurrence\": \"12\",\n  \"suggestedMode\": \"CARD\",\n  \"customerId\": \"{{testCustomerId}}\",\n  \"recurringUserName\": \"John Doe\",\n  \"customerEmail\": \"john@example.com\",\n  \"description\": \"Premium membership\",\n  \"requestOrigin\": \"recurring\",\n  \"sendNotifications\": true,\n  \"children\": [\n    {\n      \"pciToken\": \"{{testToken}}\",\n      \"gatewayType\": \"TsysSierra\",\n      \"isDefault\": true\n    }\n  ],\n  \"metadata\": {\n    \"plan\": \"premium\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring"
                  ]
                },
                "description": "Create subscription.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `POST /api/v1/recurring`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.id) pm.collectionVariables.set('recurringId', data.id);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "List subscriptions",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring?page=1&merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "description": "integer | Page number (default 1)",
                      "disabled": false
                    },
                    {
                      "key": "customerId",
                      "value": "{{testCustomerId}}",
                      "description": "uuid | Filter by customer",
                      "disabled": true
                    },
                    {
                      "key": "requestOrigin",
                      "value": "",
                      "description": "string | Filter by one origin",
                      "disabled": true
                    },
                    {
                      "key": "branchId",
                      "value": "{{branchId}}",
                      "description": "uuid | Filter by location",
                      "disabled": true
                    },
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "uuid | Required only when the token carries no merchant",
                      "disabled": false
                    }
                  ]
                },
                "description": "List subscriptions.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `GET /api/v1/recurring`."
              }
            },
            {
              "name": "Pause",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Customer travelling\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/pause",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "pause"
                  ]
                },
                "description": "Pause.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `POST /api/v1/recurring/:id/pause`."
              }
            },
            {
              "name": "Cancel",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Customer request\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/cancel",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "cancel"
                  ]
                },
                "description": "Cancel.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `POST /api/v1/recurring/:id/cancel`."
              }
            },
            {
              "name": "Delete subscription",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}"
                  ]
                },
                "description": "Delete subscription.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `DELETE /api/v1/recurring/:id`."
              }
            },
            {
              "name": "Payment history",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/payment-history",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "payment-history"
                  ]
                },
                "description": "Payment history.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `GET /api/v1/recurring/:id/payment-history`."
              }
            },
            {
              "name": "Change history",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/history",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "history"
                  ]
                },
                "description": "Change history.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `GET /api/v1/recurring/:id/history`."
              }
            },
            {
              "name": "Resend the authorization request",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/recurring/{{recurringId}}/resend-auth",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "recurring",
                    "{{recurringId}}",
                    "resend-auth"
                  ]
                },
                "description": "Resend the authorization request.\n\nDocumentation: `docs/api/recurring/subscriptions.md`.\nEndpoint: `POST /api/v1/recurring/:id/resend-auth`."
              }
            }
          ]
        },
        {
          "name": "Invoicing",
          "item": [
            {
              "name": "Create invoice",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"customerName\": \"John Doe\",\n  \"customerEmail\": \"john@example.com\",\n  \"customerPhone\": \"5551234567\",\n  \"lineItems\": [\n    {\n      \"id\": \"li_1\",\n      \"name\": \"Web Design Services\",\n      \"description\": \"Homepage redesign\",\n      \"quantity\": 10,\n      \"unit\": \"hour\",\n      \"unitPrice\": 150.0,\n      \"taxRate\": 8\n    },\n    {\n      \"id\": \"li_2\",\n      \"name\": \"Hosting (Annual)\",\n      \"quantity\": 1,\n      \"unitPrice\": 299.0,\n      \"discount\": 10,\n      \"discountType\": \"percent\"\n    }\n  ],\n  \"issueDate\": \"2026-10-01\",\n  \"dueDate\": \"2026-10-15\",\n  \"discountAmount\": 29.9,\n  \"allowPartialPayment\": true,\n  \"minimumPaymentType\": \"percent\",\n  \"minimumPaymentValue\": 25,\n  \"notes\": \"Payment due within 15 days\",\n  \"poNumber\": \"PO-456\",\n  \"metadata\": {\n    \"location\": \"Headquarters\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices"
                  ]
                },
                "description": "Create invoice.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `POST /api/v1/invoices`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.id) pm.collectionVariables.set('invoiceId', data.id);",
                      "  if (data.linkId) pm.collectionVariables.set('linkId', data.linkId);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Send invoice (`method`: `email` or `sms`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"method\": \"email\",\n  \"to\": \"customer@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/send",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "send"
                  ]
                },
                "description": "Send invoice (`method`: `email` or `sms`).\n\nDocumentation: `docs/api/invoicing/sending.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/send`."
              }
            },
            {
              "name": "Record an already-collected payment (alias `/record-payment`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 500.0,\n  \"paymentMethod\": \"card\",\n  \"transactionId\": \"{{testTransactionId}}\",\n  \"notes\": \"Collected at the counter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/payment",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "payment"
                  ]
                },
                "description": "Record an already-collected payment (alias `/record-payment`).\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/payment`."
              }
            },
            {
              "name": "Get invoice",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}"
                  ]
                },
                "description": "Get invoice.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `GET /api/v1/invoices/:invoiceId`."
              }
            },
            {
              "name": "Look up an invoice by number or link",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/lookup?invoiceNumber={{invoiceNumber}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "lookup"
                  ],
                  "query": [
                    {
                      "key": "invoiceNumber",
                      "value": "{{invoiceNumber}}"
                    },
                    {
                      "key": "linkId",
                      "value": "{{linkId}}",
                      "disabled": true
                    }
                  ]
                },
                "description": "Look up an invoice by number or link.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `GET /api/v1/invoices/lookup`."
              }
            },
            {
              "name": "List invoices",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices?page=1&limit=20&merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "description": "integer | Page number (default 1)",
                      "disabled": false
                    },
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "integer | Items per page (default 50)",
                      "disabled": false
                    },
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "uuid | Filter by merchant",
                      "disabled": false
                    },
                    {
                      "key": "status",
                      "value": "active",
                      "description": "string | Filter by one status",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "",
                      "description": "string | standard, recurring, text_to_pay, email_to_pay",
                      "disabled": true
                    },
                    {
                      "key": "customerId",
                      "value": "{{testCustomerId}}",
                      "description": "uuid | Filter by Customer Vault id",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "",
                      "description": "string | Matches customer name, email, invoice number or link id; a money value also matches the total",
                      "disabled": true
                    }
                  ]
                },
                "description": "List invoices.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `GET /api/v1/invoices`."
              }
            },
            {
              "name": "Status counts and totals",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/summary",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "summary"
                  ]
                },
                "description": "Status counts and totals.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `GET /api/v1/invoices/summary`."
              }
            },
            {
              "name": "Update invoice",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"notes\": \"Updated invoice notes\",\n  \"dueDate\": \"2026-11-15\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}"
                  ]
                },
                "description": "Update invoice.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `PUT /api/v1/invoices/:invoiceId`."
              }
            },
            {
              "name": "Cancel invoice",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/cancel",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "cancel"
                  ]
                },
                "description": "Cancel invoice.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/cancel`."
              }
            },
            {
              "name": "Delete invoice",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}"
                  ]
                },
                "description": "Delete invoice.\n\nDocumentation: `docs/api/invoicing/invoices.md`.\nEndpoint: `DELETE /api/v1/invoices/:invoiceId`."
              }
            },
            {
              "name": "Get QR code",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/qr-code",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "qr-code"
                  ]
                },
                "description": "Get QR code.\n\nDocumentation: `docs/api/invoicing/sending.md`.\nEndpoint: `GET /api/v1/invoices/:invoiceId/qr-code`."
              }
            },
            {
              "name": "Download PDF",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/pdf",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "pdf"
                  ]
                },
                "description": "Download PDF.\n\nDocumentation: `docs/api/invoicing/sending.md`.\nEndpoint: `GET /api/v1/invoices/:invoiceId/pdf`."
              }
            },
            {
              "name": "Validate a payment amount",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 250.0\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/payment-preflight",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "payment-preflight"
                  ]
                },
                "description": "Validate a payment amount.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/payment-preflight`."
              }
            },
            {
              "name": "Record a cash / check / wire payment",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 500.0,\n  \"paymentMethod\": \"Check\",\n  \"paymentDate\": \"2026-10-01\",\n  \"recordedBy\": \"Jane Doe\",\n  \"reference\": \"CHK-1024\",\n  \"internalNote\": \"Deposited to bank\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/external-payment",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "external-payment"
                  ]
                },
                "description": "Record a cash / check / wire payment.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/external-payment`."
              }
            },
            {
              "name": "Email a payment reminder",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/send-reminder",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "send-reminder"
                  ]
                },
                "description": "Email a payment reminder.\n\nDocumentation: `docs/api/invoicing/sending.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/send-reminder`."
              }
            },
            {
              "name": "Record Payment",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 500.0,\n  \"paymentMethod\": \"card\",\n  \"transactionId\": \"{{testTransactionId}}\",\n  \"notes\": \"Collected at the counter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/record-payment",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "record-payment"
                  ]
                },
                "description": "Record Payment.\n\nDocumentation: `docs/api/invoicing/payments.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/record-payment`."
              }
            },
            {
              "name": "Send by email",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/send-email",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "send-email"
                  ]
                },
                "description": "Send by email.\n\nDocumentation: `docs/api/invoicing/sending.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/send-email`."
              }
            },
            {
              "name": "Send by SMS",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/invoices/{{invoiceId}}/send-sms",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "invoices",
                    "{{invoiceId}}",
                    "send-sms"
                  ]
                },
                "description": "Send by SMS.\n\nDocumentation: `docs/api/invoicing/sending.md`.\nEndpoint: `POST /api/v1/invoices/:invoiceId/send-sms`."
              }
            }
          ]
        },
        {
          "name": "Products & Categories",
          "item": [
            {
              "name": "Product catalog",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products?page=1&limit=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "active",
                      "description": "all | all \\| active \\| inactive",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "",
                      "description": "all | all \\| product \\| service",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "",
                      "description": "— | Case-insensitive partial match on name and description",
                      "disabled": true
                    },
                    {
                      "key": "categoryId",
                      "value": "{{categoryId}}",
                      "description": "— | Only products in this category",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "1 | Page number",
                      "disabled": false
                    },
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "10 | Page size; values above 200 are reduced to 200",
                      "disabled": false
                    }
                  ]
                },
                "description": "Product catalog.\n\nDocumentation: `docs/api/mobile/product-catalog.md`.\nEndpoint: `GET /api/v1/products`."
              }
            },
            {
              "name": "Get one product",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/{{productId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "{{productId}}"
                  ]
                },
                "description": "Get one product.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `GET /api/v1/products/:id`."
              }
            },
            {
              "name": "Create a product",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"product\",\n  \"name\": \"Hardware Kit\",\n  \"price\": 480.5,\n  \"discountValue\": 5,\n  \"discountType\": \"percent\",\n  \"taxRate\": 8.25,\n  \"description\": \"Standard equipment bundle\",\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products"
                  ]
                },
                "description": "Create a product.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `POST /api/v1/products`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.id) pm.collectionVariables.set('productId', data.id);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Update a product",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Hardware Kit (updated)\",\n  \"price\": 480.5\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/{{productId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "{{productId}}"
                  ]
                },
                "description": "Update a product.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `PUT /api/v1/products/:id`."
              }
            },
            {
              "name": "Activate / deactivate",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"inactive\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/{{productId}}/status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "{{productId}}",
                    "status"
                  ]
                },
                "description": "Activate / deactivate.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `PATCH /api/v1/products/:id/status`."
              }
            },
            {
              "name": "Delete a product",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/{{productId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "{{productId}}"
                  ]
                },
                "description": "Delete a product.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `DELETE /api/v1/products/:id`."
              }
            },
            {
              "name": "Bulk delete",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"ids\": [\n    \"{{productId}}\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/bulk",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "bulk"
                  ]
                },
                "description": "Bulk delete.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `DELETE /api/v1/products/bulk`."
              }
            },
            {
              "name": "Product categories",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/product-categories",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "product-categories"
                  ]
                },
                "description": "Product categories.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `GET /api/v1/product-categories`."
              }
            },
            {
              "name": "POST /api/v1/product-categories",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Hardware\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/product-categories",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "product-categories"
                  ]
                },
                "description": "POST /api/v1/product-categories.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `POST /api/v1/product-categories`."
              }
            },
            {
              "name": "PUT /api/v1/product-categories/:categoryId",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Hardware\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/product-categories/{{categoryId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "product-categories",
                    "{{categoryId}}"
                  ]
                },
                "description": "PUT /api/v1/product-categories/:categoryId.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `PUT /api/v1/product-categories/:id`."
              }
            },
            {
              "name": "DELETE /api/v1/product-categories/:categoryId",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/product-categories/{{categoryId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "product-categories",
                    "{{categoryId}}"
                  ]
                },
                "description": "DELETE /api/v1/product-categories/:categoryId.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `DELETE /api/v1/product-categories/:id`."
              }
            },
            {
              "name": "POST /api/v1/product-categories/:categoryId/sub-categories",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Parts\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/product-categories/{{categoryId}}/sub-categories",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "product-categories",
                    "{{categoryId}}",
                    "sub-categories"
                  ]
                },
                "description": "POST /api/v1/product-categories/:categoryId/sub-categories.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `POST /api/v1/product-categories/:id/sub-categories`."
              }
            },
            {
              "name": "PUT /api/v1/product-categories/:categoryId/sub-categories/:subCategoryId",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Parts\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/product-categories/{{categoryId}}/sub-categories/{{subCategoryId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "product-categories",
                    "{{categoryId}}",
                    "sub-categories",
                    "{{subCategoryId}}"
                  ]
                },
                "description": "PUT /api/v1/product-categories/:categoryId/sub-categories/:subCategoryId.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `PUT /api/v1/product-categories/:id/sub-categories/:subId`."
              }
            },
            {
              "name": "DELETE /api/v1/product-categories/:categoryId/sub-categories/:subCategoryId",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/product-categories/{{categoryId}}/sub-categories/{{subCategoryId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "product-categories",
                    "{{categoryId}}",
                    "sub-categories",
                    "{{subCategoryId}}"
                  ]
                },
                "description": "DELETE /api/v1/product-categories/:categoryId/sub-categories/:subCategoryId.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `DELETE /api/v1/product-categories/:id/sub-categories/:subId`."
              }
            },
            {
              "name": "Export",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/export",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "export"
                  ]
                },
                "description": "Export.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `GET /api/v1/products/export`."
              }
            },
            {
              "name": "Import",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/import-template",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "import-template"
                  ]
                },
                "description": "Import.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `GET /api/v1/products/import-template`."
              }
            },
            {
              "name": "Import [POST products/import]",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "file",
                      "type": "file",
                      "src": [],
                      "disabled": false
                    }
                  ]
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/products/import",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "products",
                    "import"
                  ]
                },
                "description": "Import.\n\nDocumentation: `docs/api/invoicing/products.md`.\nEndpoint: `POST /api/v1/products/import`.\n\nSelect the upload file in Postman before sending. Postman sets the multipart Content-Type and boundary."
              }
            }
          ]
        },
        {
          "name": "API Keys",
          "item": [
            {
              "name": "Get API key details",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/api-keys/{{apiKeyId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "api-keys",
                    "{{apiKeyId}}"
                  ]
                },
                "description": "Get API key details.\n\nDocumentation: `docs/api/merchants/api-keys.md`.\nEndpoint: `GET /api/v1/api-keys/:keyId`."
              }
            },
            {
              "name": "Update API key",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Storefront SDK key\",\n  \"allowedOrigins\": [\n    \"https://shop.example.com\",\n    \"https://www.example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/api-keys/{{apiKeyId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "api-keys",
                    "{{apiKeyId}}"
                  ]
                },
                "description": "Update API key.\n\nDocumentation: `docs/api/merchants/api-keys.md`.\nEndpoint: `PATCH /api/v1/api-keys/:keyId`."
              }
            },
            {
              "name": "Regenerate the key (new `plainKey`)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/api-keys/{{apiKeyId}}/regenerate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "api-keys",
                    "{{apiKeyId}}",
                    "regenerate"
                  ]
                },
                "description": "Regenerate the key (new `plainKey`).\n\nDocumentation: `docs/api/merchants/api-keys.md`.\nEndpoint: `POST /api/v1/api-keys/:keyId/regenerate`."
              }
            },
            {
              "name": "Disable key",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/api-keys/{{apiKeyId}}/disable",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "api-keys",
                    "{{apiKeyId}}",
                    "disable"
                  ]
                },
                "description": "Disable key.\n\nDocumentation: `docs/api/merchants/api-keys.md`.\nEndpoint: `POST /api/v1/api-keys/:keyId/disable`."
              }
            },
            {
              "name": "Revoke API key (soft delete)",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/api-keys/{{apiKeyId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "api-keys",
                    "{{apiKeyId}}"
                  ]
                },
                "description": "Revoke API key (soft delete).\n\nDocumentation: `docs/api/merchants/api-keys.md`.\nEndpoint: `DELETE /api/v1/api-keys/:keyId`."
              }
            },
            {
              "name": "Re-enable key",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/api-keys/{{apiKeyId}}/enable",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "api-keys",
                    "{{apiKeyId}}",
                    "enable"
                  ]
                },
                "description": "Re-enable key.\n\nDocumentation: `docs/api/merchants/api-keys.md`.\nEndpoint: `POST /api/v1/api-keys/:keyId/enable`."
              }
            }
          ]
        },
        {
          "name": "Devices & Templates",
          "item": [
            {
              "name": "List devices (`?status=&limit=&offset=`)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices?limit=20&offset=0",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "active",
                      "description": "enum | — | Filter by status: PENDING, REGISTERED, ACTIVE, INACTIVE, SUSPENDED, ARCHIVED",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "number | 50 | Results per page",
                      "disabled": false
                    },
                    {
                      "key": "offset",
                      "value": "0",
                      "description": "number | 0 | Pagination offset",
                      "disabled": false
                    }
                  ]
                },
                "description": "List devices (`?status=&limit=&offset=`).\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/devices`."
              }
            },
            {
              "name": "Create device — server generates TPN + pairing code",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"deviceLabel\": \"Drive-Thru Terminal\",\n  \"manufacturer\": \"ANDROID_PHONE\",\n  \"deviceType\": \"TAP_ON_PHONE\",\n  \"paymentMode\": \"AUXVAULT\",\n  \"merchantGatewayId\": \"{{gatewayId}}\",\n  \"mid\": \"123456789012\",\n  \"terminalId\": \"TID002\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices"
                  ]
                },
                "description": "Create device — server generates TPN + pairing code.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.id) pm.collectionVariables.set('deviceId', data.id);",
                      "  if (data.tpn) pm.collectionVariables.set('tpn', data.tpn);",
                      "  if (data.pairingCode) pm.collectionVariables.set('pairingCode', data.pairingCode);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Get device",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}"
                  ]
                },
                "description": "Get device.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/devices/:deviceId`."
              }
            },
            {
              "name": "Update device (TPN and pairing code are immutable)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"deviceLabel\": \"Updated Label\",\n  \"branchId\": \"{{branchId}}\",\n  \"mid\": \"999999999999\",\n  \"terminalId\": \"TID003\",\n  \"apiKey\": \"new-plaintext-gateway-key\",\n  \"templateId\": \"{{templateId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}"
                  ]
                },
                "description": "Update device (TPN and pairing code are immutable).\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `PATCH /api/v1/merchants/:merchantId/devices/:deviceId`."
              }
            },
            {
              "name": "Change status — any move out of `ACTIVE` revokes the device's sessions",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"ACTIVE\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "status"
                  ]
                },
                "description": "Change status — any move out of `ACTIVE` revokes the device's sessions.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `PATCH /api/v1/merchants/:merchantId/devices/:deviceId/status`."
              }
            },
            {
              "name": "Deprecated alias for archive",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}"
                  ]
                },
                "description": "Deprecated alias for archive.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `DELETE /api/v1/merchants/:merchantId/devices/:deviceId`."
              }
            },
            {
              "name": "Archive (soft delete)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/archive",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "archive"
                  ]
                },
                "description": "Archive (soft delete).\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/:deviceId/archive`."
              }
            },
            {
              "name": "Restore to `INACTIVE`",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/unarchive",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "unarchive"
                  ]
                },
                "description": "Restore to `INACTIVE`.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/:deviceId/unarchive`."
              }
            },
            {
              "name": "Issue a new pairing code; resets device to `PENDING`",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/refresh-pairing-code",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "refresh-pairing-code"
                  ]
                },
                "description": "Issue a new pairing code; resets device to `PENDING`.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/:deviceId/refresh-pairing-code`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.tpn) pm.collectionVariables.set('tpn', data.tpn);",
                      "  if (data.pairingCode) pm.collectionVariables.set('pairingCode', data.pairingCode);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Register Device (Admin)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"tpn\": \"{{tpn}}\",\n  \"pairingCode\": \"{{pairingCode}}\",\n  \"appVersion\": \"2.1.0\",\n  \"osVersion\": \"14.0\",\n  \"osPlatform\": \"ANDROID\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/register",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "register"
                  ]
                },
                "description": "Register Device (Admin).\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/register`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.deviceToken) pm.collectionVariables.set('deviceToken', data.deviceToken);",
                      "  if (data.device && data.device.id) pm.collectionVariables.set('deviceId', data.device && data.device.id);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Test Connection",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/test-connection",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "test-connection"
                  ]
                },
                "description": "Test Connection.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/:deviceId/test-connection`."
              }
            },
            {
              "name": "Device Activity",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/events?limit=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "events"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "20 | Max 50",
                      "disabled": false
                    }
                  ]
                },
                "description": "Device Activity.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/devices/:deviceId/events`."
              }
            },
            {
              "name": "Reveal Serial Number",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/reveal-serial",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "reveal-serial"
                  ]
                },
                "description": "Reveal Serial Number.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/:deviceId/reveal-serial`."
              }
            },
            {
              "name": "Get device parameters",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/parameters",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "parameters"
                  ]
                },
                "description": "Get device parameters.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/devices/:deviceId/parameters`."
              }
            },
            {
              "name": "Update device parameters",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"txnSaleEnabled\": true,\n  \"txnRefundEnabled\": true,\n  \"txnVoidEnabled\": false,\n  \"txnPreauthEnabled\": false,\n  \"pinVoidEnabled\": true,\n  \"pinRefundEnabled\": true,\n  \"payTypeTapToPayEnabled\": true,\n  \"payTypeKeyedInEnabled\": true,\n  \"payTypeQrCodeEnabled\": false,\n  \"payTypePaymentLinkEnabled\": false,\n  \"payTypeAchTransferEnabled\": false,\n  \"payTypeCashEnabled\": true,\n  \"limitPerTxn\": \"500.00\",\n  \"limitDaily\": \"5000.00\",\n  \"limitWeekly\": null,\n  \"limitMonthly\": null,\n  \"isViewAllMerchantTransaction\": false,\n  \"signatureThreshold\": \"25.00\",\n  \"receiptHeaderMsg\": \"Welcome!\",\n  \"receiptFooterMsg\": \"Thank you!\",\n  \"receiptDisclaimer\": null,\n  \"receiptAutoPrintEnabled\": true,\n  \"receiptPrintMerchantCopy\": true,\n  \"receiptSmsEnabled\": true,\n  \"receiptEmailEnabled\": true,\n  \"receiptSignatureCapture\": false,\n  \"allowTips\": true,\n  \"tipPresets\": [\n    10,\n    15,\n    20,\n    25\n  ],\n  \"tipMaxAmount\": \"100.00\",\n  \"tipMaxPercentage\": 30,\n  \"taxEnabled\": true,\n  \"taxEnableRemove\": false,\n  \"taxRemovePassProtect\": false,\n  \"tax1Label\": \"Sales Tax\",\n  \"tax1Value\": \"8.25\",\n  \"tax2Label\": null,\n  \"tax2Value\": null,\n  \"shippingFieldsEnabled\": false,\n  \"shippingSameAsBillingVisible\": false,\n  \"inputFieldsConfig\": [\n    {\n      \"key\": \"customer_name\",\n      \"label\": \"Name\",\n      \"group\": \"general\",\n      \"type\": \"text\",\n      \"display\": true,\n      \"required\": true,\n      \"locked\": false,\n      \"order\": 1\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/parameters",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "parameters"
                  ]
                },
                "description": "Update device parameters.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `PUT /api/v1/merchants/:merchantId/devices/:deviceId/parameters`."
              }
            },
            {
              "name": "Apply a parameter template",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"templateId\": \"{{templateId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/parameters/apply-template",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "parameters",
                    "apply-template"
                  ]
                },
                "description": "Apply a parameter template.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/:deviceId/parameters/apply-template`."
              }
            },
            {
              "name": "Reset parameters to defaults",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/devices/{{deviceId}}/parameters/reset",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "devices",
                    "{{deviceId}}",
                    "parameters",
                    "reset"
                  ]
                },
                "description": "Reset parameters to defaults.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/devices/:deviceId/parameters/reset`."
              }
            },
            {
              "name": "List parameter templates",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/device-templates?limit=20&offset=0",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "device-templates"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "50",
                      "disabled": false
                    },
                    {
                      "key": "offset",
                      "value": "0",
                      "description": "0",
                      "disabled": false
                    }
                  ]
                },
                "description": "List parameter templates.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/device-templates`."
              }
            },
            {
              "name": "Create parameter template",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"templateName\": \"Restaurant Config\",\n  \"isDefault\": true,\n  \"parameters\": {\n    \"txnSaleEnabled\": true,\n    \"txnRefundEnabled\": true,\n    \"txnVoidEnabled\": true,\n    \"txnPreauthEnabled\": true,\n    \"allowTips\": true,\n    \"tipPresets\": [\n      15,\n      18,\n      20,\n      25\n    ],\n    \"tipMaxPercentage\": 40,\n    \"taxEnabled\": true,\n    \"tax1Label\": \"Sales Tax\",\n    \"tax1Value\": \"8.25\",\n    \"receiptSignatureCapture\": false\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/device-templates",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "device-templates"
                  ]
                },
                "description": "Create parameter template.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/device-templates`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.id) pm.collectionVariables.set('templateId', data.id);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Get template",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/device-templates/{{templateId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "device-templates",
                    "{{templateId}}"
                  ]
                },
                "description": "Get template.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `GET /api/v1/merchants/:merchantId/device-templates/:templateId`."
              }
            },
            {
              "name": "Update template",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"templateName\": \"Updated Restaurant Config\",\n  \"isDefault\": false,\n  \"parameters\": {\n    \"tipPresets\": [\n      15,\n      20,\n      25\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/device-templates/{{templateId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "device-templates",
                    "{{templateId}}"
                  ]
                },
                "description": "Update template.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `PATCH /api/v1/merchants/:merchantId/device-templates/:templateId`."
              }
            },
            {
              "name": "Set as merchant default",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/device-templates/{{templateId}}/set-default",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "device-templates",
                    "{{templateId}}",
                    "set-default"
                  ]
                },
                "description": "Set as merchant default.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `POST /api/v1/merchants/:merchantId/device-templates/:templateId/set-default`."
              }
            },
            {
              "name": "Delete template",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/merchants/{{merchantId}}/device-templates/{{templateId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "merchants",
                    "{{merchantId}}",
                    "device-templates",
                    "{{templateId}}"
                  ]
                },
                "description": "Delete template.\n\nDocumentation: `docs/api/merchants/devices.md`.\nEndpoint: `DELETE /api/v1/merchants/:merchantId/device-templates/:templateId`."
              }
            }
          ]
        },
        {
          "name": "Users & Permissions",
          "item": [
            {
              "name": "Permission catalog",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles/permissions",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles",
                    "permissions"
                  ]
                },
                "description": "Permission catalog.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `GET /api/v1/roles/permissions`."
              }
            },
            {
              "name": "Merchant role definitions (`PUT` / `DELETE /roles/merchant/:code` to customise)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles/merchant",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles",
                    "merchant"
                  ]
                },
                "description": "Merchant role definitions (`PUT` / `DELETE /roles/merchant/:code` to customise).\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `GET /api/v1/roles/merchant`."
              }
            },
            {
              "name": "Update Role Permissions",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"permissions\": [\n    \"transactions.view\",\n    \"transactions.create\",\n    \"transactions.refund\",\n    \"reports.view\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles/merchant/{{roleCode}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles",
                    "merchant",
                    "{{roleCode}}"
                  ]
                },
                "description": "Update Role Permissions.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `PUT /api/v1/roles/merchant/:code`."
              }
            },
            {
              "name": "Reset Role Permissions",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles/merchant/{{roleCode}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles",
                    "merchant",
                    "{{roleCode}}"
                  ]
                },
                "description": "Reset Role Permissions.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `DELETE /api/v1/roles/merchant/:code`."
              }
            },
            {
              "name": "Update User",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"role\": \"merchant_admin\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users/{{userId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users",
                    "{{userId}}"
                  ]
                },
                "description": "Update User.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `PUT /api/v1/users/:userId`."
              }
            },
            {
              "name": "List roles",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles"
                  ]
                },
                "description": "List roles.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `GET /api/v1/roles`."
              }
            },
            {
              "name": "Create role",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Payment reviewer\",\n  \"description\": \"View transactions and reports\",\n  \"permissions\": [\n    \"transactions.view\",\n    \"reports.view\"\n  ],\n  \"type\": \"merchant\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles"
                  ]
                },
                "description": "Create role.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `POST /api/v1/roles`."
              }
            },
            {
              "name": "Get role details",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles/{{roleId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles",
                    "{{roleId}}"
                  ]
                },
                "description": "Get role details.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `GET /api/v1/roles/:id`."
              }
            },
            {
              "name": "Update role",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Payment reviewer\",\n  \"description\": \"View transactions and reports\",\n  \"permissions\": [\n    \"transactions.view\",\n    \"reports.view\"\n  ],\n  \"isActive\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles/{{roleId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles",
                    "{{roleId}}"
                  ]
                },
                "description": "Update role.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `PUT /api/v1/roles/:id`."
              }
            },
            {
              "name": "Delete role",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/roles/{{roleId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "roles",
                    "{{roleId}}"
                  ]
                },
                "description": "Delete role.\n\nDocumentation: `docs/api/merchants/permissions.md`.\nEndpoint: `DELETE /api/v1/roles/:id`."
              }
            },
            {
              "name": "Create a team member",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"user@example.com\",\n  \"password\": \"TempPassw0rd!\",\n  \"firstName\": \"Sam\",\n  \"lastName\": \"Rivera\",\n  \"role\": \"merchant_staff\",\n  \"merchantId\": \"{{merchantId}}\",\n  \"sendInvite\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users"
                  ]
                },
                "description": "Create a team member.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `POST /api/v1/users`."
              }
            },
            {
              "name": "List Users",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users?merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users"
                  ],
                  "query": [
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "Admins only: limit to one merchant's team (primary members and linked members)",
                      "disabled": false
                    }
                  ]
                },
                "description": "List Users.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `GET /api/v1/users`."
              }
            },
            {
              "name": "Get User",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users/{{userId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users",
                    "{{userId}}"
                  ]
                },
                "description": "Get User.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `GET /api/v1/users/:userId`."
              }
            },
            {
              "name": "Activate / deactivate a user",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"isActive\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users/{{userId}}/status",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users",
                    "{{userId}}",
                    "status"
                  ]
                },
                "description": "Activate / deactivate a user.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `PATCH /api/v1/users/:userId/status`."
              }
            },
            {
              "name": "Send an invite email",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users/{{userId}}/send-invite",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users",
                    "{{userId}}",
                    "send-invite"
                  ]
                },
                "description": "Send an invite email.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `POST /api/v1/users/:userId/send-invite`."
              }
            },
            {
              "name": "Delete User",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users/{{userId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users",
                    "{{userId}}"
                  ]
                },
                "description": "Delete User.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `DELETE /api/v1/users/:userId`."
              }
            },
            {
              "name": "Resend Invitation",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/users/{{userId}}/invite-link",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "users",
                    "{{userId}}",
                    "invite-link"
                  ]
                },
                "description": "Resend Invitation.\n\nDocumentation: `docs/api/merchants/users.md`.\nEndpoint: `POST /api/v1/users/:userId/invite-link`."
              }
            }
          ]
        },
        {
          "name": "Receipts",
          "item": [
            {
              "name": "Send email receipt",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\",\n  \"email\": \"customer@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/notifications/receipt/email",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "receipt",
                    "email"
                  ]
                },
                "description": "Send email receipt.\n\nDocumentation: `docs/api/receipts/receipts.md`.\nEndpoint: `POST /api/v1/notifications/receipt/email`."
              }
            },
            {
              "name": "Send SMS receipt",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\",\n  \"phoneNumber\": \"+15555550123\",\n  \"includePDF\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/notifications/receipt/sms",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "receipt",
                    "sms"
                  ]
                },
                "description": "Send SMS receipt.\n\nDocumentation: `docs/api/receipts/receipts.md`.\nEndpoint: `POST /api/v1/notifications/receipt/sms`."
              }
            },
            {
              "name": "Send refund receipt by email",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"refund\": {\n    \"id\": \"{{refundId}}\",\n    \"amount\": \"25.00\",\n    \"status\": \"approved\"\n  },\n  \"transaction\": {\n    \"id\": \"{{testTransactionId}}\",\n    \"transactionId\": \"{{testTransactionId}}\",\n    \"amount\": \"100.00\",\n    \"currency\": \"USD\",\n    \"cardLast4\": \"4242\",\n    \"cardBrand\": \"visa\"\n  },\n  \"merchantId\": \"{{merchantId}}\",\n  \"email\": \"john@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/notifications/receipt/refund/email",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "receipt",
                    "refund",
                    "email"
                  ]
                },
                "description": "Send refund receipt by email.\n\nDocumentation: `docs/api/receipts/receipts.md`.\nEndpoint: `POST /api/v1/notifications/receipt/refund/email`."
              }
            },
            {
              "name": "Get printable receipt",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"transactionId\": \"{{testTransactionId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/notifications/receipt/print",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "receipt",
                    "print"
                  ]
                },
                "description": "Get printable receipt.\n\nDocumentation: `docs/api/receipts/receipts.md`.\nEndpoint: `POST /api/v1/notifications/receipt/print`."
              }
            },
            {
              "name": "Download PDF receipt",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/notifications/receipts/{{transactionId}}/pdf",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "receipts",
                    "{{transactionId}}",
                    "pdf"
                  ]
                },
                "description": "Download PDF receipt.\n\nDocumentation: `docs/api/receipts/receipts.md`.\nEndpoint: `GET /api/v1/notifications/receipts/:transactionId/pdf`."
              }
            },
            {
              "name": "Send refund receipt by SMS",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"refund\": {\n    \"id\": \"{{refundId}}\",\n    \"amount\": \"25.00\",\n    \"status\": \"approved\"\n  },\n  \"transaction\": {\n    \"id\": \"{{testTransactionId}}\",\n    \"transactionId\": \"{{testTransactionId}}\",\n    \"amount\": \"100.00\",\n    \"currency\": \"USD\",\n    \"cardLast4\": \"4242\",\n    \"cardBrand\": \"visa\"\n  },\n  \"merchantId\": \"{{merchantId}}\",\n  \"phoneNumber\": \"+15551234567\",\n  \"includePDF\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/notifications/receipt/refund/sms",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "receipt",
                    "refund",
                    "sms"
                  ]
                },
                "description": "Send refund receipt by SMS.\n\nDocumentation: `docs/api/receipts/receipts.md`.\nEndpoint: `POST /api/v1/notifications/receipt/refund/sms`."
              }
            }
          ]
        },
        {
          "name": "Payment Plans",
          "item": [
            {
              "name": "List plans",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans?page=1&limit=20&merchantId={{merchantId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "description": "integer | Default 1",
                      "disabled": false
                    },
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "integer | Default 20",
                      "disabled": false
                    },
                    {
                      "key": "status",
                      "value": "active",
                      "description": "string | One status (see Plan Statuses)",
                      "disabled": true
                    },
                    {
                      "key": "merchantId",
                      "value": "{{merchantId}}",
                      "description": "uuid | Filter by merchant",
                      "disabled": false
                    }
                  ]
                },
                "description": "List plans.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/billing/payment-plans`."
              }
            },
            {
              "name": "Charge next installment now",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/charge-now",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "charge-now"
                  ]
                },
                "description": "Charge next installment now.\n\nDocumentation: `docs/api/recurring/dunning.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/charge-now`."
              }
            },
            {
              "name": "Send Payment Method Update Link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/send-method-update-link",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "send-method-update-link"
                  ]
                },
                "description": "Send Payment Method Update Link.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/send-method-update-link`."
              }
            },
            {
              "name": "Link Payment Method",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"pciToken\": \"{{testToken}}\",\n  \"last4\": \"4242\",\n  \"brand\": \"visa\",\n  \"type\": \"card\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/link-payment-method",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "link-payment-method"
                  ]
                },
                "description": "Link Payment Method.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/link-payment-method`."
              }
            },
            {
              "name": "Create plan",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"planName\": \"Dental treatment plan\",\n  \"customerName\": \"Jane Smith\",\n  \"customerEmail\": \"jane@example.com\",\n  \"customerPhone\": \"5551234567\",\n  \"totalAmount\": 1200.0,\n  \"timeframeType\": \"months_6\",\n  \"paymentStructure\": \"fixed_down_equal\",\n  \"structureConfig\": {\n    \"down_payment_amount\": 200,\n    \"num_remaining_payments\": 5\n  },\n  \"paymentFrequency\": \"monthly\",\n  \"firstPaymentDate\": \"2026-11-01\",\n  \"preferredDayOfMonth\": 1,\n  \"lateFeeType\": \"fixed\",\n  \"lateFeeValue\": 10,\n  \"lateFeeFrequency\": \"per_month\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans"
                  ]
                },
                "description": "Create plan.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans`."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code >= 200 && pm.response.code < 300) {",
                      "  const json = pm.response.json();",
                      "  const data = json.data || json;",
                      "  if (data.id) pm.collectionVariables.set('planId', data.id);",
                      "}"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Preview Schedule",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"totalAmount\": 1200,\n  \"timeframeType\": \"months_6\",\n  \"paymentStructure\": \"fixed_down_equal\",\n  \"structureConfig\": {\n    \"down_payment_amount\": 200,\n    \"num_remaining_payments\": 5\n  },\n  \"paymentFrequency\": \"monthly\",\n  \"firstPaymentDate\": \"2026-11-01\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/preview",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "preview"
                  ]
                },
                "description": "Preview Schedule.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/preview`."
              }
            },
            {
              "name": "Get Structure Suggestions",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/suggestions?totalAmount=1200&timeframeType=months_6",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "suggestions"
                  ],
                  "query": [
                    {
                      "key": "totalAmount",
                      "value": "1200",
                      "description": "decimal | Yes | Total amount",
                      "disabled": false
                    },
                    {
                      "key": "timeframeType",
                      "value": "months_6",
                      "description": "string | Yes | Timeframe (see above)",
                      "disabled": false
                    }
                  ]
                },
                "description": "Get Structure Suggestions.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/billing/payment-plans/suggestions`."
              }
            },
            {
              "name": "Payment Plan Overview",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/overview",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "overview"
                  ]
                },
                "description": "Payment Plan Overview.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/billing/payment-plans/overview`."
              }
            },
            {
              "name": "Get plan",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}"
                  ]
                },
                "description": "Get plan.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/billing/payment-plans/:id`."
              }
            },
            {
              "name": "Get Payment Schedule",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/schedule",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "schedule"
                  ]
                },
                "description": "Get Payment Schedule.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/billing/payment-plans/:id/schedule`."
              }
            },
            {
              "name": "Get Plan History",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/history",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "history"
                  ]
                },
                "description": "Get Plan History.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/billing/payment-plans/:id/history`."
              }
            },
            {
              "name": "Update Payment Plan",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"planName\": \"Dental treatment plan (updated)\",\n  \"customerEmail\": \"jane.smith@example.com\",\n  \"description\": \"Updated notes\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}"
                  ]
                },
                "description": "Update Payment Plan.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `PUT /api/v1/billing/payment-plans/:id`."
              }
            },
            {
              "name": "Activate",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/activate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "activate"
                  ]
                },
                "description": "Activate.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/activate`."
              }
            },
            {
              "name": "Authorize Payment Plan (Merchant)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"paymentMethodToken\": \"{{testToken}}\",\n  \"paymentMethodLast4\": \"1111\",\n  \"paymentMethodBrand\": \"visa\",\n  \"consentAccepted\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/authorize",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "authorize"
                  ]
                },
                "description": "Authorize Payment Plan (Merchant).\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/authorize`."
              }
            },
            {
              "name": "Pause",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/pause",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "pause"
                  ]
                },
                "description": "Pause.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/pause`."
              }
            },
            {
              "name": "Resume",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/resume",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "resume"
                  ]
                },
                "description": "Resume.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/resume`."
              }
            },
            {
              "name": "Cancel",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Paid in full by check\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/cancel",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "cancel"
                  ]
                },
                "description": "Cancel.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/cancel`."
              }
            },
            {
              "name": "Resend Authorization Link",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plans/{{planId}}/resend-auth",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plans",
                    "{{planId}}",
                    "resend-auth"
                  ]
                },
                "description": "Resend Authorization Link.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plans/:id/resend-auth`."
              }
            },
            {
              "name": "List Plan Templates",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plan-templates",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plan-templates"
                  ]
                },
                "description": "List Plan Templates.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `GET /api/v1/billing/payment-plan-templates`."
              }
            },
            {
              "name": "Create Plan Template",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"6 months, 20% down\",\n  \"merchantId\": \"{{merchantId}}\",\n  \"timeframeType\": \"months_6\",\n  \"paymentStructure\": \"percent_down_equal\",\n  \"structureConfig\": {\n    \"down_payment_percent\": 20,\n    \"num_remaining_payments\": 5\n  },\n  \"paymentFrequency\": \"monthly\",\n  \"preferredDayOfMonth\": 1\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/billing/payment-plan-templates",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "billing",
                    "payment-plan-templates"
                  ]
                },
                "description": "Create Plan Template.\n\nDocumentation: `docs/api/recurring/payment-plans.md`.\nEndpoint: `POST /api/v1/billing/payment-plan-templates`."
              }
            }
          ]
        },
        {
          "name": "Customer Vault",
          "item": [
            {
              "name": "Create customer",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"customerName\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"phoneNumber\": \"+15551234567\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers"
                  ]
                },
                "description": "Create customer.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/customers`."
              }
            },
            {
              "name": "List customers",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers"
                  ]
                },
                "description": "List customers.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/customers`."
              }
            },
            {
              "name": "Get customer",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}"
                  ]
                },
                "description": "Get customer.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/customers/:id`."
              }
            },
            {
              "name": "Update customer",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customerName\": \"John Doe (updated)\",\n  \"email\": \"john@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}"
                  ]
                },
                "description": "Update customer.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `PUT /api/v1/customers/:id`."
              }
            },
            {
              "name": "Delete customer",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}"
                  ]
                },
                "description": "Delete customer.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `DELETE /api/v1/customers/:id`."
              }
            },
            {
              "name": "Customer transaction history",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}/transactions",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}",
                    "transactions"
                  ]
                },
                "description": "Customer transaction history.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/customers/:id/transactions`."
              }
            },
            {
              "name": "List payment methods",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}/payment-methods",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}",
                    "payment-methods"
                  ]
                },
                "description": "List payment methods.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/customers/:id/payment-methods`."
              }
            },
            {
              "name": "Add payment method",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"pciToken\": \"{{testToken}}\",\n  \"setAsDefault\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}/payment-methods",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}",
                    "payment-methods"
                  ]
                },
                "description": "Add payment method.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `POST /api/v1/customers/:id/payment-methods`."
              }
            },
            {
              "name": "Set default payment method",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"merchantId\": \"{{merchantId}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}/payment-methods/{{paymentMethodId}}/set-default",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}",
                    "payment-methods",
                    "{{paymentMethodId}}",
                    "set-default"
                  ]
                },
                "description": "Set default payment method.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `PUT /api/v1/customers/:id/payment-methods/:pmId/set-default`."
              }
            },
            {
              "name": "Remove payment method",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/customers/{{testCustomerId}}/payment-methods/{{paymentMethodId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers",
                    "{{testCustomerId}}",
                    "payment-methods",
                    "{{paymentMethodId}}"
                  ]
                },
                "description": "Remove payment method.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `DELETE /api/v1/customers/:id/payment-methods/:pmId`."
              }
            }
          ]
        },
        {
          "name": "Audit & Sessions",
          "item": [
            {
              "name": "Get audit log entries",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/audit-logs",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "audit-logs"
                  ]
                },
                "description": "Get audit log entries.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/audit-logs`."
              }
            },
            {
              "name": "Get active user sessions",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "X-Tenant-ID",
                    "value": "{{tenantId}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/user-sessions",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "user-sessions"
                  ]
                },
                "description": "Get active user sessions.\n\nDocumentation: `docs/api/reference/endpoints.md`.\nEndpoint: `GET /api/v1/user-sessions`."
              }
            }
          ]
        }
      ]
    }
  ]
}
