{"openapi":"3.0.1","info":{"title":"DcWallet API","description":"DcWallet REST API for enterprise integrations.\n\n## Transfer business integration flow\n\nUse these endpoints to check funds, submit one transfer, reconcile its status and receive its final result:\n\n1. `GET /api/v1/accounts` — select an account and read its `availableBalance`; retain `accountId` as `sourceAccountId`.\n2. `POST /api/v1/transfers` — submit one transfer with an `Idempotency-Key`; retain the returned transfer `id`.\n3. `GET /api/v1/transfers/{transferId}` — query until status is `succeeded`, `failed`, `rejected` or `cancelled`.\n4. `POST /api/v1/webhook-endpoints` — register once with `transfer.succeeded`, `transfer.failed`, `transfer.rejected` and `transfer.cancelled` to receive asynchronous final results.\n\nA direct mainland CNY payout does not require a contact or beneficiary identity number. Use a CNH source account, set `recipientCurrency` to `CNY`, omit `destinationAccountId`, and provide `recipientBankName`, `recipientAccountHolder` and `recipientAccountNo`. CNH and CNY settle at the platform-fixed 1:1 rule without an external FX quote. The bank country defaults to `CN` and beneficiary type defaults to `individual` when omitted.\n\nFor a business beneficiary, set `recipientBeneficiaryType` to `business`. `recipientRegistrationNumber` is optional and accepts identifiers used across regions; set `recipientRegistrationType` to values such as `brn`, `business_registration`, `company_number`, `vat` or `ein`. Hong Kong local payments use `HK`/`CHATS`/`bank_code`, euro-area payments use IBAN/`SEPA`, UK local payments use `GB`/`CHAPS`/`sort_code`, and US local payments use `US`/`FEDWIRE`/`aba`. Availability still depends on the enterprise policy and configured payout channel.\n\n## Card issuing business integration flow\n\nUse these endpoints, in order, to issue, fund, cancel and reconcile a card:\n\n1. `GET /api/v1/accounts` — select and retain the funding `accountId`.\n2. `POST /api/v1/contacts` — create the cardholder and retain `contactId`.\n3. `POST /api/v1/contacts/{contactId}/documents/{role}` — upload raw JPG/PNG bytes. Use `passport` once for a passport, or both `identity_front` and `identity_back` for an identity card.\n4. `GET /api/v1/contacts/{contactId}` — continue only when `cardIssuingStatus` is `ready` and `missingFields` is empty.\n5. `GET /api/v1/card-products` — select an eligible `productId`.\n6. `POST /api/v1/card-applications` — issue the card using `contactId`, `productId` and `sourceAccountId`.\n7. `POST /api/v1/cards/{cardId}/top-ups` — add funds to the issued card.\n8. `POST /api/v1/cards/{cardId}/cancel` — cancel the card and return its confirmed refund transaction when available.\n9. `GET /api/v1/cards/{cardId}/transactions` — list top-ups, purchases, refunds and other card activity.\n\nIf issuance or a top-up returns HTTP `202` or code `9003`, do not create a replacement request. Poll `GET /api/v1/card-applications/{applicationId}` or `GET /api/v1/cards/{cardId}/top-ups/{topUpId}` with the returned ID. To reconcile funding debits and cancellation refunds, also query `GET /api/v1/accounts/{accountId}/transactions`.\n\n`POST /api/v1/card-applications/quote`, webhooks and hosted card reveal sessions are recommended but are not required for this minimum lifecycle.\n","contact":{"name":"DcWallet Engineering"},"license":{"name":"Private"},"version":"1.0.0"},"servers":[{"url":"/","description":"Current host"}],"security":[{"apiKeyAuth":[],"apiSecret":[]}],"tags":[{"name":"1. Assets and accounts","description":"Start here: discover enabled assets, select an account, then inspect balances and transactions."},{"name":"2. Receiving accounts","description":"List bank accounts and blockchain addresses that can receive funds for the enterprise."},{"name":"3. Contacts","description":"Create or reuse the same dashboard contact for invoices, payment links and cardholders."},{"name":"4. Receivables","description":"Create and manage invoices and payment links, then query received payments."},{"name":"5. Transfers","description":"Submit and query single or batch transfers."},{"name":"6. Card issuing","description":"Complete contact readiness, select a product, issue and manage cards, and query card transactions."},{"name":"7. Webhooks","description":"Register callbacks after the core flow works; the webhook signing secret is returned once."},{"name":"8. Treasury Agent","description":"Optional final module for discovering capabilities and managing asynchronous Agent tasks."}],"paths":{"/api/v1/webhook-endpoints":{"get":{"tags":["7. Webhooks"],"summary":"List enterprise webhook endpoints","operationId":"getWebhookEndpoints","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListWebhookEndpointResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["7. Webhooks"],"summary":"Register an enterprise webhook endpoint; the secret is returned once","operationId":"postWebhookEndpoints","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseWebhookEndpointResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/webhook-endpoints/{endpointId}/test":{"post":{"tags":["7. Webhooks"],"summary":"Enqueue one signed sandbox test event for this endpoint","description":"Sandbox only. Uses the normal asynchronous signing, retry and delivery-log pipeline, does not mutate cards or funds, and sends only to this endpoint.","operationId":"postWebhookEndpointsByEndpointIdTest","parameters":[{"name":"endpointId","in":"path","description":"Webhook endpoint ID returned by /api/v1/webhook-endpoints. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTestRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"202":{"description":"Test event accepted for asynchronous delivery","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseWebhookTestResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/webhook-endpoints/{endpointId}/disable":{"post":{"tags":["7. Webhooks"],"summary":"Disable an enterprise webhook endpoint","operationId":"postWebhookEndpointsByEndpointIdDisable","parameters":[{"name":"endpointId","in":"path","description":"Webhook endpoint ID returned by /api/v1/webhook-endpoints. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/transfers":{"get":{"tags":["5. Transfers"],"summary":"List enterprise transfers","operationId":"getTransfers","parameters":[{"name":"status","in":"query","description":"Public transfer state.","required":false,"schema":{"type":"string","enum":["pending_approval","processing","succeeded","failed","rejected","cancelled"]}},{"name":"startDate","in":"query","description":"Inclusive start date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"}},{"name":"endDate","in":"query","description":"Inclusive end date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataTransferResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["5. Transfers"],"summary":"Submit one transfer","description":"The signed API-key request authorizes submission. Use destinationAccountId for a saved contact account, or omit it and provide recipientAddress for crypto or direct bank fields for fiat. A direct mainland CNY payout uses a CNH source account with fixed 1:1 CNH/CNY settlement and requires recipientCurrency=CNY, recipientBankName, recipientAccountHolder and recipientAccountNo; no external FX quote, contact, or beneficiary identity number is required. For a business beneficiary set recipientBeneficiaryType=business and optionally provide recipientRegistrationType and recipientRegistrationNumber. The transfer still follows the configured approval, compliance and balance-locking gates. Reuse Idempotency-Key when retrying the same request.","operationId":"postTransfers","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseTransferResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/transfers/documents/{role}":{"post":{"tags":["5. Transfers"],"summary":"Upload a payment document using raw file bytes","description":"Upload the file first, then include the returned documentId and role in a single or batch transfer item. PDF, JPG and PNG are supported up to 10 MiB.","operationId":"postTransfersDocumentsByRole","parameters":[{"name":"role","in":"path","description":"Identity-image role: passport, identity_front or identity_back.","required":true,"schema":{"type":"string","enum":["supplier_contract","service_contract","employment_contract","cooperation_agreement","proforma_invoice","commercial_invoice","purchase_order","delivery_proof","other_trade_proof"]}},{"name":"X-File-Name","in":"header","description":"Original file name including a supported .jpg, .jpeg or .png extension.","required":false,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"Raw upload media type: image/jpeg or image/png.","required":false,"schema":{"type":"string","default":"application/octet-stream"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseTransferDocumentUploadResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/transfers/document-requirements/preview":{"post":{"tags":["5. Transfers"],"summary":"Preview payment-document requirements","description":"Use this before submission to identify missing document-role groups. Submission always evaluates the rules again using the stored transfer and linked documents.","operationId":"postTransfersDocumentRequirementsPreview","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDocumentRequirementRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseTransferDocumentRequirementResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/transfer-batches":{"get":{"tags":["5. Transfers"],"summary":"List enterprise transfer batches","operationId":"getTransferBatches","parameters":[{"name":"status","in":"query","description":"Public batch state.","required":false,"schema":{"type":"string","enum":["pending_approval","processing","succeeded","partial_failed","failed","rejected"]}},{"name":"startDate","in":"query","description":"Inclusive start date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"}},{"name":"endDate","in":"query","description":"Inclusive end date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataTransferBatchResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["5. Transfers"],"summary":"Submit up to 500 transfers as one batch","description":"The signed API-key request authorizes submission. Each row may reference a saved destinationAccountId or provide an ad-hoc blockchain address or bank account. All rows must use the same payment method, currency and blockchain network. Existing approval, compliance and balance-locking gates apply to the batch.","operationId":"postTransferBatches","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferBatchRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseTransferBatchResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/invoices/{invoiceId}/send":{"post":{"tags":["4. Receivables"],"summary":"Activate a receivable and create its checkout URL","operationId":"postInvoicesByInvoiceIdSend","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/receivables/{invoiceId}/send":{"post":{"tags":["4. Receivables"],"summary":"Activate a receivable and create its checkout URL","operationId":"postReceivablesByInvoiceIdSend","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/receivables/{invoiceId}/cancel":{"post":{"tags":["4. Receivables"],"summary":"Cancel an unpaid enterprise receivable","operationId":"postReceivablesByInvoiceIdCancel","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/invoices/{invoiceId}/cancel":{"post":{"tags":["4. Receivables"],"summary":"Cancel an unpaid enterprise receivable","operationId":"postInvoicesByInvoiceIdCancel","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/receivables":{"get":{"tags":["4. Receivables"],"summary":"List enterprise receivables","operationId":"getReceivables","parameters":[{"name":"status","in":"query","description":"Invoice state.","required":false,"schema":{"type":"string","enum":["draft","sent","partial_paid","fully_paid","overpaid","overdue","cancelled"]}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["4. Receivables"],"summary":"Create a draft receivable","description":"contactId is optional. Without a contact, the receivable is a consumer checkout and uses a platform-routed collection address. /invoices remains a compatibility alias.","operationId":"postReceivables","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/invoices":{"get":{"tags":["4. Receivables"],"summary":"List enterprise receivables","operationId":"getInvoices","parameters":[{"name":"status","in":"query","description":"Invoice state.","required":false,"schema":{"type":"string","enum":["draft","sent","partial_paid","fully_paid","overpaid","overdue","cancelled"]}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["4. Receivables"],"summary":"Create a draft receivable","description":"contactId is optional. Without a contact, the receivable is a consumer checkout and uses a platform-routed collection address. /invoices remains a compatibility alias.","operationId":"postInvoices","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/payment-links":{"get":{"tags":["4. Receivables"],"summary":"List enterprise payment links","operationId":"getPaymentLinks","parameters":[{"name":"status","in":"query","description":"Payment-link state.","required":false,"schema":{"type":"string","enum":["active","paid","cancelled","expired"]}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataPaymentLinkResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["4. Receivables"],"summary":"Create a standalone or invoice-backed payment link","description":"Provide invoiceId, or provide currency and amount for a standalone link. Reuse the same Idempotency-Key when retrying the same request.","operationId":"postPaymentLinks","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLinkRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePaymentLinkResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/payment-links/{linkId}/deactivate":{"post":{"tags":["4. Receivables"],"summary":"Deactivate an enterprise payment link","operationId":"postPaymentLinksByLinkIdDeactivate","parameters":[{"name":"linkId","in":"path","description":"Payment-link ID returned by /api/v1/payment-links. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePaymentLinkResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/contacts":{"get":{"tags":["3. Contacts"],"summary":"List enterprise contacts","description":"Omit filters to list all contacts. Enum filters show their accepted values in the online console.","operationId":"getContacts","parameters":[{"name":"keyword","in":"query","description":"Case-insensitive search text for the fields named by this operation.","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Dashboard contact role.","required":false,"schema":{"type":"string","enum":["customer","supplier","employee","partner","contractor","investor","subsidiary","self","other"]}},{"name":"entityType","in":"query","description":"Legal entity type.","required":false,"schema":{"type":"string","enum":["individual","company"]}},{"name":"externalReference","in":"query","description":"Stable contact reference assigned by the API customer.","required":false,"schema":{"type":"string"}},{"name":"complianceStatus","in":"query","description":"AML screening status.","required":false,"schema":{"type":"string","enum":["pending","clear","review_required","blocked"]}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataContactResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["3. Contacts"],"summary":"Create an enterprise contact","description":"Create one shared contact for receivables and card issuing. Reuse externalReference and the same Idempotency-Key when retrying the same request.","operationId":"postContacts","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseContactResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/contacts/{contactId}/documents/{role}":{"post":{"tags":["3. Contacts"],"summary":"Upload an identity document using the raw file bytes","description":"Use role passport for a passport, or upload both identity_front and identity_back for an identity card. Send the exact file bytes, not JSON or base64.","operationId":"postContactsByContactIdDocumentsByRole","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"role","in":"path","description":"passport for a passport; identity_front and identity_back for an identity card or residence permit.","required":true,"schema":{"type":"string","enum":["passport","identity_front","identity_back"]}},{"name":"X-File-Name","in":"header","description":"Original file name","required":false,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"Raw upload media type: image/jpeg or image/png.","required":false,"schema":{"type":"string","default":"application/octet-stream"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseDocumentResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/contacts/{contactId}/accounts":{"get":{"tags":["3. Contacts"],"summary":"List contact destination accounts","description":"Returns the bank accounts and blockchain addresses maintained under this contact. Internal platform account and wallet identifiers are not exposed.","operationId":"getContactsByContactIdAccounts","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListContactAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["3. Contacts"],"summary":"Add a contact destination account","description":"Use type blockchain with network and address. For type bank, bankName, bankCountryCode, bankAddress, accountNumber, accountHolder and currency are required; mainland CNY accounts may omit bankAddress. Blockchain networks come from GET /api/v1/assets.","operationId":"postContactsByContactIdAccounts","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactAccountRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseContactAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/contacts/{contactId}/accounts/{accountId}/deactivate":{"post":{"tags":["3. Contacts"],"summary":"Deactivate a contact destination account","description":"The account remains in history but cannot be selected for new payments.","operationId":"postContactsByContactIdAccountsByAccountIdDeactivate","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"accountId","in":"path","description":"Account ID returned by the corresponding account list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseContactAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}/unfreeze":{"post":{"tags":["6. Card issuing"],"summary":"Unfreeze an enterprise virtual card","description":"May temporarily return through the unfreezing reconciliation state after an unknown channel outcome.","operationId":"postCardsByCardIdUnfreeze","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}/top-ups":{"get":{"tags":["6. Card issuing"],"summary":"List card top-ups","operationId":"getCardsByCardIdTopUps","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataCardTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["6. Card issuing"],"summary":"Top up an enterprise card","description":"Uses the card's original funding account. Code 9003 leaves the transaction processing and funds locked until reconciliation.","operationId":"postCardsByCardIdTopUps","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardTopUpRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"202":{"description":"Accepted because the channel outcome is pending reconciliation. The body contains the persisted top-up transaction; query it instead of creating another request.","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardTransactionResponse"}}}}}}},"/api/v1/cards/{cardId}/sandbox/purchases":{"post":{"tags":["6. Card issuing"],"summary":"Simulate a card purchase in sandbox","operationId":"postCardsByCardIdSandboxPurchases","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxCardPurchaseRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}/reveal-sessions":{"post":{"tags":["6. Card issuing"],"summary":"Create a one-time hosted card reveal session","description":"Call only after the customer has authenticated the cardholder and completed its own second-factor verification. The returned URL expires after two minutes, works once, and must be opened in a top-level browser window. PAN, expiry and CVV are rendered only by the hosted page and are never returned to the machine integration.","operationId":"postCardsByCardIdRevealSessions","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedCardRevealSessionRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseHostedCardRevealSessionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}/freeze":{"post":{"tags":["6. Card issuing"],"summary":"Freeze an enterprise virtual card","description":"May temporarily return through the freezing reconciliation state after an unknown channel outcome.","operationId":"postCardsByCardIdFreeze","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}/cancel":{"post":{"tags":["6. Card issuing"],"summary":"Cancel an enterprise virtual card","description":"Rejects non-terminal transactions and may remain cancelling until channel/refund reconciliation completes.","operationId":"postCardsByCardIdCancel","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardCancellationResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/card-applications":{"get":{"tags":["6. Card issuing"],"summary":"List enterprise card applications","operationId":"getCardApplications","parameters":[{"name":"status","in":"query","description":"Application state.","required":false,"schema":{"type":"string","enum":["validating","funds_locking","funds_locked","issuing","succeeded","reconciling","failed"]}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataCardApplicationResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"post":{"tags":["6. Card issuing"],"summary":"Create a virtual card application","description":"Use IDs returned by contacts, card-products and accounts. For products whose channel requires identity verification, first upload the contact's passport or identity-card images through /contacts/{contactId}/documents/{role}; the platform securely forwards those stored files to the issuing channel, so this request does not repeat document bytes. Requires approved enterprise KYB when specified by the product and a contact with clear AML status. Code 9003 means the channel outcome is pending reconciliation; query the same application instead of creating a replacement request.","operationId":"postCardApplications","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardApplicationRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardApplicationResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"202":{"description":"Accepted because the channel outcome is pending reconciliation. The body contains the persisted application; query it instead of creating another request.","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardApplicationResponse"}}}}}}},"/api/v1/card-applications/quote":{"post":{"tags":["6. Card issuing"],"summary":"Validate and quote a virtual card application","description":"Runs the same product, country, KYB, contact, document, source-account and fee checks as issuance without creating an application or debiting funds.","operationId":"postCardApplicationsQuote","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardApplicationRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardApplicationQuoteResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/agent/tasks":{"post":{"tags":["8. Treasury Agent"],"summary":"Create an asynchronous Treasury Agent task","operationId":"postAgentTasks","parameters":[{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTaskRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"202":{"description":"Task accepted for asynchronous processing","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseAgentTaskResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/agent/tasks/{taskId}/cancel":{"post":{"tags":["8. Treasury Agent"],"summary":"Cancel a Treasury Agent task","operationId":"postAgentTasksByTaskIdCancel","parameters":[{"name":"taskId","in":"path","description":"Treasury Agent task ID returned when the task is created. Keep IDs as strings.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseAgentTaskResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/webhook-endpoints/{endpointId}":{"get":{"tags":["7. Webhooks"],"summary":"Get an enterprise webhook endpoint","operationId":"getWebhookEndpointsByEndpointId","parameters":[{"name":"endpointId","in":"path","description":"Webhook endpoint ID returned by /api/v1/webhook-endpoints. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseWebhookEndpointResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["7. Webhooks"],"summary":"Update an enterprise webhook endpoint","operationId":"patchWebhookEndpointsByEndpointId","parameters":[{"name":"endpointId","in":"path","description":"Webhook endpoint ID returned by /api/v1/webhook-endpoints. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointUpdateRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseWebhookEndpointResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/receivables/{invoiceId}":{"get":{"tags":["4. Receivables"],"summary":"Get an enterprise receivable","operationId":"getReceivablesByInvoiceId","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["4. Receivables"],"summary":"Update a draft enterprise receivable","operationId":"patchReceivablesByInvoiceId","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceUpdateRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/invoices/{invoiceId}":{"get":{"tags":["4. Receivables"],"summary":"Get an enterprise receivable","operationId":"getInvoicesByInvoiceId","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["4. Receivables"],"summary":"Update a draft enterprise receivable","operationId":"patchInvoicesByInvoiceId","parameters":[{"name":"invoiceId","in":"path","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceUpdateRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseInvoiceResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/contacts/{contactId}":{"get":{"tags":["3. Contacts"],"summary":"Get an enterprise contact","description":"Before card issuance, cardIssuingStatus must be ready and missingFields must be empty.","operationId":"getContactsByContactId","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseContactResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["3. Contacts"],"summary":"Update an enterprise contact","operationId":"patchContactsByContactId","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseContactResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/contacts/{contactId}/accounts/{accountId}":{"patch":{"tags":["3. Contacts"],"summary":"Update a contact destination account","description":"Send only changed fields. Changing type requires all fields required by the new type.","operationId":"patchContactsByContactIdAccountsByAccountId","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"accountId","in":"path","description":"Account ID returned by the corresponding account list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactAccountRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseContactAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}":{"get":{"tags":["6. Card issuing"],"summary":"Get an enterprise card","operationId":"getCardsByCardId","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}},"patch":{"tags":["6. Card issuing"],"summary":"Update an enterprise virtual card nickname","operationId":"patchCardsByCardId","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"Idempotency-Key","in":"header","description":"Unique key for one mutating request. Reuse the same value only when retrying the same operation.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardUpdateRequest"}}},"required":true},"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/webhook-endpoints/{endpointId}/deliveries":{"get":{"tags":["7. Webhooks"],"summary":"List delivery attempts for an enterprise webhook endpoint","description":"Use deliveryId or eventId to check the asynchronous result of a sandbox test event.","operationId":"getWebhookEndpointsByEndpointIdDeliveries","parameters":[{"name":"endpointId","in":"path","description":"Webhook endpoint ID returned by /api/v1/webhook-endpoints. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"deliveryId","in":"query","description":"Webhook delivery identifier returned when an event is queued.","required":false,"schema":{"type":"string"}},{"name":"eventId","in":"query","description":"Webhook event identifier shared by all delivery attempts for the event.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Optional lifecycle-status filter; see the operation's allowed values.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataWebhookDeliveryResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/webhook-endpoints/event-types":{"get":{"tags":["7. Webhooks"],"summary":"List event types available for sandbox test delivery","operationId":"getWebhookEndpointsEventTypes","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListString"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/transfers/{transferId}":{"get":{"tags":["5. Transfers"],"summary":"Get an enterprise transfer","operationId":"getTransfersByTransferId","parameters":[{"name":"transferId","in":"path","description":"Transfer ID returned by POST /api/v1/transfers. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseTransferResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/transfer-batches/{batchId}":{"get":{"tags":["5. Transfers"],"summary":"Get an enterprise transfer batch","operationId":"getTransferBatchesByBatchId","parameters":[{"name":"batchId","in":"path","description":"The batch id value for this resource.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseTransferBatchResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/payment-records":{"get":{"tags":["4. Receivables"],"summary":"List enterprise payment records","description":"Query payments received through invoices and payment links.","operationId":"getPaymentRecords","parameters":[{"name":"status","in":"query","description":"Payment state.","required":false,"schema":{"type":"string","enum":["pending_payment","paying","pending_settlement","settled","failed","refunded","reversed"]}},{"name":"paymentMethod","in":"query","description":"Payment method.","required":false,"schema":{"type":"string","enum":["crypto","fiat"]}},{"name":"currency","in":"query","description":"Optional ISO currency or enabled asset-code filter.","required":false,"schema":{"type":"string"}},{"name":"invoiceId","in":"query","description":"Invoice ID returned by /api/v1/invoices. Keep IDs as strings.","required":false,"schema":{"type":"string"}},{"name":"paymentLinkId","in":"query","description":"Payment-link ID returned by /api/v1/payment-links. Keep IDs as strings.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataPaymentRecordResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/payment-records/{paymentRecordId}":{"get":{"tags":["4. Receivables"],"summary":"Get an enterprise payment record","operationId":"getPaymentRecordsByPaymentRecordId","parameters":[{"name":"paymentRecordId","in":"path","description":"Payment-record ID returned by /api/v1/payment-records. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePaymentRecordResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/payment-links/{linkId}":{"get":{"tags":["4. Receivables"],"summary":"Get an enterprise payment link","operationId":"getPaymentLinksByLinkId","parameters":[{"name":"linkId","in":"path","description":"Payment-link ID returned by /api/v1/payment-links. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePaymentLinkResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/contacts/{contactId}/documents":{"get":{"tags":["3. Contacts"],"summary":"List contact identity documents","operationId":"getContactsByContactIdDocuments","parameters":[{"name":"contactId","in":"path","description":"Enterprise contact ID returned by /api/v1/contacts. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListDocumentResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards":{"get":{"tags":["6. Card issuing"],"summary":"List enterprise cards","operationId":"getCards","parameters":[{"name":"status","in":"query","description":"Card lifecycle state.","required":false,"schema":{"type":"string","enum":["normal","freezing","frozen","unfreezing","cancelling","cancelled"]}},{"name":"contactId","in":"query","description":"Contact ID returned by /contacts.","required":false,"schema":{"type":"string"},"example":337893979704000512},{"name":"productId","in":"query","description":"Product ID returned by /card-products.","required":false,"schema":{"type":"string"},"example":337893979704000513},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataCardResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}/transactions":{"get":{"tags":["6. Card issuing"],"summary":"List card transactions","operationId":"getCardsByCardIdTransactions","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"type","in":"query","description":"Card transaction type.","required":false,"schema":{"type":"string","enum":["purchase","refund","reversal","topup","fee","adjustment_credit","adjustment_debit","verification","atm_inquiry","atm_withdrawal"]}},{"name":"direction","in":"query","description":"Balance direction.","required":false,"schema":{"type":"string","enum":["in","out"]}},{"name":"status","in":"query","description":"Transaction state.","required":false,"schema":{"type":"string","enum":["pending","processing","authorized","succeeded","failed","declined","voided","cancelled"]}},{"name":"keyword","in":"query","description":"Merchant, transaction number or reference search text.","required":false,"schema":{"type":"string"}},{"name":"startDate","in":"query","description":"Inclusive start date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"},"example":"2026-08-01"},{"name":"endDate","in":"query","description":"Inclusive end date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"},"example":"2026-08-31"},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataCardTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/cards/{cardId}/top-ups/{topUpId}":{"get":{"tags":["6. Card issuing"],"summary":"Get a card top-up","operationId":"getCardsByCardIdTopUpsByTopUpId","parameters":[{"name":"cardId","in":"path","description":"Issued-card ID returned by /api/v1/cards. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"topUpId","in":"path","description":"Card top-up transaction ID returned by the top-up list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/card-transactions":{"get":{"tags":["6. Card issuing"],"summary":"List enterprise card transactions","operationId":"getCardTransactions","parameters":[{"name":"cardId","in":"query","description":"Card ID returned by /cards.","required":false,"schema":{"type":"string"},"example":337893979704000514},{"name":"type","in":"query","description":"Card transaction type.","required":false,"schema":{"type":"string","enum":["purchase","refund","reversal","topup","fee","adjustment_credit","adjustment_debit","verification","atm_inquiry","atm_withdrawal"]}},{"name":"direction","in":"query","description":"Balance direction.","required":false,"schema":{"type":"string","enum":["in","out"]}},{"name":"status","in":"query","description":"Transaction state.","required":false,"schema":{"type":"string","enum":["pending","processing","authorized","succeeded","failed","declined","voided","cancelled"]}},{"name":"keyword","in":"query","description":"Merchant, transaction number or reference search text.","required":false,"schema":{"type":"string"}},{"name":"startDate","in":"query","description":"Inclusive start date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"},"example":"2026-08-01"},{"name":"endDate","in":"query","description":"Inclusive end date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"},"example":"2026-08-31"},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataCardTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/card-transactions/{transactionId}":{"get":{"tags":["6. Card issuing"],"summary":"Get an enterprise card transaction","operationId":"getCardTransactionsByTransactionId","parameters":[{"name":"transactionId","in":"path","description":"Transaction ID returned by the corresponding transaction list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/card-products":{"get":{"tags":["6. Card issuing"],"summary":"List card products available for issuance","description":"Call after the contact is ready. Select a product whose entity type, country, KYB requirement and remaining inventory match the contact and enterprise.","operationId":"getCardProducts","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListCardProductResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/card-products/{productId}":{"get":{"tags":["6. Card issuing"],"summary":"Get a card product","operationId":"getCardProductsByProductId","parameters":[{"name":"productId","in":"path","description":"Card product ID returned by /api/v1/card-products. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardProductResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/card-applications/{applicationId}":{"get":{"tags":["6. Card issuing"],"summary":"Get a card application","operationId":"getCardApplicationsByApplicationId","parameters":[{"name":"applicationId","in":"path","description":"Card application ID returned by /api/v1/card-applications. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseCardApplicationResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/blockchain-addresses":{"get":{"tags":["2. Receiving accounts"],"summary":"List enterprise blockchain receiving addresses","description":"Use the returned ID as blockchainAddressId when creating an invoice that should receive stablecoin payment.","operationId":"getBlockchainAddresses","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListBlockchainAddressResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/blockchain-addresses/{addressId}":{"get":{"tags":["2. Receiving accounts"],"summary":"Get an enterprise blockchain receiving address","operationId":"getBlockchainAddressesByAddressId","parameters":[{"name":"addressId","in":"path","description":"Blockchain receiving-address ID returned by /api/v1/blockchain-addresses. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBlockchainAddressResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/bank-accounts":{"get":{"tags":["2. Receiving accounts"],"summary":"List enterprise bank receiving accounts","description":"Use the returned ID as bankAccountId when creating an invoice that should receive fiat payment.","operationId":"getBankAccounts","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListBankAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/bank-accounts/{accountId}":{"get":{"tags":["2. Receiving accounts"],"summary":"Get an enterprise bank receiving account","operationId":"getBankAccountsByAccountId","parameters":[{"name":"accountId","in":"path","description":"Account ID returned by the corresponding account list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBankAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/assets":{"get":{"tags":["1. Assets and accounts"],"summary":"List assets enabled for enterprise use","description":"Start every integration here. Select an enabled currency and network before querying accounts or creating a transaction.","operationId":"getAssets","parameters":[{"name":"assetType","in":"query","description":"Asset class.","required":false,"schema":{"type":"string","enum":["fiat","crypto"]}},{"name":"network","in":"query","description":"Network code returned by this endpoint; omit to list every enabled network.","required":false,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListAssetResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/assets/{currency}":{"get":{"tags":["1. Assets and accounts"],"summary":"Get enabled networks for an asset","operationId":"getAssetsByCurrency","parameters":[{"name":"currency","in":"path","description":"Enabled asset code returned by /api/v1/assets.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListAssetResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/agent/tasks/{taskId}":{"get":{"tags":["8. Treasury Agent"],"summary":"Get a Treasury Agent task","operationId":"getAgentTasksByTaskId","parameters":[{"name":"taskId","in":"path","description":"Treasury Agent task ID returned when the task is created. Keep IDs as strings.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseAgentTaskResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/agent/tasks/{taskId}/events":{"get":{"tags":["8. Treasury Agent"],"summary":"List Treasury Agent task events","operationId":"getAgentTasksByTaskIdEvents","parameters":[{"name":"taskId","in":"path","description":"Treasury Agent task ID returned when the task is created. Keep IDs as strings.","required":true,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListAgentTaskEventResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/agent/capabilities":{"get":{"tags":["8. Treasury Agent"],"summary":"List Treasury Agent capabilities enabled for the enterprise","operationId":"getAgentCapabilities","parameters":[{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListAgentCapabilityResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/accounts":{"get":{"tags":["1. Assets and accounts"],"summary":"List enterprise asset accounts","description":"Call after listing assets. Keep the returned account ID as a string and use it for balances, transactions and card funding.","operationId":"getAccounts","parameters":[{"name":"currency","in":"query","description":"Asset code returned by GET /api/v1/assets.","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","description":"Asset class.","required":false,"schema":{"type":"string","enum":["fiat","crypto"]}},{"name":"network","in":"query","description":"Network code returned by GET /api/v1/assets.","required":false,"schema":{"type":"string"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseListAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/accounts/{accountId}":{"get":{"tags":["1. Assets and accounts"],"summary":"Get an enterprise asset account","operationId":"getAccountsByAccountId","parameters":[{"name":"accountId","in":"path","description":"Account ID returned by the corresponding account list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseAccountResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/accounts/{accountId}/transactions":{"get":{"tags":["1. Assets and accounts"],"summary":"List account transactions","operationId":"getAccountsByAccountIdTransactions","parameters":[{"name":"accountId","in":"path","description":"Account ID returned by the corresponding account list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"type","in":"query","description":"Exact transaction type returned in the type field; omit to list all types.","required":false,"schema":{"type":"string"}},{"name":"direction","in":"query","description":"Balance movement direction.","required":false,"schema":{"type":"string","enum":["credit","debit"]}},{"name":"startDate","in":"query","description":"Inclusive start date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"},"example":"2026-08-01"},{"name":"endDate","in":"query","description":"Inclusive end date in YYYY-MM-DD format.","required":false,"schema":{"type":"string"},"example":"2026-08-31"},{"name":"page","in":"query","description":"One-based result page number.","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Maximum records returned per page; values above 100 are capped.","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageDataAccountTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}},"/api/v1/accounts/{accountId}/transactions/{transactionId}":{"get":{"tags":["1. Assets and accounts"],"summary":"Get an account transaction","operationId":"getAccountsByAccountIdTransactionsByTransactionId","parameters":[{"name":"accountId","in":"path","description":"Account ID returned by the corresponding account list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"transactionId","in":"path","description":"Transaction ID returned by the corresponding transaction list endpoint. Keep IDs as strings.","required":true,"schema":{"pattern":"[0-9]+","type":"string","example":"337893979704000512"}},{"name":"X-Timestamp","in":"header","description":"Current Unix epoch time in seconds. Requests older or newer than five minutes are rejected.","required":true,"schema":{"pattern":"[0-9]{10}","type":"string","example":"1787562000"}},{"name":"X-Request-ID","in":"header","description":"Unique 16-128 character request identifier used for replay protection; never reuse it for a different HTTP request.","required":true,"schema":{"pattern":"[A-Za-z0-9._:-]{16,128}","type":"string","example":"018f6f4e-8f62-7fc2-9c4b-7be2f4203b6a"}},{"name":"X-Content-SHA256","in":"header","description":"Lowercase hexadecimal SHA-256 digest of the exact raw request body; use the digest of zero bytes when no body is sent.","required":true,"schema":{"pattern":"[0-9a-f]{64}","type":"string","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}},{"name":"X-Signature","in":"header","description":"v1-prefixed lowercase HMAC-SHA256 signature of timestamp, method, path, raw query, content hash, request ID and API key.","required":true,"schema":{"pattern":"v1=[0-9a-f]{64}","type":"string","example":"v1=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}},{"name":"Accept-Language","in":"header","description":"Language for human-readable error messages. Numeric code values are language-neutral.","required":false,"schema":{"type":"string","enum":["en-US","zh-CN","zh-TW"],"default":"en-US"}}],"responses":{"400":{"description":"Malformed JSON, missing header or invalid request parameter","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"500":{"description":"Unexpected internal error; contact support with X-Request-ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"403":{"description":"API-key scope, subscription, tenant or policy does not allow the operation","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"200":{"description":"OK","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}},"X-Quota-Limit":{"description":"Monthly API request allowance for the subscription.","schema":{"type":"integer","format":"int64"}},"X-Quota-Remaining":{"description":"Requests remaining in the current monthly allowance after this request.","schema":{"type":"integer","format":"int64"}},"X-Quota-Reset":{"description":"Unix epoch time in seconds when the monthly allowance resets.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseAccountTransactionResponse"}}}},"401":{"description":"Invalid API key, content hash, signature, timestamp or request ID","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"404":{"description":"Resource not found in this enterprise and environment","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"422":{"description":"Business rule rejected the request","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"503":{"description":"A required platform service is temporarily unavailable","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"409":{"description":"Idempotency or resource-state conflict","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"429":{"description":"Per-minute rate limit or monthly quota exceeded","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}},"413":{"description":"Request body is too large","headers":{"X-Request-ID":{"description":"Request identifier echoed for support and reconciliation.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseVoid"}}}}}}}},"components":{"schemas":{"ApiResponseVoid":{"title":"Void API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"object","description":"Null."}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is null. Every listed property is present in JSON; descriptions identify values that may be null."},"WebhookEndpointRequest":{"title":"Webhook Endpoint request","required":["events","url"],"type":"object","properties":{"url":{"maxLength":500,"minLength":0,"type":"string","description":"Required. Public callback URL. Live endpoints must use HTTPS.","example":"https://example.com/webhooks/events"},"events":{"maxItems":32,"minItems":1,"type":"array","description":"Required. Event patterns to receive.","example":["card.*","invoice.*","payment.link.*"],"items":{"type":"string","description":"Event patterns to receive.","example":"[\"card.*\",\"invoice.*\",\"payment.link.*\"]"}}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseWebhookEndpointResponse":{"title":"Webhook Endpoint API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/WebhookEndpointResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `WebhookEndpointResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"WebhookEndpointResponse":{"title":"Webhook Endpoint","required":["events","id","lastStatus","lastTriggeredAt","secret","status","url"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"url":{"type":"string","description":"Public webhook callback URL."},"events":{"type":"array","description":"Event names or wildcard patterns subscribed by the webhook endpoint.","items":{"type":"string"}},"status":{"type":"string","description":"Endpoint state: active = deliveries enabled; inactive = deliveries disabled.","enum":["active","inactive"]},"secret":{"type":"string","description":"Webhook signing secret returned only when the endpoint is created; store it securely."},"lastStatus":{"type":"integer","description":"Most recent HTTP status returned by the webhook receiver.","format":"int32"},"lastTriggeredAt":{"type":"string","description":"UTC date-time when the webhook endpoint was most recently triggered.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"WebhookTestRequest":{"title":"Webhook Test request","required":["eventType"],"type":"object","properties":{"eventType":{"type":"string","description":"Required. Concrete sandbox event to enqueue for this endpoint.","example":"transfer.succeeded","enum":["card.application.created","card.application.failed","card.issued","card.topup.succeeded","card.topup.failed","card.purchase.succeeded","card.purchase.declined","card.refund.succeeded","card.frozen","card.unfrozen","card.cancelled","receivable.created","receivable.sent","receivable.cancelled","receivable.payment.updated","payment.succeeded","payment.failed","payment.settled","payment.refunded","payment.reversed","invoice.created","invoice.sent","invoice.payment.updated","payment.link.created","payment.link.paid","agent.task.completed","transfer.succeeded","transfer.failed","transfer.rejected","transfer.cancelled","batch_transfer.completed","batch_transfer.partial_failed","batch_transfer.failed","batch_transfer.rejected"]}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseWebhookTestResponse":{"title":"Webhook Test API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/WebhookTestResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `WebhookTestResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"WebhookTestResponse":{"title":"Webhook Test","required":["deliveryId","endpointId","eventId","eventType","status"],"type":"object","properties":{"eventId":{"type":"string","description":"Webhook event identifier shared by every attempt to deliver the same event."},"deliveryId":{"type":"string","description":"Unique webhook delivery-attempt identifier."},"endpointId":{"type":"string","description":"Webhook endpoint ID targeted by the delivery; keep IDs as strings."},"eventType":{"type":"string","description":"Concrete event name queued for delivery."},"status":{"type":"string","description":"Initial delivery state: pending = queued for asynchronous delivery.","enum":["pending"]}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"TransferDocumentRequest":{"title":"Transfer Document request","required":["documentId","role"],"type":"object","properties":{"documentId":{"type":"string","description":"Required. Document ID returned by POST /api/v1/transfers/documents/{role}."},"role":{"maxLength":64,"minLength":0,"type":"string","description":"Required. Uploaded identity-image role."},"referenceNo":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Customer-facing or provider reference number used for reconciliation."},"counterpartyName":{"maxLength":255,"minLength":0,"type":"string","description":"Optional. The counterparty name value for this resource."},"effectiveDate":{"type":"string","description":"Optional. The effective date value for this resource.","format":"date"},"expiryDate":{"type":"string","description":"Optional. Identity document expiry date in ISO-8601 date format; null when not supplied.","format":"date"},"applicablePurposes":{"maxItems":20,"minItems":0,"type":"array","description":"Optional. The applicable purposes value for this resource.","items":{"type":"string"}}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"TransferRequest":{"title":"Transfer request","required":["amount","sourceAccountId"],"type":"object","properties":{"sourceAccountId":{"type":"string","description":"Required. Enterprise account ID returned by GET /api/v1/accounts."},"destinationAccountId":{"maxLength":32,"minLength":0,"type":"string","description":"Conditionally required: Supply a saved destinationAccountId, or direct recipient fields when it is omitted. Saved contact account ID returned by GET /api/v1/contacts/{contactId}/accounts. Omit it when supplying a direct blockchain address or bank account, including a mainland CNY bank account."},"amount":{"minimum":0,"exclusiveMinimum":true,"type":"number","description":"Required. Decimal monetary amount represented as a string to preserve precision."},"recipientCurrency":{"maxLength":16,"minLength":0,"type":"string","description":"Conditionally required: Set CNY for a direct mainland CNY payout from a CNH source account. Currency received by the beneficiary. Set CNY for a direct mainland CNY payout from a CNH source account."},"recipientAmount":{"minimum":0,"exclusiveMinimum":true,"type":"number","description":"Optional. The recipient amount value for this resource."},"memo":{"maxLength":500,"minLength":0,"type":"string","description":"Optional. Internal contact note."},"clientOrderNo":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Caller-defined business order number. Must be unique within the enterprise and environment."},"paymentPurpose":{"maxLength":64,"minLength":0,"type":"string","description":"Optional. The payment purpose value for this resource."},"purposeNote":{"maxLength":500,"minLength":0,"type":"string","description":"Optional. The purpose note value for this resource."},"recipientAddress":{"maxLength":255,"minLength":0,"type":"string","description":"Conditionally required: Required for a direct crypto transfer when destinationAccountId is omitted. Ad-hoc blockchain destination. Required for crypto when destinationAccountId is omitted."},"recipientBankName":{"maxLength":128,"minLength":0,"type":"string","description":"Conditionally required: Required for a direct fiat transfer when destinationAccountId is omitted. Direct beneficiary bank name. Required for fiat when destinationAccountId is omitted."},"recipientBankCode":{"maxLength":64,"minLength":0,"type":"string","description":"Optional. The recipient bank code value for this resource."},"recipientBranchCode":{"maxLength":64,"minLength":0,"type":"string","description":"Optional. The recipient branch code value for this resource."},"recipientBankBranch":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. The recipient bank branch value for this resource."},"recipientBankAddress":{"maxLength":500,"minLength":0,"type":"string","description":"Optional. The recipient bank address value for this resource."},"recipientBankCountryCode":{"pattern":"(?i)[A-Z]{2}","type":"string","description":"Optional. ISO 3166-1 alpha-2 bank country. Defaults to CN for a direct CNY payout."},"recipientBeneficiaryType":{"pattern":"individual|business","type":"string","description":"Optional. Beneficiary account type. Defaults to business when recipientRegistrationNumber is supplied; otherwise defaults to individual for a direct bank payout."},"recipientRegistrationType":{"maxLength":64,"minLength":0,"type":"string","description":"Conditionally required: Optional for a business beneficiary; defaults to business_registration when recipientRegistrationNumber is supplied. Business-beneficiary identifier type, such as business_registration, brn, company_number, vat or ein. Defaults to business_registration when recipientRegistrationNumber is supplied."},"recipientRegistrationNumber":{"maxLength":128,"minLength":0,"type":"string","description":"Conditionally required: Optional business registration or tax identifier for direct or saved beneficiaries. Business registration or tax identifier. Supported for direct and saved beneficiaries across regions."},"recipientBankAccountType":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. The recipient bank account type value for this resource."},"recipientAccountIdentifierType":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. The recipient account identifier type value for this resource."},"recipientRoutingCode":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. The recipient routing code value for this resource."},"recipientRoutingCodeType":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. The recipient routing code type value for this resource."},"recipientPaymentRail":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. The recipient payment rail value for this resource."},"recipientAccountNo":{"maxLength":128,"minLength":0,"type":"string","description":"Conditionally required: Required for a direct fiat transfer when destinationAccountId is omitted. Direct beneficiary account number or IBAN. Required for fiat when destinationAccountId is omitted."},"recipientAccountHolder":{"maxLength":128,"minLength":0,"type":"string","description":"Conditionally required: Required for a direct CNY transfer when destinationAccountId is omitted. Direct beneficiary account-holder name. Required for a direct CNY payout; no beneficiary identity number is required."},"swiftCode":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. SWIFT/BIC used for international bank routing."},"documents":{"maxItems":20,"minItems":0,"type":"array","description":"Optional. The documents value for this resource.","items":{"$ref":"#/components/schemas/TransferDocumentRequest"}}},"description":"Supply a saved destinationAccountId or direct recipient fields. A direct mainland CNY payout requires a CNH source account, recipientCurrency=CNY, recipientBankName, recipientAccountHolder and recipientAccountNo; no contact or beneficiary identity number is required. Business registration identifiers are optional."},"ApiResponseTransferResponse":{"title":"Transfer API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/TransferResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `TransferResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"TransferResponse":{"title":"Transfer","required":["amount","batchId","clientOrderNo","completedAt","createdAt","currency","destinationAccountId","failureReason","id","memo","network","paymentMethod","paymentPurpose","purposeNote","recipientAccountHolder","recipientAccountIdentifierType","recipientAccountNo","recipientAddress","recipientAmount","recipientBankAccountType","recipientBankAddress","recipientBankBranch","recipientBankCode","recipientBankCountryCode","recipientBankName","recipientBeneficiaryType","recipientBranchCode","recipientCurrency","recipientPaymentRail","recipientRegistrationNumber","recipientRegistrationType","recipientRoutingCode","recipientRoutingCodeType","referenceNo","status","swiftCode","transferNo"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"transferNo":{"type":"string","description":"The transfer no value for this resource."},"clientOrderNo":{"type":"string","description":"The client order no value for this resource."},"batchId":{"type":"string","description":"The batch id value for this resource."},"destinationAccountId":{"type":"string","description":"The destination account id value for this resource."},"recipientAddress":{"type":"string","description":"The recipient address value for this resource."},"recipientBankName":{"type":"string","description":"The recipient bank name value for this resource."},"recipientBankCode":{"type":"string","description":"The recipient bank code value for this resource."},"recipientBranchCode":{"type":"string","description":"The recipient branch code value for this resource."},"recipientBankBranch":{"type":"string","description":"The recipient bank branch value for this resource."},"recipientBankAddress":{"type":"string","description":"The recipient bank address value for this resource."},"recipientBankCountryCode":{"type":"string","description":"The recipient bank country code value for this resource."},"recipientBeneficiaryType":{"type":"string","description":"The recipient beneficiary type value for this resource."},"recipientRegistrationType":{"type":"string","description":"The recipient registration type value for this resource."},"recipientRegistrationNumber":{"type":"string","description":"The recipient registration number value for this resource."},"recipientBankAccountType":{"type":"string","description":"The recipient bank account type value for this resource."},"recipientAccountIdentifierType":{"type":"string","description":"The recipient account identifier type value for this resource."},"recipientAccountNo":{"type":"string","description":"The recipient account no value for this resource."},"recipientAccountHolder":{"type":"string","description":"The recipient account holder value for this resource."},"recipientRoutingCode":{"type":"string","description":"The recipient routing code value for this resource."},"recipientRoutingCodeType":{"type":"string","description":"The recipient routing code type value for this resource."},"recipientPaymentRail":{"type":"string","description":"The recipient payment rail value for this resource."},"swiftCode":{"type":"string","description":"SWIFT/BIC used for international bank routing."},"paymentMethod":{"type":"string","description":"Payment rail, such as fiat or crypto."},"network":{"type":"string","description":"Enabled blockchain network; null for fiat-only resources."},"amount":{"type":"string","description":"Decimal monetary amount represented as a string to preserve precision."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"recipientAmount":{"type":"string","description":"The recipient amount value for this resource."},"recipientCurrency":{"type":"string","description":"The recipient currency value for this resource."},"memo":{"type":"string","description":"Internal contact note."},"paymentPurpose":{"type":"string","description":"The payment purpose value for this resource."},"purposeNote":{"type":"string","description":"The purpose note value for this resource."},"status":{"type":"string","description":"Current lifecycle or processing state for the containing resource.","enum":["pending_approval","processing","succeeded","failed","rejected","cancelled"]},"referenceNo":{"type":"string","description":"Customer-facing or provider reference number used for reconciliation."},"failureReason":{"type":"string","description":"Human-readable rejection or failure reason; null when the operation has not failed."},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"completedAt":{"type":"string","description":"UTC date-time when task processing completed; null while unfinished.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseTransferDocumentUploadResponse":{"title":"Transfer Document Upload API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/TransferDocumentUploadResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `TransferDocumentUploadResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"TransferDocumentUploadResponse":{"title":"Transfer Document Upload","required":["documentId","fileName","fileSize","mimeType","precheckMessage","precheckStatus","role","status"],"type":"object","properties":{"documentId":{"type":"string","description":"The document id value for this resource."},"role":{"type":"string","description":"Uploaded identity-image role."},"fileName":{"type":"string","description":"Original uploaded identity-document file name."},"mimeType":{"type":"string","description":"Detected upload media type."},"fileSize":{"type":"string","description":"Uploaded file size in bytes."},"status":{"type":"string","description":"Current lifecycle or processing state for the containing resource."},"precheckStatus":{"type":"string","description":"The precheck status value for this resource."},"precheckMessage":{"type":"string","description":"The precheck message value for this resource."}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"TransferDocumentRequirementRequest":{"title":"Transfer Document Requirement request","type":"object","properties":{"paymentPurpose":{"maxLength":64,"minLength":0,"type":"string","description":"Optional. The payment purpose value for this resource."},"contactType":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. The contact type value for this resource."},"sameNameStatus":{"pattern":"same|different|unknown","type":"string","description":"Optional. The same name status value for this resource."},"paymentMethod":{"pattern":"fiat|crypto","type":"string","description":"Optional. Payment rail, such as fiat or crypto."},"channelCode":{"maxLength":64,"minLength":0,"type":"string","description":"Optional. The channel code value for this resource."},"currency":{"maxLength":16,"minLength":0,"type":"string","description":"Optional. ISO currency or enabled asset code used for monetary values."},"recipientCountry":{"pattern":"(?i)[A-Z]{2}","type":"string","description":"Optional. The recipient country value for this resource."},"amount":{"minimum":0,"exclusiveMinimum":false,"type":"number","description":"Optional. Decimal monetary amount represented as a string to preserve precision."},"contactId":{"pattern":"[0-9]+","type":"string","description":"Optional. Enterprise contact ID associated with the resource; keep IDs as strings."},"directDocumentRoles":{"maxItems":20,"minItems":0,"uniqueItems":true,"type":"array","description":"Optional. The direct document roles value for this resource.","items":{"type":"string"}},"contactDocumentRoles":{"maxItems":20,"minItems":0,"uniqueItems":true,"type":"array","description":"Optional. The contact document roles value for this resource.","items":{"type":"string"}},"approvedContactDocumentRoles":{"maxItems":20,"minItems":0,"uniqueItems":true,"type":"array","description":"Optional. The approved contact document roles value for this resource.","items":{"type":"string"}}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseTransferDocumentRequirementResponse":{"title":"Transfer Document Requirement API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/TransferDocumentRequirementResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `TransferDocumentRequirementResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"TransferDocumentRequirementResponse":{"title":"Transfer Document Requirement","required":["matchedRuleIds","message","missingGroups","result","sameNameStatus","satisfiedRoles"],"type":"object","properties":{"result":{"type":"string","description":"The result value for this resource.","enum":["not_required","satisfied","review_required","missing"]},"sameNameStatus":{"type":"string","description":"The same name status value for this resource.","enum":["same","different","unknown"]},"matchedRuleIds":{"type":"array","description":"The matched rule ids value for this resource.","items":{"type":"string"}},"satisfiedRoles":{"uniqueItems":true,"type":"array","description":"The satisfied roles value for this resource.","items":{"type":"string"}},"missingGroups":{"type":"array","description":"The missing groups value for this resource.","items":{"type":"array","items":{"type":"string"}}},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"TransferBatchRequest":{"title":"Transfer Batch request","required":["items"],"type":"object","properties":{"items":{"maxItems":500,"minItems":1,"type":"array","description":"Required. Resources returned on the current result page.","items":{"$ref":"#/components/schemas/TransferRequest"}},"fileName":{"maxLength":255,"minLength":0,"type":"string","description":"Optional. Original uploaded identity-document file name."}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseTransferBatchResponse":{"title":"Transfer Batch API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/TransferBatchResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `TransferBatchResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"TransferBatchResponse":{"title":"Transfer Batch","required":["batchNumber","completedAt","createdAt","id","items","status","totalAmount","totalItems"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"batchNumber":{"type":"string","description":"The batch number value for this resource."},"totalItems":{"type":"integer","description":"The total items value for this resource.","format":"int32"},"totalAmount":{"type":"string","description":"The total amount value for this resource."},"status":{"type":"string","description":"Current lifecycle or processing state for the containing resource.","enum":["pending_approval","processing","succeeded","partial_failed","failed","rejected"]},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"completedAt":{"type":"string","description":"UTC date-time when task processing completed; null while unfinished.","format":"date-time"},"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/TransferResponse"}}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseInvoiceResponse":{"title":"Invoice API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/InvoiceResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `InvoiceResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"InvoiceResponse":{"title":"Invoice","required":["amount","collectionMode","contactId","createdAt","currency","customerEmail","customerName","customerType","description","dueDate","id","invoiceNo","issueDate","paidAmount","paymentMethod","paymentUrl","status","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"invoiceNo":{"type":"string","description":"Customer-facing invoice number."},"contactId":{"type":"string","description":"Enterprise contact ID associated with the resource; keep IDs as strings."},"customerType":{"type":"string","description":"The customer type value for this resource.","enum":["business","consumer"]},"collectionMode":{"type":"string","description":"The collection mode value for this resource.","enum":["direct","platform_routed"]},"customerName":{"type":"string","description":"Customer legal or display name copied to the invoice."},"customerEmail":{"type":"string","description":"Customer email copied to the invoice."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"paymentMethod":{"type":"string","description":"Payment rail, such as fiat or crypto."},"amount":{"type":"string","description":"Decimal monetary amount represented as a string to preserve precision."},"paidAmount":{"type":"string","description":"Amount already paid against the invoice, represented as a decimal string."},"status":{"type":"string","description":"Invoice state: draft = editable; sent = awaiting payment; partial_paid/fully_paid/overpaid describe settlement; overdue = unpaid after due date; cancelled/refunded are terminal.","enum":["draft","sent","partial_paid","fully_paid","overpaid","overdue","cancelled","refunded"]},"issueDate":{"type":"string","description":"Invoice issue date in ISO-8601 date format."},"dueDate":{"type":"string","description":"Invoice due date in ISO-8601 date format."},"description":{"type":"string","description":"Customer-facing or operational description of the resource."},"paymentUrl":{"type":"string","description":"Hosted customer payment URL."},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"InvoiceLineItemRequest":{"title":"Invoice Line Item request","required":["amount","description","quantity","unitPrice"],"type":"object","properties":{"description":{"maxLength":255,"minLength":0,"type":"string","description":"Required. Line-item description.","example":"Consulting services"},"quantity":{"minimum":0.000001,"exclusiveMinimum":false,"type":"number","description":"Required. Quantity sold.","example":2},"unitPrice":{"minimum":0,"exclusiveMinimum":false,"type":"number","description":"Required. Price per unit.","example":500},"amount":{"minimum":0,"exclusiveMinimum":false,"type":"number","description":"Required. Line total.","example":1000}},"description":"Optional itemized invoice lines."},"InvoiceRequest":{"title":"Invoice request","required":["amount","currency"],"type":"object","properties":{"contactId":{"pattern":"[0-9]+","type":"string","description":"Optional. Contact ID. Omit it to create a consumer checkout link.","example":"123456789012345678"},"currency":{"maxLength":16,"minLength":0,"type":"string","description":"Required. Invoice currency code.","example":"USDT"},"amount":{"minimum":0.01,"exclusiveMinimum":false,"type":"number","description":"Required. Total amount due.","example":1000},"description":{"maxLength":1000,"minLength":0,"type":"string","description":"Optional. Payment purpose or invoice memo.","example":"August consulting services"},"dueDate":{"type":"string","description":"Optional. Due date in ISO-8601 date format.","format":"date","example":"2026-09-30"},"bankAccountId":{"pattern":"[0-9]+","type":"string","description":"Optional. Fiat receiving account ID. Do not supply with blockchainAddressId.","example":"123456789012345681"},"blockchainAddressId":{"pattern":"[0-9]+","type":"string","description":"Optional. Stablecoin receiving-address ID. Do not supply with bankAccountId.","example":"123456789012345682"},"lineItems":{"type":"array","description":"Optional. Itemized invoice lines.","items":{"$ref":"#/components/schemas/InvoiceLineItemRequest"}}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"PaymentLinkRequest":{"title":"Payment Link request","type":"object","properties":{"invoiceId":{"pattern":"[0-9]+","type":"string","description":"Conditionally required: Supply invoiceId, or supply both currency and amount. Existing invoice ID.","example":"123456789012345683"},"currency":{"maxLength":16,"minLength":0,"type":"string","description":"Conditionally required: Required with amount when invoiceId is omitted. Standalone-link currency code.","example":"USDT"},"amount":{"minimum":0.01,"exclusiveMinimum":false,"type":"number","description":"Conditionally required: Required with currency when invoiceId is omitted. Standalone-link amount.","example":250},"description":{"maxLength":1000,"minLength":0,"type":"string","description":"Optional. Customer-facing payment description.","example":"Order 2026-042"},"expiresAt":{"type":"string","description":"Optional. Future expiry in ISO-8601 date-time format.","format":"date-time"}},"description":"Supply invoiceId, or supply both currency and amount for a standalone link."},"ApiResponsePaymentLinkResponse":{"title":"Payment Link API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PaymentLinkResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PaymentLinkResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PaymentLinkResponse":{"title":"Payment Link","required":["amount","createdAt","currency","description","expiresAt","id","invoiceId","paymentUrl","status"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"invoiceId":{"type":"string","description":"Linked invoice ID; null for a standalone payment link. Keep IDs as strings."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"amount":{"type":"string","description":"Decimal monetary amount represented as a string to preserve precision."},"description":{"type":"string","description":"Customer-facing or operational description of the resource."},"paymentUrl":{"type":"string","description":"Hosted customer payment URL."},"status":{"type":"string","description":"Payment-link state: active = accepts payment; paid = settled; expired/cancelled = no longer accepts payment.","enum":["active","paid","expired","cancelled"]},"expiresAt":{"type":"string","description":"UTC date-time after which the link or session can no longer be used.","format":"date-time"},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"AddressRequest":{"title":"Address request","type":"object","properties":{"countryCode":{"pattern":"(?i)[A-Z]{2}","type":"string","description":"Conditionally required: Required for card issuing. ISO 3166-1 alpha-2 country code.","example":"GB"},"state":{"type":"string","description":"Conditionally required: Required for card issuing. State, province or region.","example":"England"},"city":{"type":"string","description":"Conditionally required: Required for card issuing. City or locality.","example":"London"},"address":{"type":"string","description":"Conditionally required: Required for card issuing. Street address.","example":"10 Downing Street"},"postalCode":{"type":"string","description":"Conditionally required: Required for card issuing. Postal or ZIP code.","example":"SW1A 2AA"}},"description":"Residential address required for card issuing."},"ContactRequest":{"title":"Contact request","type":"object","properties":{"externalReference":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Your stable contact reference. Reuse it when retrying or reconciling.","example":"customer-42"},"name":{"maxLength":128,"minLength":0,"type":"string","description":"Conditionally required: Required for POST /contacts; optional for PATCH /contacts/{contactId}. Contact display name; use structured name fields for cardholder identity.","example":"Ada Lovelace"},"type":{"pattern":"customer|supplier|employee|partner|contractor|investor|subsidiary|self|other","type":"string","description":"Conditionally required: Required for POST /contacts; optional for PATCH /contacts/{contactId}. Dashboard role: customer (buyer), supplier (vendor), employee, partner, contractor, investor, subsidiary, self, or other.","example":"customer","enum":["customer","supplier","employee","partner","contractor","investor","subsidiary","self","other"]},"entityType":{"pattern":"individual|company","type":"string","description":"Optional. Legal entity type: individual for a person or company for an organization.","example":"individual","enum":["individual","company"],"default":"individual"},"email":{"type":"string","description":"Conditionally required: Required for card issuing. Contact email address. Required when this contact is used as a cardholder.","example":"ada@example.com"},"mobilePrefix":{"type":"string","description":"Conditionally required: Required when phone is supplied. International calling prefix. Required when phone is supplied.","example":"+44"},"phone":{"type":"string","description":"Optional. Phone number without the international prefix.","example":"7700900123"},"dateOfBirth":{"type":"string","description":"Conditionally required: Required for card issuing. Date of birth in ISO-8601 date format.","format":"date","example":"1990-12-10"},"nationalityCountryCode":{"pattern":"(?i)[A-Z]{2}","type":"string","description":"Conditionally required: Required for card issuing. ISO 3166-1 alpha-2 nationality code.","example":"GB"},"identity":{"$ref":"#/components/schemas/IdentityRequest"},"residentialAddress":{"$ref":"#/components/schemas/AddressRequest"},"industry":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Industry for a company contact.","example":"Software"},"registrationNumber":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Company registration number.","example":"12345678"},"taxNumber":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Company tax number.","example":"GB123456789"},"memo":{"maxLength":1000,"minLength":0,"type":"string","description":"Optional. Internal note shown with the contact.","example":"Priority customer"},"givenName":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. The given name value for this resource."},"familyName":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. The family name value for this resource."},"latinGivenName":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. The latin given name value for this resource."},"latinFamilyName":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. The latin family name value for this resource."}},"description":"POST /contacts requires name and type; PATCH accepts changed fields only. Card issuing additionally requires the identity and residential-address details described by their nested models. Each direct field is labelled Required, Conditionally required, or Optional."},"IdentityRequest":{"title":"Identity request","type":"object","properties":{"type":{"pattern":"passport|id_card|resident_permit","type":"string","description":"Conditionally required: Required for card issuing. Document type. Use passport for a passport, id_card for a national identity card, or resident_permit for a residence permit.","example":"passport","enum":["passport","id_card","resident_permit"]},"number":{"type":"string","description":"Conditionally required: Required for card issuing. Identity document number.","example":"123456789"},"countryCode":{"pattern":"(?i)[A-Z]{2}","type":"string","description":"Conditionally required: Required for card issuing. ISO 3166-1 alpha-2 issuing-country code.","example":"GB"},"expiryDate":{"type":"string","description":"Optional. Document expiry date in ISO-8601 date format.","format":"date","example":"2032-12-10"}},"description":"Identity document details required for card issuing."},"AddressResponse":{"title":"Address","required":["address","city","countryCode","postalCode","state"],"type":"object","properties":{"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code."},"state":{"type":"string","description":"State, province or region."},"city":{"type":"string","description":"City or locality."},"address":{"type":"string","description":"Street address or blockchain address, according to the containing resource."},"postalCode":{"type":"string","description":"Postal or ZIP code."}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseContactResponse":{"title":"Contact API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/ContactResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `ContactResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"ContactResponse":{"title":"Contact","required":["cardIssuingStatus","complianceStatus","createdAt","dateOfBirth","email","entityType","externalReference","familyName","givenName","id","identity","industry","latinFamilyName","latinGivenName","memo","missingFields","mobilePrefix","name","nationalityCountryCode","phone","registrationNumber","residentialAddress","taxNumber","type","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"externalReference":{"type":"string","description":"Stable contact reference assigned by the API customer."},"name":{"type":"string","description":"Customer-facing resource or capability name."},"type":{"type":"string","description":"Resource-specific classification or transaction type.","enum":["customer","supplier","employee","partner","contractor","investor","subsidiary","self","other"]},"entityType":{"type":"string","description":"Whether the contact is an individual or a company.","enum":["individual","company"]},"email":{"type":"string","description":"Contact email address."},"mobilePrefix":{"type":"string","description":"International telephone calling prefix."},"phone":{"type":"string","description":"Contact phone number without the international calling prefix."},"dateOfBirth":{"type":"string","description":"Contact date of birth in ISO-8601 date format.","format":"date"},"nationalityCountryCode":{"type":"string","description":"ISO 3166-1 alpha-2 nationality code."},"identity":{"$ref":"#/components/schemas/IdentityResponse"},"residentialAddress":{"$ref":"#/components/schemas/AddressResponse"},"industry":{"type":"string","description":"Contact company industry."},"registrationNumber":{"type":"string","description":"Company registration number."},"taxNumber":{"type":"string","description":"Company tax identification number."},"memo":{"type":"string","description":"Internal contact note."},"complianceStatus":{"type":"string","description":"AML result: pending = not finished; clear = no blocking match; review_required = manual review needed; blocked = issuing and payment use is prohibited.","enum":["pending","clear","review_required","blocked"]},"cardIssuingStatus":{"type":"string","description":"Cardholder readiness: incomplete = missing fields or documents; pending = checks in progress; ready = can be submitted; approved = accepted by an issuing channel; rejected = not eligible.","enum":["incomplete","pending","ready","approved","rejected"]},"missingFields":{"type":"array","description":"Contact fields that must be completed before the contact is ready for card issuing.","items":{"type":"string"}},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"},"givenName":{"type":"string","description":"The given name value for this resource."},"familyName":{"type":"string","description":"The family name value for this resource."},"latinGivenName":{"type":"string","description":"The latin given name value for this resource."},"latinFamilyName":{"type":"string","description":"The latin family name value for this resource."}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"IdentityResponse":{"title":"Identity","required":["countryCode","expiryDate","maskedNumber","type"],"type":"object","properties":{"type":{"type":"string","description":"Resource-specific classification or transaction type.","enum":["passport","id_card","resident_permit"]},"maskedNumber":{"type":"string","description":"Masked identity-document number safe for display."},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code."},"expiryDate":{"type":"string","description":"Identity document expiry date in ISO-8601 date format; null when not supplied.","format":"date"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseDocumentResponse":{"title":"Document API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/DocumentResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `DocumentResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"DocumentResponse":{"title":"Document","required":["createdAt","fileName","fileSize","id","mimeType","role","status"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"role":{"type":"string","description":"Uploaded identity-image role.","enum":["passport","identity_front","identity_back"]},"fileName":{"type":"string","description":"Original uploaded identity-document file name."},"mimeType":{"type":"string","description":"Detected upload media type."},"fileSize":{"type":"string","description":"Uploaded file size in bytes."},"status":{"type":"string","description":"Document availability: active = available for channel submission; deleted = no longer available.","enum":["active","deleted"]},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ContactAccountRequest":{"title":"Contact Account request","type":"object","properties":{"type":{"pattern":"blockchain|bank","type":"string","description":"Conditionally required: Required when adding an account; optional when updating one. Destination type: blockchain for a chain address or bank for a bank account.","example":"blockchain","enum":["blockchain","bank"]},"network":{"maxLength":32,"minLength":0,"type":"string","description":"Conditionally required: Required when type is blockchain. Blockchain network returned by GET /api/v1/assets.","example":"TRON"},"address":{"maxLength":255,"minLength":0,"type":"string","description":"Conditionally required: Required when type is blockchain. Public blockchain address.","example":"TXYZ..."},"bankName":{"maxLength":128,"minLength":0,"type":"string","description":"Conditionally required: Required when type is bank. Bank name.","example":"Example Bank"},"bankCode":{"maxLength":64,"minLength":0,"type":"string","description":"Optional. Bank or branch code.","example":"026009593"},"accountIdentifierType":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. Beneficiary account identifier type, for example local or iban."},"routingCode":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Local clearing identifier, for example an ABA number or Sort Code."},"routingCodeType":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. Extensible clearing identifier type, for example aba or sort_code."},"paymentRail":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. Extensible payment network, for example FEDWIRE, CHAPS or SEPA."},"bankCountryCode":{"pattern":"(?i)[A-Z]{2}","type":"string","description":"Optional. ISO 3166-1 alpha-2 country code of the bank. Required for bank destinations.","example":"GB"},"bankAddress":{"maxLength":500,"minLength":0,"type":"string","description":"Optional. Postal address of the bank or branch. Required for bank destinations except mainland CNY accounts."},"beneficiaryIdNumber":{"maxLength":100,"minLength":0,"type":"string","description":"Optional. Beneficiary identity number for a mainland personal CNY account."},"accountNumber":{"maxLength":128,"minLength":0,"type":"string","description":"Conditionally required: Required when type is bank. Bank account number or IBAN.","example":"GB29NWBK60161331926819"},"accountHolder":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Bank account holder name.","example":"Ada Lovelace"},"currency":{"maxLength":16,"minLength":0,"type":"string","description":"Conditionally required: Required when type is bank; optional when type is blockchain. Asset code accepted by the destination.","example":"USDT"},"swiftCode":{"maxLength":32,"minLength":0,"type":"string","description":"Optional. SWIFT/BIC for a bank account.","example":"NWBKGB2L"},"label":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Customer-facing label.","example":"Primary payout account"},"defaultPaymentAmount":{"minimum":0,"exclusiveMinimum":true,"type":"number","description":"Optional. Suggested payment amount.","example":100}},"description":"Adding an account requires type plus the fields described for that type; updating accepts changed fields only."},"ApiResponseContactAccountResponse":{"title":"Contact Account API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/ContactAccountResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `ContactAccountResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"ContactAccountResponse":{"title":"Contact Account","required":["accountHolder","accountIdentifierType","accountNumber","address","bankAddress","bankCode","bankCountryCode","bankName","contactId","createdAt","currency","defaultPaymentAmount","id","label","network","paymentRail","routingCode","routingCodeType","status","swiftCode","type","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"contactId":{"type":"string","description":"Enterprise contact ID associated with the resource; keep IDs as strings."},"type":{"type":"string","description":"Resource-specific classification or transaction type.","enum":["blockchain","bank"]},"network":{"type":"string","description":"Enabled blockchain network; null for fiat-only resources."},"address":{"type":"string","description":"Street address or blockchain address, according to the containing resource."},"bankName":{"type":"string","description":"Bank display name."},"bankCode":{"type":"string","description":"Bank, institution or clearing code."},"accountIdentifierType":{"type":"string","description":"The account identifier type value for this resource."},"routingCode":{"type":"string","description":"Bank routing or clearing code."},"routingCodeType":{"type":"string","description":"Routing-code scheme, such as ABA, sort code or local clearing code."},"paymentRail":{"type":"string","description":"The payment rail value for this resource."},"bankCountryCode":{"type":"string","description":"The bank country code value for this resource."},"bankAddress":{"type":"string","description":"Postal address of the bank or branch."},"accountNumber":{"type":"string","description":"Bank account number or IBAN."},"accountHolder":{"type":"string","description":"Legal name of the bank account holder."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"swiftCode":{"type":"string","description":"SWIFT/BIC used for international bank routing."},"label":{"type":"string","description":"Customer-facing label for the contact destination account."},"defaultPaymentAmount":{"type":"string","description":"Optional suggested payment amount represented as a decimal string."},"status":{"type":"string","description":"Destination state: active = available for use; inactive = retained for history but cannot be selected.","enum":["active","inactive"]},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseCardResponse":{"title":"Card API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/CardResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `CardResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"CardResponse":{"title":"Card","required":["activationStatus","applicationId","balance","contactId","createdAt","currency","expiryMonth","expiryYear","formFactor","fundingMode","id","issueCountryOrRegion","last4","maskedPan","nickname","productId","scheme","status","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"applicationId":{"type":"string","description":"Card application ID that created the card; keep IDs as strings."},"productId":{"type":"string","description":"Card product ID associated with the resource; keep IDs as strings."},"contactId":{"type":"string","description":"Enterprise contact ID associated with the resource; keep IDs as strings."},"maskedPan":{"type":"string","description":"Masked card number; full PAN is available only through a one-time reveal session."},"last4":{"type":"string","description":"Last four card-number digits, safe for display."},"expiryMonth":{"type":"string","description":"Two-digit card expiry month."},"expiryYear":{"type":"string","description":"Four-digit card expiry year."},"fundingMode":{"type":"string","description":"How funds are made available to the card, for example prepaid_balance. Treat new values as additive."},"formFactor":{"type":"string","description":"Issued-card form factor.","enum":["virtual"]},"status":{"type":"string","description":"Card lifecycle: normal = usable; freezing/unfreezing/cancelling = channel reconciliation in progress; frozen = temporarily blocked; cancelled = permanently closed.","enum":["normal","freezing","frozen","unfreezing","cancelling","cancelled"]},"activationStatus":{"type":"string","description":"Channel activation state. Machine-issued virtual cards are active after successful issuance.","enum":["active"]},"balance":{"type":"string","description":"Current card balance represented as a decimal string."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"nickname":{"type":"string","description":"Customer-facing card nickname."},"issueCountryOrRegion":{"type":"string","description":"Country or region under which the card was issued."},"scheme":{"type":"string","description":"Card network scheme."},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"CardTopUpRequest":{"title":"Card Top Up request","required":["amount","sourceAccountId"],"type":"object","properties":{"sourceAccountId":{"pattern":"[0-9]+","type":"string","description":"Required. The card's original funding account ID.","example":"123456789012345680"},"amount":{"minimum":0.01,"exclusiveMinimum":false,"type":"number","description":"Required. Top-up amount in the card currency.","example":50}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseCardTransactionResponse":{"title":"Card Transaction API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/CardTransactionResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `CardTransactionResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"CardTransactionResponse":{"title":"Card Transaction","required":["amount","balanceAfter","cardId","channelTransactionId","createdAt","currency","direction","failureReason","feeAmount","feeCurrency","id","merchantCategoryCode","merchantCity","merchantCountry","merchantName","occurredAt","referenceNo","settlementAmount","settlementCurrency","sourceAccountId","status","transactionNo","type","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"transactionNo":{"type":"string","description":"Platform card transaction number used for support and reconciliation."},"cardId":{"type":"string","description":"Issued-card ID; null until issuance succeeds. Keep IDs as strings."},"sourceAccountId":{"type":"string","description":"Funding account ID used for the operation; keep IDs as strings."},"type":{"type":"string","description":"Transaction kind: purchase/fee/adjustment_debit/atm_withdrawal debit the card; refund/reversal/topup/adjustment_credit credit it; verification and atm_inquiry do not post balance.","enum":["purchase","refund","reversal","topup","fee","adjustment_credit","adjustment_debit","verification","atm_inquiry","atm_withdrawal"]},"direction":{"type":"string","description":"Card balance effect: in = credit; out = debit.","enum":["in","out"]},"amount":{"type":"string","description":"Decimal monetary amount represented as a string to preserve precision."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"status":{"type":"string","description":"Transaction state: pending/processing = not final; authorized = approved and balance-posting; succeeded = completed; failed/declined/cancelled = terminal failure; voided = terminal reversal.","enum":["pending","processing","authorized","succeeded","failed","declined","voided","cancelled"]},"channelTransactionId":{"type":"string","description":"Provider or channel transaction identifier used for support and reconciliation."},"referenceNo":{"type":"string","description":"Customer-facing or provider reference number used for reconciliation."},"merchantName":{"type":"string","description":"Merchant display name supplied by the card network."},"merchantCategoryCode":{"type":"string","description":"ISO 18245 merchant category code supplied by the card network."},"merchantCountry":{"type":"string","description":"Merchant country or region supplied by the card network."},"merchantCity":{"type":"string","description":"Merchant city supplied by the card network."},"occurredAt":{"type":"string","description":"Provider-reported UTC date-time when the card transaction occurred."},"settlementAmount":{"type":"string","description":"Final settlement amount represented as a decimal string; null until available."},"settlementCurrency":{"type":"string","description":"Currency or asset code used for settlement."},"feeAmount":{"type":"string","description":"Transaction fee represented as a decimal string."},"feeCurrency":{"type":"string","description":"Currency or asset code of the fee."},"balanceAfter":{"type":"string","description":"Account or card balance after the transaction, represented as a decimal string."},"failureReason":{"type":"string","description":"Human-readable rejection or failure reason; null when the operation has not failed."},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"SandboxCardPurchaseRequest":{"title":"Sandbox Card Purchase request","required":["amount"],"type":"object","properties":{"amount":{"minimum":0.01,"exclusiveMinimum":false,"type":"number","description":"Required. Simulated purchase amount in the card currency.","example":12.5},"merchantName":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Merchant display name.","example":"Sandbox Store"},"merchantCategoryCode":{"maxLength":16,"minLength":0,"type":"string","description":"Optional. ISO 18245 merchant category code.","example":"5734"}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"HostedCardRevealSessionRequest":{"title":"Hosted Card Reveal Session request","required":["verificationMethod","verificationReference","verificationSubject","verifiedAt"],"type":"object","properties":{"verificationSubject":{"maxLength":128,"minLength":0,"type":"string","description":"Required. Opaque cardholder identifier from the customer's system. Do not send a name, email, phone number, PAN or document number.","example":"customer-user-42"},"verificationMethod":{"maxLength":32,"minLength":0,"type":"string","description":"Required. Second-factor method completed in the customer's own application.","example":"passkey","enum":["totp","sms","email","passkey","biometric","other"]},"verificationReference":{"maxLength":128,"minLength":0,"type":"string","description":"Required. Customer audit reference for the completed verification. It must not contain an OTP or other secret.","example":"verify_01J5Z8YQABCD"},"verifiedAt":{"type":"string","description":"Required. UTC instant when customer verification completed. It must be within the last five minutes.","format":"date-time","example":"2026-08-20T19:15:00Z"}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseHostedCardRevealSessionResponse":{"title":"Hosted Card Reveal Session API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/HostedCardRevealSessionResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `HostedCardRevealSessionResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"HostedCardRevealSessionResponse":{"title":"Hosted Card Reveal Session","required":["expiresAt","id","revealUrl","singleUse"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"revealUrl":{"type":"string","description":"Single-use hosted page URL. Do not log or persist it. Open it in a top-level browser window before expiresAt."},"expiresAt":{"type":"string","description":"UTC date-time after which the link or session can no longer be used.","format":"date-time"},"singleUse":{"type":"boolean","description":"Whether the reveal URL becomes invalid after its first successful use."}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseCardCancellationResponse":{"title":"Card Cancellation API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/CardCancellationResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `CardCancellationResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"CardCancellationResponse":{"title":"Card Cancellation","required":["card","refundTransaction"],"type":"object","properties":{"card":{"$ref":"#/components/schemas/CardResponse"},"refundTransaction":{"$ref":"#/components/schemas/CardTransactionResponse"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"CardApplicationRequest":{"title":"Card Application request","required":["contactId","initialAmount","productId","sourceAccountId"],"type":"object","properties":{"contactId":{"pattern":"[0-9]+","type":"string","description":"Required. Ready contact ID returned by /contacts. Keep IDs as strings.","example":"123456789012345678"},"productId":{"pattern":"[0-9]+","type":"string","description":"Required. Eligible product ID returned by /card-products.","example":"123456789012345679"},"sourceAccountId":{"pattern":"[0-9]+","type":"string","description":"Required. Funding account ID returned by /accounts.","example":"123456789012345680"},"initialAmount":{"minimum":0.01,"exclusiveMinimum":false,"type":"number","description":"Required. Initial card funding amount in the product currency.","example":100},"nickname":{"maxLength":128,"minLength":0,"type":"string","description":"Optional. Customer-facing card nickname.","example":"Marketing"},"purpose":{"maxLength":255,"minLength":0,"type":"string","description":"Optional. Business purpose for compliance review.","example":"Online advertising"}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseCardApplicationResponse":{"title":"Card Application API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/CardApplicationResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `CardApplicationResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"CardApplicationResponse":{"title":"Card Application","required":["cardId","contactId","createdAt","estimatedFee","failureReason","feeCurrency","id","initialAmount","productId","sourceAccountId","status","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"contactId":{"type":"string","description":"Enterprise contact ID associated with the resource; keep IDs as strings."},"productId":{"type":"string","description":"Card product ID associated with the resource; keep IDs as strings."},"sourceAccountId":{"type":"string","description":"Funding account ID used for the operation; keep IDs as strings."},"status":{"type":"string","description":"Application state: validating = checking eligibility; funds_locking = reserving funds; funds_locked = funds reserved; issuing = channel request in progress; reconciling = channel outcome is unknown and being checked; succeeded = card issued; failed = terminal failure.","enum":["validating","funds_locking","funds_locked","issuing","succeeded","reconciling","failed"]},"initialAmount":{"type":"string","description":"Initial card funding amount represented as a decimal string."},"estimatedFee":{"type":"string","description":"Estimated platform and channel fee represented as a decimal string."},"feeCurrency":{"type":"string","description":"Currency or asset code of the fee."},"cardId":{"type":"string","description":"Issued-card ID; null until issuance succeeds. Keep IDs as strings."},"failureReason":{"type":"string","description":"Human-readable rejection or failure reason; null when the operation has not failed."},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseCardApplicationQuoteResponse":{"title":"Card Application Quote API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/CardApplicationQuoteResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `CardApplicationQuoteResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"CardApplicationQuoteResponse":{"title":"Card Application Quote","required":["contactId","currency","estimatedFee","initialAmount","minimumInitialAmount","productId","sourceAccountId","totalDebit"],"type":"object","properties":{"productId":{"type":"string","description":"Card product ID associated with the resource; keep IDs as strings."},"contactId":{"type":"string","description":"Enterprise contact ID associated with the resource; keep IDs as strings."},"sourceAccountId":{"type":"string","description":"Funding account ID used for the operation; keep IDs as strings."},"initialAmount":{"type":"string","description":"Initial card funding amount represented as a decimal string."},"estimatedFee":{"type":"string","description":"Estimated platform and channel fee represented as a decimal string."},"totalDebit":{"type":"string","description":"Total account debit including the initial amount and estimated fee, represented as a decimal string."},"minimumInitialAmount":{"type":"string","description":"Minimum initial funding allowed by this product, represented as a decimal string."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"AgentTaskRequest":{"title":"Agent Task request","required":["capability","input","intent"],"type":"object","properties":{"capability":{"maxLength":80,"minLength":0,"type":"string","description":"Required. Capability code returned by /agent/capabilities.","example":"receivable.invoice.create"},"intent":{"maxLength":2000,"minLength":0,"type":"string","description":"Required. Plain-language objective retained for audit and review.","example":"Prepare a draft invoice for customer-42"},"input":{"type":"object","additionalProperties":{"type":"object","description":"Capability-specific structured input. Discover requirements from the capability before creating a task."},"description":"Required. Capability-specific structured input. Discover requirements from the capability before creating a task."}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"AgentTaskResponse":{"title":"Agent Task","required":["capability","completedAt","createdAt","errorMessage","id","intent","requiredActions","status","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"capability":{"type":"string","description":"Treasury Agent capability code selected for the task."},"intent":{"type":"string","description":"Plain-language objective retained for task audit and review."},"status":{"type":"string","description":"Task state: waiting_authorization = user action required; authorized = approved to run; running = executing; waiting_approval = workflow approval required; completed/failed/cancelled are terminal.","enum":["created","waiting_authorization","authorized","running","waiting_approval","completed","failed","cancelled"]},"requiredActions":{"type":"array","description":"Actions still required before the Treasury Agent task can complete.","items":{"type":"string"}},"errorMessage":{"type":"string","description":"Human-readable failure detail; null when processing has not failed."},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"},"completedAt":{"type":"string","description":"UTC date-time when task processing completed; null while unfinished.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseAgentTaskResponse":{"title":"Agent Task API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/AgentTaskResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `AgentTaskResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"WebhookEndpointUpdateRequest":{"title":"Webhook Endpoint Update request","type":"object","properties":{"url":{"maxLength":500,"minLength":0,"type":"string","description":"Optional. Replacement callback URL. Live endpoints must use HTTPS.","example":"https://example.com/webhooks/events"},"events":{"maxItems":32,"minItems":1,"type":"array","description":"Optional. Replacement event patterns.","example":["card.*","invoice.*"],"items":{"type":"string","description":"Replacement event patterns.","example":"[\"card.*\",\"invoice.*\"]"}},"status":{"pattern":"active|inactive","type":"string","description":"Optional. Endpoint state: active = deliveries enabled; inactive = deliveries disabled.","example":"active","enum":["active","inactive"]}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"InvoiceUpdateRequest":{"title":"Invoice Update request","type":"object","properties":{"amount":{"minimum":0.01,"exclusiveMinimum":false,"type":"number","description":"Optional. Replacement invoice amount.","example":1200},"description":{"maxLength":1000,"minLength":0,"type":"string","description":"Optional. Replacement payment purpose or memo.","example":"Updated scope"},"dueDate":{"type":"string","description":"Optional. Replacement due date.","format":"date","example":"2026-10-15"},"lineItems":{"type":"array","description":"Optional. Replacement itemized lines.","items":{"$ref":"#/components/schemas/InvoiceLineItemRequest"}}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"CardUpdateRequest":{"title":"Card Update request","required":["nickname"],"type":"object","properties":{"nickname":{"maxLength":128,"minLength":0,"type":"string","description":"Required. New customer-facing card nickname.","example":"Travel"}},"description":"Validated request body. Each field is labelled Required, Conditionally required, or Optional."},"ApiResponseListWebhookEndpointResponse":{"title":"Webhook Endpoint list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `WebhookEndpointResponse` objects.","items":{"$ref":"#/components/schemas/WebhookEndpointResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `WebhookEndpointResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponsePageDataWebhookDeliveryResponse":{"title":"Webhook Delivery list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataWebhookDeliveryResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataWebhookDeliveryResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataWebhookDeliveryResponse":{"title":"Webhook Delivery page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/WebhookDeliveryResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `WebhookDeliveryResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"WebhookDeliveryResponse":{"title":"Webhook Delivery","required":["attemptCount","createdAt","deliveredAt","deliveryId","errorMessage","eventId","nextAttemptAt","responseBody","responseStatus","status","updatedAt"],"type":"object","properties":{"deliveryId":{"type":"string","description":"Unique webhook delivery-attempt identifier."},"eventId":{"type":"string","description":"Webhook event identifier shared by every attempt to deliver the same event."},"status":{"type":"string","description":"Delivery state: pending = queued or scheduled for retry; delivering = claimed by a worker; delivered = receiver returned 2xx; dead_letter = retries exhausted or endpoint unavailable.","enum":["pending","delivering","delivered","dead_letter"]},"attemptCount":{"type":"integer","description":"Number of delivery attempts made for this webhook delivery.","format":"int32"},"responseStatus":{"type":"integer","description":"HTTP status returned by the webhook receiver.","format":"int32"},"responseBody":{"type":"string","description":"Truncated webhook-receiver response body retained for delivery diagnostics."},"errorMessage":{"type":"string","description":"Human-readable failure detail; null when processing has not failed."},"nextAttemptAt":{"type":"string","description":"UTC date-time when the next webhook retry is scheduled; null when no retry is pending.","format":"date-time"},"deliveredAt":{"type":"string","description":"UTC date-time when webhook delivery succeeded; null until delivered.","format":"date-time"},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseListString":{"title":"String list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of string values.","items":{"type":"string"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of string values. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponsePageDataTransferResponse":{"title":"Transfer list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataTransferResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataTransferResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataTransferResponse":{"title":"Transfer page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/TransferResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `TransferResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponsePageDataTransferBatchResponse":{"title":"Transfer Batch list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataTransferBatchResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataTransferBatchResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataTransferBatchResponse":{"title":"Transfer Batch page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/TransferBatchResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `TransferBatchResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponsePageDataInvoiceResponse":{"title":"Invoice list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataInvoiceResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataInvoiceResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataInvoiceResponse":{"title":"Invoice page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/InvoiceResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `InvoiceResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponsePageDataPaymentRecordResponse":{"title":"Payment Record list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataPaymentRecordResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataPaymentRecordResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataPaymentRecordResponse":{"title":"Payment Record page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/PaymentRecordResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `PaymentRecordResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"PaymentRecordResponse":{"title":"Payment Record","required":["amount","channelTransactionId","confirmedAt","createdAt","currency","feeAmount","fiatReferenceNo","fiatSenderAccountNo","fiatSenderName","fromAddress","id","invoiceId","matchStatus","netAmount","network","paymentLinkId","paymentMethod","receivingAccountHolder","receivingAccountNo","recordNo","referenceNo","riskLevel","sourceType","status","toAddress","txHash","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"recordNo":{"type":"string","description":"The record no value for this resource."},"invoiceId":{"type":"string","description":"Linked invoice ID; null for a standalone payment link. Keep IDs as strings."},"paymentLinkId":{"type":"string","description":"The payment link id value for this resource."},"paymentMethod":{"type":"string","description":"Payment method.","enum":["crypto","fiat"]},"sourceType":{"type":"string","description":"The source type value for this resource."},"channelTransactionId":{"type":"string","description":"Provider or channel transaction identifier used for support and reconciliation."},"referenceNo":{"type":"string","description":"Customer-facing or provider reference number used for reconciliation."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"amount":{"type":"string","description":"Decimal monetary amount represented as a string to preserve precision."},"feeAmount":{"type":"string","description":"Transaction fee represented as a decimal string."},"netAmount":{"type":"string","description":"The net amount value for this resource."},"status":{"type":"string","description":"Payment state.","enum":["pending_payment","paying","pending_settlement","settled","failed","refunded","reversed"]},"matchStatus":{"type":"string","description":"The match status value for this resource."},"riskLevel":{"type":"string","description":"Risk classification assigned to the Treasury Agent capability."},"txHash":{"type":"string","description":"The tx hash value for this resource."},"network":{"type":"string","description":"Enabled blockchain network; null for fiat-only resources."},"fromAddress":{"type":"string","description":"The from address value for this resource."},"toAddress":{"type":"string","description":"The to address value for this resource."},"fiatReferenceNo":{"type":"string","description":"The fiat reference no value for this resource."},"fiatSenderName":{"type":"string","description":"The fiat sender name value for this resource."},"fiatSenderAccountNo":{"type":"string","description":"The fiat sender account no value for this resource."},"receivingAccountNo":{"type":"string","description":"The receiving account no value for this resource."},"receivingAccountHolder":{"type":"string","description":"The receiving account holder value for this resource."},"confirmedAt":{"type":"string","description":"The confirmed at value for this resource.","format":"date-time"},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponsePaymentRecordResponse":{"title":"Payment Record API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PaymentRecordResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PaymentRecordResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponsePageDataPaymentLinkResponse":{"title":"Payment Link list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataPaymentLinkResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataPaymentLinkResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataPaymentLinkResponse":{"title":"Payment Link page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/PaymentLinkResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `PaymentLinkResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponsePageDataContactResponse":{"title":"Contact list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataContactResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataContactResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataContactResponse":{"title":"Contact page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/ContactResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `ContactResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponseListDocumentResponse":{"title":"Document list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `DocumentResponse` objects.","items":{"$ref":"#/components/schemas/DocumentResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `DocumentResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseListContactAccountResponse":{"title":"Contact Account list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `ContactAccountResponse` objects.","items":{"$ref":"#/components/schemas/ContactAccountResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `ContactAccountResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponsePageDataCardResponse":{"title":"Card list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataCardResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataCardResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataCardResponse":{"title":"Card page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/CardResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `CardResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponsePageDataCardTransactionResponse":{"title":"Card Transaction list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataCardTransactionResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataCardTransactionResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataCardTransactionResponse":{"title":"Card Transaction page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/CardTransactionResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `CardTransactionResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponseListCardProductResponse":{"title":"Card Product list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `CardProductResponse` objects.","items":{"$ref":"#/components/schemas/CardProductResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `CardProductResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"CardProductResponse":{"title":"Card Product","required":["availableCards","code","currency","description","formFactor","fundingMode","id","kycRequired","limits","minimumInitialAmount","name","scheme","status","supportedCountries","supportedEntityTypes"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"code":{"type":"string","description":"Application result code: 0 means success; a nonzero value identifies an error."},"name":{"type":"string","description":"Customer-facing resource or capability name."},"description":{"type":"string","description":"Customer-facing or operational description of the resource."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"scheme":{"type":"string","description":"Card network scheme."},"minimumInitialAmount":{"type":"string","description":"Minimum initial funding allowed by this product, represented as a decimal string."},"formFactor":{"type":"string","description":"Card form factor. Machine issuing currently returns virtual products.","enum":["virtual"]},"fundingMode":{"type":"string","description":"How funds are made available to the card, for example prepaid_balance. Treat new values as additive."},"supportedEntityTypes":{"type":"array","description":"Contact entity types eligible for this card product.","items":{"type":"string"}},"supportedCountries":{"type":"array","description":"ISO 3166-1 alpha-2 residence countries eligible for this card product.","items":{"type":"string"}},"kycRequired":{"type":"string","description":"Verification level required before issuing, for example kyb_approved."},"availableCards":{"type":"integer","description":"Remaining cards that can be issued from the product inventory; null means not disclosed.","format":"int32"},"limits":{"type":"string","description":"Configured card spending limits serialized as a JSON object."},"status":{"type":"string","description":"Product availability: active = eligible for issuing. Only active products with eligible inventory are returned.","enum":["active"]}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseCardProductResponse":{"title":"Card Product API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/CardProductResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `CardProductResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponsePageDataCardApplicationResponse":{"title":"Card Application list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataCardApplicationResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataCardApplicationResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataCardApplicationResponse":{"title":"Card Application page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/CardApplicationResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `CardApplicationResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponseListBlockchainAddressResponse":{"title":"Blockchain Address list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `BlockchainAddressResponse` objects.","items":{"$ref":"#/components/schemas/BlockchainAddressResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `BlockchainAddressResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"BlockchainAddressResponse":{"title":"Blockchain Address","required":["address","chainId","createdAt","currencies","id","network","networkType","status"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"network":{"type":"string","description":"Enabled blockchain network; null for fiat-only resources."},"networkType":{"type":"string","description":"Blockchain family or protocol type."},"chainId":{"type":"string","description":"Blockchain chain identifier."},"address":{"type":"string","description":"Street address or blockchain address, according to the containing resource."},"currencies":{"type":"array","description":"Enabled currency or asset codes supported by the resource.","items":{"type":"string"}},"status":{"type":"string","description":"Address state: active = available for receiving; inactive = retained for history but cannot be selected.","enum":["active","inactive"]},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseBlockchainAddressResponse":{"title":"Blockchain Address API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/BlockchainAddressResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `BlockchainAddressResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseListBankAccountResponse":{"title":"Bank Account list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `BankAccountResponse` objects.","items":{"$ref":"#/components/schemas/BankAccountResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `BankAccountResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"BankAccountResponse":{"title":"Bank Account","required":["accountHolder","accountNumber","bankAddress","bankBranch","bankCode","bankName","branchCode","createdAt","currencies","id","localClearingNetwork","region","routingCode","routingCodeType","status","swiftCode"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"region":{"type":"string","description":"Country or region of the bank receiving account."},"bankName":{"type":"string","description":"Bank display name."},"bankCode":{"type":"string","description":"Bank, institution or clearing code."},"bankBranch":{"type":"string","description":"Bank branch name."},"branchCode":{"type":"string","description":"Bank branch code."},"bankAddress":{"type":"string","description":"Postal address of the bank or branch."},"accountNumber":{"type":"string","description":"Bank account number or IBAN."},"accountHolder":{"type":"string","description":"Legal name of the bank account holder."},"swiftCode":{"type":"string","description":"SWIFT/BIC used for international bank routing."},"routingCode":{"type":"string","description":"Bank routing or clearing code."},"routingCodeType":{"type":"string","description":"Routing-code scheme, such as ABA, sort code or local clearing code."},"localClearingNetwork":{"type":"string","description":"Local bank clearing network used by the receiving account."},"currencies":{"type":"array","description":"Enabled currency or asset codes supported by the resource.","items":{"type":"string"}},"status":{"type":"string","description":"Receiving-account state: active = available for invoices; inactive = unavailable for new invoices.","enum":["active","inactive"]},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseBankAccountResponse":{"title":"Bank Account API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/BankAccountResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `BankAccountResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseListAssetResponse":{"title":"Asset list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `AssetResponse` objects.","items":{"$ref":"#/components/schemas/AssetResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `AssetResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"AssetResponse":{"title":"Asset","required":["assetType","capabilities","contractAddress","currency","decimals","network","networkType","status","tokenStandard"],"type":"object","properties":{"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"assetType":{"type":"string","description":"Asset class.","enum":["fiat","crypto"]},"network":{"type":"string","description":"Enabled blockchain network; null for fiat-only resources."},"networkType":{"type":"string","description":"Blockchain family or protocol type."},"tokenStandard":{"type":"string","description":"Token standard on the selected blockchain network; null for native assets."},"contractAddress":{"type":"string","description":"Token contract address; null for native or fiat assets."},"decimals":{"type":"integer","description":"Number of decimal places supported by the asset.","format":"int32"},"capabilities":{"type":"array","description":"Operations currently supported by this asset or account.","items":{"type":"string"}},"status":{"type":"string","description":"Availability: active = enabled in this environment. Only active assets are returned by these endpoints.","enum":["active"]}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"AgentTaskEventResponse":{"title":"Agent Task Event","required":["createdAt","currentStatus","id","previousStatus","type"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"type":{"type":"string","description":"Task event name corresponding to the new state.","enum":["task.created","task.waiting_authorization","task.authorized","task.running","task.waiting_approval","task.completed","task.failed","task.cancelled"]},"previousStatus":{"type":"string","description":"Task state before the event.","enum":["created","waiting_authorization","authorized","running","waiting_approval","completed","failed","cancelled"]},"currentStatus":{"type":"string","description":"Task state after the event.","enum":["created","waiting_authorization","authorized","running","waiting_approval","completed","failed","cancelled"]},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseListAgentTaskEventResponse":{"title":"Agent Task Event list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `AgentTaskEventResponse` objects.","items":{"$ref":"#/components/schemas/AgentTaskEventResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `AgentTaskEventResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"AgentCapabilityResponse":{"title":"Agent Capability","required":["category","code","description","idempotencyRequired","name","readOnly","requiresApproval","requiresAuthorization","riskLevel"],"type":"object","properties":{"code":{"type":"string","description":"Application result code: 0 means success; a nonzero value identifies an error."},"name":{"type":"string","description":"Customer-facing resource or capability name."},"description":{"type":"string","description":"Customer-facing or operational description of the resource."},"riskLevel":{"type":"string","description":"Risk classification assigned to the Treasury Agent capability."},"category":{"type":"string","description":"Functional category of the Treasury Agent capability."},"readOnly":{"type":"boolean","description":"Whether the capability is guaranteed not to create or mutate business data."},"requiresAuthorization":{"type":"boolean","description":"Whether explicit user authorization is required before execution."},"requiresApproval":{"type":"boolean","description":"Whether completion may require an approval workflow."},"idempotencyRequired":{"type":"boolean","description":"Whether task creation or execution requires an idempotency key."}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseListAgentCapabilityResponse":{"title":"Agent Capability list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `AgentCapabilityResponse` objects.","items":{"$ref":"#/components/schemas/AgentCapabilityResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `AgentCapabilityResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"AccountResponse":{"title":"Account","required":["accountType","assetType","availableBalance","capabilities","currency","id","lockedBalance","network","pendingBalance","status","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"assetType":{"type":"string","description":"Asset class.","enum":["fiat","crypto"]},"accountType":{"type":"string","description":"Account role: funding = fiat funding account; asset = blockchain asset balance.","enum":["funding","asset"]},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"network":{"type":"string","description":"Enabled blockchain network; null for fiat-only resources."},"availableBalance":{"type":"string","description":"Balance currently available for new operations, represented as a decimal string."},"lockedBalance":{"type":"string","description":"Balance reserved by in-progress operations, represented as a decimal string."},"pendingBalance":{"type":"string","description":"Balance awaiting settlement or confirmation, represented as a decimal string."},"status":{"type":"string","description":"Account state: active = usable; frozen = blocked by a control or regulatory order; inactive = unavailable for new operations.","enum":["active","frozen","inactive"]},"capabilities":{"type":"array","description":"Operations currently supported by this asset or account.","items":{"type":"string"}},"updatedAt":{"type":"string","description":"UTC date-time when the resource was most recently updated.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseListAccountResponse":{"title":"Account list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"type":"array","description":"An array of `AccountResponse` objects.","items":{"$ref":"#/components/schemas/AccountResponse"}}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is an array of `AccountResponse` objects. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponseAccountResponse":{"title":"Account API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/AccountResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `AccountResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"AccountTransactionResponse":{"title":"Account Transaction","required":["amount","balanceAfter","balanceBefore","createdAt","currency","description","direction","id","referenceId","referenceNo","referenceType","status","type"],"type":"object","properties":{"id":{"type":"string","description":"Stable resource identifier. Treat IDs as opaque strings."},"type":{"type":"string","description":"Ledger event code. This is an extensible value rather than a closed enum; reuse an exact value returned here when filtering transactions."},"direction":{"type":"string","description":"Balance effect: credit increases the account balance; debit decreases it.","enum":["credit","debit"]},"amount":{"type":"string","description":"Decimal monetary amount represented as a string to preserve precision."},"currency":{"type":"string","description":"ISO currency or enabled asset code used for monetary values."},"balanceBefore":{"type":"string","description":"Account balance before the transaction, represented as a decimal string."},"balanceAfter":{"type":"string","description":"Account or card balance after the transaction, represented as a decimal string."},"status":{"type":"string","description":"Posting state: succeeded = final and posted. Account ledger rows returned by this API are final.","enum":["succeeded"]},"referenceType":{"type":"string","description":"Domain object that created the ledger entry. This is an extensible value; use it with referenceId for reconciliation."},"referenceId":{"type":"string","description":"Related platform resource ID; keep IDs as strings."},"referenceNo":{"type":"string","description":"Customer-facing or provider reference number used for reconciliation."},"description":{"type":"string","description":"Customer-facing or operational description of the resource."},"createdAt":{"type":"string","description":"UTC date-time when the resource was created.","format":"date-time"}},"description":"Fields returned in the operation's `data` property. Every listed property is present in JSON; descriptions identify values that may be null."},"ApiResponsePageDataAccountTransactionResponse":{"title":"Account Transaction list response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/PageDataAccountTransactionResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `PageDataAccountTransactionResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."},"PageDataAccountTransactionResponse":{"title":"Account Transaction page","required":["items","page","pageSize","total"],"type":"object","properties":{"items":{"type":"array","description":"Resources returned on the current result page.","items":{"$ref":"#/components/schemas/AccountTransactionResponse"}},"total":{"type":"string","description":"Total number of records matching the filters across all pages."},"page":{"type":"integer","description":"Current one-based result page number.","format":"int32"},"pageSize":{"type":"integer","description":"Maximum records requested for each result page.","format":"int32"}},"description":"Paginated result: `items` is an array of `AccountTransactionResponse` objects; `total`, `page`, and `pageSize` describe pagination. Every listed property is present in JSON."},"ApiResponseAccountTransactionResponse":{"title":"Account Transaction API response","required":["code","data","message"],"type":"object","properties":{"code":{"type":"integer","description":"Application result code: 0 means success; a nonzero value identifies an error.","format":"int32"},"message":{"type":"string","description":"Human-readable result message. For errors, use it together with code."},"data":{"$ref":"#/components/schemas/AccountTransactionResponse"}},"description":"Standard response envelope: `code` is 0 on success, `message` explains the result, and `data` is a `AccountTransactionResponse` object. Every listed property is present in JSON; descriptions identify values that may be null."}},"securitySchemes":{"apiKeyAuth":{"type":"apiKey","description":"API key from Dashboard > Developer Center. The sk_sandbox_ or sk_live_ prefix selects the isolated environment; the production API host accepts both modes.","name":"X-API-Key","in":"header"},"apiSecret":{"type":"apiKey","description":"One-time API Secret shown when the key is created or rotated. The online console uses it in browser memory to sign the request and removes it before transmission.","name":"X-API-Secret","in":"header"}}}}