{"openapi":"3.1.0","info":{"title":"CoinVoyage API (v3)","description":"CoinVoyage v3 payment API. Unified Intent envelope, snake_case money via the Amount shape, and a single SHA-256 signature scheme.","version":"3.0.0"},"servers":[{"url":"https://api.coinvoyage.io/v3"}],"paths":{"/api-keys":{"get":{"operationId":"v3ListAPIKeys","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"$ref":"#/components/schemas/APIKeyMetadata"},"type":"array"}},"type":"object"}}},"description":"API key metadata"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"List API Keys","tags":["api-keys"]},"post":{"description":"Create another credential for the authenticated entity. The full key and secret are returned only in this response and exact idempotent replays.","operationId":"v3CreateAPIKey","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"description":"Required client-generated key. Retrying the same request returns the originally created API key and secret. Reusing it with a different payload returns 409. Maximum 255 characters.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreated"}}},"description":"Idempotent replay"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreated"}}},"description":"API key created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Idempotency conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Create API Key","tags":["api-keys"]}},"/api-keys/{api_key_id}":{"delete":{"operationId":"v3RevokeAPIKey","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"api_key_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"API key revoked"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"API key not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"The last active API key cannot be revoked"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Revoke API Key","tags":["api-keys"]},"patch":{"operationId":"v3UpdateAPIKey","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"api_key_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAPIKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyMetadata"}}},"description":"API key updated"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"API key not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Update API Key","tags":["api-keys"]}},"/fees/balance":{"get":{"operationId":"v3FeeBalance","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeBalanceResponse"}}},"description":"Claimable fee balance"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Get Fee Balance","tags":["fees"]}},"/fees/claim":{"post":{"operationId":"v3ClaimFees","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimFeesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimFeesView"}}},"description":"Fees claimed (or a no-claimable-fees message)"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid recipient address"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Claim Fees","tags":["fees"]}},"/fees/entries":{"get":{"operationId":"v3ListFeeEntries","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"maximum":100000,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeEntryListResponse"}}},"description":"Fee entries with pagination"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"List Fee Entries","tags":["fees"]}},"/invoices":{"get":{"operationId":"v3ListInvoices","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"description":"Case-insensitive match on invoice id, invoice number, recipient name/email, or pay order id.","in":"query","name":"search","schema":{"maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceListResponse"}}},"description":"Invoices with pagination"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid limit, offset or search"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"List Invoices","tags":["invoices"]},"post":{"description":"Creates and publishes an invoice backed by a SALE pay order. The recipient is emailed a PDF invoice with a hosted payment link. Pass id to publish an existing draft.","operationId":"v3CreateInvoice","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoiceRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}},"description":"Invoice created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Draft invoice not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or validation failed"}},"security":[{"Authorization":[]}],"summary":"Create Invoice","tags":["invoices"]}},"/invoices/drafts":{"post":{"description":"Creates a draft invoice, or updates an existing unpublished one when id is set. Draft blocks are stored verbatim and only validated at publish.","operationId":"v3SaveInvoiceDraft","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveInvoiceDraftRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}},"description":"Draft saved"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Draft invoice not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"}},"security":[{"Authorization":[]}],"summary":"Save Invoice Draft","tags":["invoices"]}},"/invoices/{invoice_id}":{"delete":{"description":"Deletes an unpublished draft. Published invoices cannot be deleted.","operationId":"v3DeleteInvoiceDraft","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"invoice_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Draft deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Draft invoice not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Delete Invoice Draft","tags":["invoices"]},"get":{"operationId":"v3GetInvoice","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"invoice_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}},"description":"Invoice details"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invoice not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Get Invoice","tags":["invoices"]}},"/invoices/{invoice_id}/archive":{"post":{"operationId":"v3ArchiveInvoice","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"invoice_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}},"description":"Invoice archived"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invoice not found or already archived"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Archive Invoice","tags":["invoices"]}},"/off-ramp/bank-accounts":{"get":{"operationId":"v3ListOffRampBankAccounts","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BankAccountDetails"},"type":"array"}},"type":"object"}}},"description":"Bank accounts"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to list bank accounts"}},"security":[{"Authorization":[]}],"summary":"List Bank Accounts","tags":["off-ramp"]},"post":{"operationId":"v3AddOffRampBankAccount","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddBankAccountRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankAccountDetails"}}},"description":"Bank account created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Organization verification not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or validation failed"}},"security":[{"Authorization":[]}],"summary":"Add Bank Account","tags":["off-ramp"]}},"/off-ramp/bank-accounts/{bank_account_id}":{"get":{"operationId":"v3GetOffRampBankAccount","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"bank_account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankAccountDetails"}}},"description":"Bank account details"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Organization verification not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to get bank account"}},"security":[{"Authorization":[]}],"summary":"Get Bank Account","tags":["off-ramp"]}},"/off-ramp/intents":{"get":{"operationId":"v3ListOffRampIntents","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"$ref":"#/components/schemas/OfframpIntent"},"type":"array"}},"type":"object"}}},"description":"Off-ramp intents"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to list off-ramp intents"}},"security":[{"Authorization":[]}],"summary":"List Off-ramp Intents","tags":["off-ramp"]},"post":{"operationId":"v3CreateOffRampIntent","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOfframpIntentRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfframpIntent"}}},"description":"Off-ramp intent created with execution steps"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Organization verification not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or validation failed"}},"security":[{"Authorization":[]}],"summary":"Create Off-ramp Intent","tags":["off-ramp"]}},"/off-ramp/verification":{"post":{"description":"Internal credentials only. The request signature appends the lowercase hex SHA-256 digest of the exact request body after method, path, and timestamp.","operationId":"v3CreateOffRampVerification","parameters":[{"description":"Body-bound HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp + lowercase hex SHA-256 digest of the exact request body.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KYCLinkRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KYCLinkResponse"}}},"description":"KYC link created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal credential required"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Email verification unavailable"}},"security":[{"Authorization":[]}],"summary":"Create Off-ramp Verification","tags":["off-ramp"]}},"/off-ramp/verification/email-challenge":{"post":{"description":"Internal credentials only. The plaintext code is intended for trusted server-to-server email delivery and must not be exposed to a browser.","operationId":"v3CreateOffRampVerificationEmailChallenge","parameters":[{"description":"Body-bound HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp + lowercase hex SHA-256 digest of the exact request body.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KYCEmailChallengeRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KYCEmailChallengeResponse"}}},"description":"Email challenge created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal credential required"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid or reserved email address"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Challenge issuance rate limited"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Email verification unavailable"}},"security":[{"Authorization":[]}],"summary":"Create Off-ramp Verification Email Challenge","tags":["off-ramp"]}},"/off-ramp/verification/status":{"get":{"operationId":"v3OffRampVerificationStatus","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KYCLinkResponse"}}},"description":"KYC link details"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No KYC verification found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Off-ramp Verification Status","tags":["off-ramp"]}},"/off-ramp/verifications/{verification_id}":{"get":{"operationId":"v3GetOffRampVerification","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"verification_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KYCLinkResponse"}}},"description":"KYC link details"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"KYC verification not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Get an exact off-ramp verification","tags":["off-ramp"]}},"/onramp/auth/intent":{"post":{"description":"Create a Stripe Link OAuth auth intent for the embedded onramp flow.","operationId":"createStripeOnrampAuthIntent","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkAuthIntentRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkAuthIntentResponse"}}},"description":"Link auth intent created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No active Link account found for the provided email"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or identity value"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to create Stripe Link auth intent"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Onramp Auth Intent","tags":["onramp"]}},"/onramp/auth/token":{"post":{"description":"Create a short-lived Stripe Link auth token client secret for React Native seamless sign-in. The server uses the previously stored Link OAuth token for the provided auth intent.","operationId":"createStripeOnrampAuthToken","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkAuthTokenRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkAuthTokenResponse"}}},"description":"Link auth token client secret created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or seamless sign-in unavailable"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Stripe Link seamless sign-in failed upstream"},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Stripe Link seamless sign-in timed out"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Onramp Auth Token","tags":["onramp"]}},"/onramp/bank/accounts":{"get":{"description":"Paginated list of reusable bank deposit accounts for the authenticated organization.","operationId":"listBankOnrampAccounts","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"maximum":100000,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankOnrampAccountListResponse"}}},"description":"Bank onramp accounts with pagination"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid limit or offset"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp provider unavailable"}},"security":[{"APIKeyHeader":[]}],"summary":"List Bank Onramp Accounts","tags":["onramps"]},"post":{"description":"Create reusable bank deposit instructions. Each incoming transfer is recorded as a separate deposit, and the required deposit message must be included with every transfer.","operationId":"createBankOnrampAccount","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"description":"Required client-generated key. Retrying the same request returns the originally created API key and secret. Reusing it with a different payload returns 409. Maximum 255 characters.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBankOnrampAccountRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankOnrampAccount"}}},"description":"Idempotent replay"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankOnrampAccount"}}},"description":"Bank onramp account created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp currency or endorsement unavailable"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Approved organization verification not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Idempotency conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp provider unavailable"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Bank Onramp Account","tags":["onramps"]}},"/onramp/bank/accounts/{account_id}":{"get":{"operationId":"getBankOnrampAccount","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankOnrampAccount"}}},"description":"Bank onramp account"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp account not found"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp provider unavailable"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Bank Onramp Account","tags":["onramps"]}},"/onramp/bank/accounts/{account_id}/deposits":{"get":{"description":"Paginated deposit history for a reusable bank deposit account.","operationId":"listBankOnrampDeposits","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"maximum":100000,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankOnrampDepositListResponse"}}},"description":"Bank onramp deposits with pagination"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid limit or offset"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp account not found"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp provider unavailable"}},"security":[{"APIKeyHeader":[]}],"summary":"List Bank Onramp Deposits","tags":["onramps"]}},"/onramp/intents":{"post":{"description":"Create a reusable onramp intent. For Orders, amount, destination currency, and wallet fields are derived server-side from the Order and cannot be overridden by the client.","operationId":"createStripeOnrampIntent","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampIntentRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampIntentResponse"}}},"description":"Onramp intent created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Card payments are not enabled"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or unsupported onramp destination"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to create Stripe onramp intent"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Onramp Intent","tags":["onramp"]}},"/onramp/intents/{intent_id}/session":{"post":{"description":"Create a headless Stripe embedded onramp session from a server-held onramp intent using the server-held Link OAuth access token. If Stripe identity or KYC action is required, this endpoint returns 422 with action fields in error.details, including status, reason, kyc_next_step, kyc_status, kyc_required, identity_verification_required, and identity_verification_status.","operationId":"createStripeOnrampSessionFromIntent","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"intent_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampSessionRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampSessionResponse"}}},"description":"Headless onramp session created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Onramp intent not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body, unsupported onramp destination, or Stripe identity/KYC action required"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to create onramp session"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Onramp Session","tags":["onramp"]}},"/onramp/sessions/{session_id}/checkout":{"post":{"description":"Checkout a headless Stripe embedded onramp session and return the checkout client secret required by the Stripe embedded component. The session is resolved to the stored Link OAuth token server-side.","operationId":"checkoutOnrampSession","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampCheckoutResponse"}}},"description":"onramp checkout client secret created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"onramp session ID is required"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Card payment failed or requires corrected payment details"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"onramp session not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Checkout requires a payment-method, quote, identity, or regional action"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to checkout onramp session"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Stripe checkout failed upstream"},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Stripe checkout timed out"}},"security":[{"APIKeyHeader":[]}],"summary":"Checkout Onramp Session","tags":["onramp"]}},"/onramp/sessions/{session_id}/quote":{"post":{"description":"Refresh the executable quote for a headless Stripe embedded onramp session. The session is resolved to the stored Link OAuth token server-side.","operationId":"refreshOnrampSessionQuote","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampSessionResponse"}}},"description":"onramp session quote refreshed"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"onramp session ID is required"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"onramp session not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to refresh onramp session quote"}},"security":[{"APIKeyHeader":[]}],"summary":"Refresh Onramp Quote","tags":["onramp"]}},"/onramp/verification/status":{"post":{"description":"Retrieve normalized Stripe CryptoCustomer KYC and identity verification status after Link authentication or after KYC steps. The server exchanges or reuses the Link OAuth token and never returns it to the client.","operationId":"getStripeOnrampVerificationStatus","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampCustomerStatusRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnrampCustomerStatusResponse"}}},"description":"Crypto customer verification status"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Failed to get Stripe crypto customer status"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Onramp Verification Status","tags":["onramp"]}},"/orders":{"get":{"description":"Paginated list of orders for the authenticated organization.","operationId":"v3ListOrders","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":20,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderListResponse"}}},"description":"Orders with pagination"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid limit or offset"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"List Orders","tags":["orders"]},"post":{"description":"Create an order (SALE / DEPOSIT). SALE requires an Authorization signature; DEPOSIT accepts X-API-KEY or a signature.","operationId":"v3CreateOrder","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}},"description":"Order created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden - order flow not enabled or recipient sanctioned"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or validation failed"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]},{"Authorization":[]}],"summary":"Create Order","tags":["orders"]}},"/orders/{order_id}":{"get":{"operationId":"v3GetOrder","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"order_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}},"description":"Order details"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Order","tags":["orders"]}},"/orders/{order_id}/payment":{"post":{"description":"Create the payment details for an order — returns the resolved payment block (receiving address, amount, expiry, and steps to fund). The server always requotes (no quote_id).","operationId":"v3OrderPayment","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"order_id","required":true,"schema":{"type":"string"}},{"description":"Optional client-generated idempotency key for coalescing concurrent mutating requests. Reuse the same key for retries of the same payment attempt; use a new key when intentionally refreshing payment data or requesting a fresh quote. Maximum 255 characters.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentResponse"}}},"description":"Payment details"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid status or request"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Payment Details","tags":["orders"]}},"/orders/{order_id}/payment-methods":{"get":{"operationId":"v3OrderPaymentMethods","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"order_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentMethodsResponse"}}},"description":"Available payment methods"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order is not payable"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Payment Methods","tags":["orders"]}},"/orders/{order_id}/quotes":{"post":{"description":"Ranked options for paying an order: source tokens (wallet scan and/or explicit list) ranked against the order fulfillment destination, falling back to a settlement currency. EXACT_OUTPUT only.","operationId":"v3OrderQuotes","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"in":"path","name":"order_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderQuotesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderQuotesResponse"}}},"description":"Ranked options (best→worst)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body or order status"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Order Quotes","tags":["orders"]}},"/orders/{order_id}/refund":{"post":{"operationId":"v3OrderRefund","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"order_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundOrderRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}},"description":"Refund created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request or refund address"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not completed or already refunded"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Refund Order","tags":["orders"]}},"/orders/{order_id}/x402/complete":{"post":{"description":"x402 payment completion. Public: the PAYMENT-SIGNATURE header is the auth boundary. Without it, returns 402 with a PAYMENT-REQUIRED header.","operationId":"v3X402Complete","parameters":[{"in":"path","name":"order_id","required":true,"schema":{"type":"string"}},{"description":"x402 payment signature. Absent → 402 with payment requirement.","in":"header","name":"PAYMENT-SIGNATURE","required":false,"schema":{"type":"string"}}],"responses":{"202":{"description":"Payment verified and settling"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid order id"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment required or invalid"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Order not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid order status"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"summary":"x402 Complete","tags":["x402"]}},"/search/currencies":{"get":{"description":"Token search for source/destination pickers. Queries shorter than 2 characters return an empty list.","operationId":"v3CurrencySearch","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}},{"description":"Search query (symbol, name fragment, or address prefix). Minimum 2 characters.","in":"query","name":"q","required":true,"schema":{"minLength":2,"type":"string"}},{"description":"Comma-separated ChainID filter.","in":"query","name":"chain_ids","required":false,"schema":{"type":"string"}},{"description":"Maximum results (default 20, max 50).","in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrencySearchResponse"}}},"description":"Ranked currency matches (may be empty)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Per-IP rate-limit exceeded"}},"security":[{"APIKeyHeader":[]}],"summary":"Currency Search (Typeahead)","tags":["search"]}},"/swap/execute":{"post":{"description":"Create the payment details for a SWAP-mode order — returns the deposit instruction (payment block with steps to fund).","operationId":"v3SwapExecute","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapExecuteRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapExecuteResponse"}}},"description":"Swap order created; fund the deposit"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Recipient or sender address is sanctioned"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Execute Swap","tags":["swap"]}},"/swap/quote":{"post":{"description":"Spammable single-pair swap quote for live price discovery. Flat request/response. result_type carries soft errors on a 200. Optional recipient; fees match the swap execute path.","operationId":"v3SwapQuote","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteResponse"}}},"description":"Quote produced (check result_type)"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Swap Quote","tags":["swap"]}},"/wallet/portfolio":{"post":{"description":"Scan wallets with per-wallet success or error results.","operationId":"v3WalletPortfolio","parameters":[{"description":"API key for authentication","in":"header","name":"X-API-KEY","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioResponse"}}},"description":"Portfolio completed"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Wallet Portfolio","tags":["wallet"]}},"/webhooks":{"get":{"operationId":"v3ListWebhooks","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WebhookResponse"},"type":"array"}}},"description":"List of webhooks"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"List Webhooks","tags":["webhooks"]},"post":{"description":"Register a webhook endpoint. Each delivery is a POST with headers X-Event-ID, X-Event-Type, CoinVoyage-Webhook-Signature: base64(HMAC-SHA256(webhook_secret, raw body)), CoinVoyage-Webhook-Timestamp: unix seconds at the moment of the send attempt (it changes on every retry), and CoinVoyage-Webhook-Signature-V2: base64(HMAC-SHA256(webhook_secret, timestamp + \".\" + raw body)) using the exact CoinVoyage-Webhook-Timestamp value. Verify Signature-V2 and reject timestamps outside your tolerance to prevent replays; CoinVoyage-Webhook-Signature is unchanged and kept for existing integrations.","operationId":"v3CreateWebhook","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResponse"}}},"description":"Webhook created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid webhook URL"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Create Webhook","tags":["webhooks"]}},"/webhooks/{webhook_id}":{"delete":{"operationId":"v3DeleteWebhook","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"webhook_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Webhook deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Webhook not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Delete Webhook","tags":["webhooks"]},"patch":{"operationId":"v3UpdateWebhook","parameters":[{"description":"HMAC-SHA256 signature header: 'APIKey=\u003capi_key\u003e,signature=\u003chex\u003e,timestamp=\u003cunix_timestamp\u003e'. The signature is computed over METHOD + path (with the /v3 prefix stripped) + timestamp.","in":"header","name":"Authorization-Signature","required":true,"schema":{"type":"string"}},{"in":"path","name":"webhook_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResponse"}}},"description":"Webhook updated"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid webhook URL"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Webhook not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal Server Error"}},"security":[{"Authorization":[]}],"summary":"Update Webhook (partial)","tags":["webhooks"]}},"/ws":{"get":{"description":"Upgrade to a WebSocket for real-time order events. Authenticate with a `connect` message, then `subscribe` by `order_id`. Event pushes use `{\"type\":\"event\",\"data\":{\"event\":\"ORDER_*\",\"delivered_at\":...,\"order\":{...}}}`.","operationId":"v3OrderStatusWebSocket","responses":{"101":{"description":"Switching Protocols - WebSocket established"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"WebSocket upgrade failed"}},"summary":"Order Status WebSocket","tags":["websocket"]}}},"components":{"schemas":{"APIKeyCreated":{"properties":{"active":{"type":"boolean"},"api_key":{"type":"string"},"api_key_last_four":{"maxLength":4,"type":"string"},"api_secret":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_live":{"type":"boolean"},"label":{"maxLength":100,"type":"string"},"last_used_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","active","is_live","api_key_last_four","created_at","updated_at","api_key","api_secret"],"type":"object"},"APIKeyMetadata":{"properties":{"active":{"type":"boolean"},"api_key_last_four":{"maxLength":4,"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_live":{"type":"boolean"},"label":{"maxLength":100,"type":"string"},"last_used_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","active","is_live","api_key_last_four","created_at","updated_at"],"type":"object"},"AccountDetails":{"properties":{"bank_name":{"type":["string","null"]},"routing_number":{"type":["string","null"]},"sort_code":{"type":["string","null"]},"account_number":{"type":"string"},"checking_or_savings":{"type":["string","null"]},"bic":{"type":["string","null"]},"pix_key":{"type":["string","null"]},"bank_code":{"type":["string","null"]},"account_type_detail":{"type":["string","null"]}},"required":["account_number"],"type":"object"},"AccountOwnerType":{"description":"Whether the bank account owner is an individual or business","enum":["individual","business"],"type":"string"},"AddBankAccountRequest":{"properties":{"account_name":{"type":"string"},"account_owner_name":{"type":"string"},"address":{"$ref":"#/components/schemas/BankAccountAddress"},"bank_name":{"type":"string"},"account_owner_type":{"$ref":"#/components/schemas/AccountOwnerType"},"first_name":{"type":"string"},"last_name":{"type":"string"},"business_name":{"type":"string"},"currency":{"$ref":"#/components/schemas/FiatCurrency"},"account_type":{"$ref":"#/components/schemas/BankAccountType"},"account":{"anyOf":[{"$ref":"#/components/schemas/BankAccount"},{"type":"null"}]},"iban":{"anyOf":[{"$ref":"#/components/schemas/IBANBankAccount"},{"type":"null"}]},"swift":{"anyOf":[{"$ref":"#/components/schemas/SWIFTBankAccount"},{"type":"null"}]},"clabe":{"anyOf":[{"$ref":"#/components/schemas/CLABEBankAccount"},{"type":"null"}]},"pix":{"anyOf":[{"$ref":"#/components/schemas/PIXBankAccount"},{"type":"null"}]}},"required":["account_owner_name","address","currency","account_type"],"type":"object"},"Amount":{"example":{"raw":"100000000","ui":"100.0","value_usd":100},"properties":{"ui":{"example":"100.0","type":"string"},"raw":{"$ref":"#/components/schemas/BigInt","example":"100000000"},"value_usd":{"example":100,"type":["number","null"]}},"required":["ui","raw"],"type":"object"},"BankAccount":{"properties":{"account_number":{"type":"string"},"routing_number":{"type":["string","null"]},"sort_code":{"type":["string","null"]},"bre_b_key":{"type":["string","null"]},"document_type":{"type":["string","null"]},"document_number":{"type":["string","null"]},"bank_code":{"type":["string","null"]},"account_type_detail":{"type":["string","null"]},"phone_number":{"type":["string","null"]},"checking_or_savings":{"anyOf":[{"$ref":"#/components/schemas/CheckingOrSavings"},{"type":"null"}]}},"type":"object"},"BankAccountAddress":{"properties":{"street_line_1":{"type":"string"},"street_line_2":{"type":["string","null"]},"city":{"type":"string"},"state":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"country":{"type":"string"}},"required":["street_line_1","city","country"],"type":"object"},"BankAccountDetails":{"properties":{"id":{"type":"string"},"account_name":{"type":["string","null"]},"bank_name":{"type":["string","null"]},"account_type":{"$ref":"#/components/schemas/BankAccountType"},"account_owner_type":{"anyOf":[{"$ref":"#/components/schemas/AccountOwnerType"},{"type":"null"}]},"account_details":{"$ref":"#/components/schemas/AccountDetails"},"currency":{"$ref":"#/components/schemas/FiatCurrency"},"active":{"type":"boolean"},"beneficiary_address_valid":{"type":["boolean","null"]},"deactivation_reason":{"type":["string","null"]},"deactivation_details":{"type":["string","null"]}},"required":["id","account_type","account_details","currency","active"],"type":"object"},"BankAccountType":{"description":"Bank account type: us (ACH), iban, swift, clabe, pix, gb (Faster Payments), bre_b, or co_bank_transfer","enum":["us","iban","swift","clabe","pix","gb","bre_b","co_bank_transfer"],"type":"string"},"BankOnrampAccount":{"example":{"created_at":"2026-08-25T18:30:00Z","deposit_instructions":{"account_holder_name":"CoinVoyage Customer","account_number":"1234567890","bank_address":"1801 Main Street, Kansas City, MO 64108","bank_beneficiary_address":"111 E 5th Avenue, San Mateo, CA 94401","bank_beneficiary_name":"Bridge Ventures Inc.","bank_name":"Lead Bank","bic":"COBADEFFXXX","br_code":"00020126580014br.gov.bcb.pix0136example-key","bre_b_key":"CV123456789","clabe":"646180157034181180","currency":"usd","deposit_message":"CV-123456","iban":"DE89370400440532013000","payment_rails":["wire","ach_push"],"routing_number":"021000021","sort_code":"123456"},"destination":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"wallet_address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"},"id":"onramp_account_123","source_currency":"usd","status":"activated","updated_at":"2026-08-25T18:30:05Z"},"properties":{"id":{"example":"onramp_account_123","type":"string"},"status":{"$ref":"#/components/schemas/BankOnrampAccountStatus"},"source_currency":{"$ref":"#/components/schemas/FiatCurrency","example":"usd"},"destination":{"$ref":"#/components/schemas/OnrampDestination"},"deposit_instructions":{"anyOf":[{"$ref":"#/components/schemas/OnrampDepositInstructions"},{"type":"null"}]},"created_at":{"example":"2026-08-25T18:30:00Z","format":"date-time","type":"string"},"updated_at":{"example":"2026-08-25T18:30:05Z","format":"date-time","type":"string"}},"required":["id","status","source_currency","destination","created_at","updated_at"],"type":"object"},"BankOnrampAccountListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BankOnrampAccount"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object"},"BankOnrampAccountStatus":{"description":"Lifecycle of reusable bank deposit instructions","enum":["pending","activated","deactivated"],"type":"string"},"BankOnrampDeposit":{"example":{"account_id":"onramp_account_123","created_at":"2026-08-25T18:30:00Z","destination":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"wallet_address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"},"id":"onramp_deposit_123","settlement":{"destination":{"amount":"99.00","currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"transaction_hash":"5vJ7i6YwXx1yExampleTransactionHash","wallet_address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"},"fees":{"developer":"0.50","exchange":"0.00","gas":"0.50"},"source":{"amount":"100.00","currency":"usd"}},"source_currency":"usd","status":"COMPLETED","updated_at":"2026-08-25T18:35:00Z"},"properties":{"id":{"example":"onramp_deposit_123","type":"string"},"account_id":{"example":"onramp_account_123","type":"string"},"status":{"$ref":"#/components/schemas/BankOnrampDepositStatus"},"source_currency":{"$ref":"#/components/schemas/FiatCurrency","example":"usd"},"destination":{"$ref":"#/components/schemas/OnrampDestination"},"settlement":{"anyOf":[{"$ref":"#/components/schemas/OnrampSettlement"},{"type":"null"}]},"created_at":{"example":"2026-08-25T18:30:00Z","format":"date-time","type":"string"},"updated_at":{"example":"2026-08-25T18:35:00Z","format":"date-time","type":"string"}},"required":["id","account_id","status","source_currency","destination","created_at","updated_at"],"type":"object"},"BankOnrampDepositListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BankOnrampDeposit"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object"},"BankOnrampDepositStatus":{"description":"Lifecycle of an incoming bank deposit","enum":["PROCESSING","COMPLETED","FAILED"],"type":"string"},"BankOnrampPaymentRail":{"description":"Fiat payment rail used to fund a reusable bank-onramp account","enum":["wire","ach_push","sepa","spei","pix","faster_payments","bre_b"],"type":"string"},"BigInt":{"description":"A big integer represented as a string to preserve precision","example":"1000000000000000000","type":"string"},"BitcoinPaymentData":{"example":{"transaction":"cHNidP8BA..."},"properties":{"transaction":{"description":"Base64-encoded Bitcoin PSBT.","example":"cHNidP8BA...","type":"string"}},"required":["transaction"],"type":"object"},"CLABEBankAccount":{"properties":{"account_number":{"type":"string"}},"required":["account_number"],"type":"object"},"ChainID":{"enum":[1,10,56,137,4663,8453,42161,20000000000001,20000000000002,30000000000001,30000000000002],"example":1,"format":"int64","type":"integer"},"ChainPaymentData":{"oneOf":[{"$ref":"#/components/schemas/EVMPaymentData"},{"$ref":"#/components/schemas/BitcoinPaymentData"},{"$ref":"#/components/schemas/SolanaPaymentData"},{"$ref":"#/components/schemas/SuiPaymentData"}]},"ChainType":{"enum":["EVM","SOL","SUI","UTXO"],"type":"string"},"CheckingOrSavings":{"description":"US account subtype for ACH accounts","enum":["checking","savings"],"type":"string"},"ClaimFeesRequest":{"example":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"metadata":{"items":[{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99}],"refund":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98}},"recipient":"0x1234...abcd"},"properties":{"currency":{"$ref":"#/components/schemas/CurrencyBase"},"recipient":{"example":"0x1234...abcd","type":"string"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/OrderMetadata"},{"type":"null"}]}},"required":["currency","recipient"],"type":"object"},"ClaimFeesView":{"example":{"claim_order_id":"cuidjkhg3e289y74u5t6v","currency":{"raw":"100000000","ui":"100.0","value_usd":100},"source_chain_id":1,"source_transaction_hash":"0x1234...abcd"},"properties":{"claim_order_id":{"example":"cuidjkhg3e289y74u5t6v","type":"string"},"source_transaction_hash":{"example":"0x1234...abcd","type":"string"},"source_chain_id":{"$ref":"#/components/schemas/ChainID","example":1},"currency":{"$ref":"#/components/schemas/Amount"}},"required":["claim_order_id","source_transaction_hash","source_chain_id","currency"],"type":"object"},"CreateAPIKeyRequest":{"properties":{"label":{"maxLength":100,"type":"string"}},"type":"object"},"CreateBankOnrampAccountRequest":{"example":{"destination":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"wallet_address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"},"payment_rail":"wire","source_currency":"usd"},"properties":{"source_currency":{"$ref":"#/components/schemas/FiatCurrency","example":"usd"},"payment_rail":{"$ref":"#/components/schemas/BankOnrampPaymentRail","example":"wire"},"destination":{"$ref":"#/components/schemas/OnrampDestination"}},"required":["source_currency","destination"],"type":"object"},"CreateInvoiceRequest":{"example":{"from":{"email":"billing@acme.com","name":"Acme Inc."},"invoice":{"date":"2026-07-15","due_date":"2026-08-15","no":"INV-001"},"is_public":true,"items":[{"name":"Consulting","quantity":"2","tax":"10","unitPrice":"100.00"}],"recipient":{"email":"jane@example.com","name":"Jane Doe"}},"properties":{"id":{"type":"string"},"invoice":{"$ref":"#/components/schemas/InvoiceMeta"},"from":{"$ref":"#/components/schemas/InvoiceOrganization"},"recipient":{"$ref":"#/components/schemas/InvoiceRecipient"},"items":{"items":{"$ref":"#/components/schemas/InvoiceItem"},"type":"array"},"note":{"type":"string"},"is_public":{"example":true,"type":"boolean"}},"required":["invoice","from","recipient","items"],"type":"object"},"CreateOfframpIntentRequest":{"example":{"amount":10.5,"bank_account_id":"external_123","destination_reference":"invoice-123","payment_rail":"ach","sender_address":"0x1234...abcd","slippage_bps":50,"src":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"withdraw_currency":"usd"},"properties":{"src":{"$ref":"#/components/schemas/CurrencyBase"},"amount":{"example":10.5,"type":"number"},"bank_account_id":{"example":"external_123","type":"string"},"withdraw_currency":{"example":"usd","type":"string"},"payment_rail":{"$ref":"#/components/schemas/LiquidationAddressPaymentRail","example":"ach"},"destination_reference":{"example":"invoice-123","type":["string","null"]},"sender_address":{"example":"0x1234...abcd","type":["string","null"]},"slippage_bps":{"example":50,"type":["integer","null"]}},"required":["src","amount","bank_account_id","withdraw_currency","payment_rail"],"type":"object"},"CreateOrderRequest":{"example":{"amount":"100.0","currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"fiat_unit":"USD","metadata":{"items":[{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99}],"refund":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98}},"mode":"SALE","recipient":"0x1234...abcd"},"properties":{"mode":{"$ref":"#/components/schemas/OrderMode","example":"SALE"},"amount":{"example":"100.0","type":"string"},"fiat_unit":{"example":"USD","type":["string","null"]},"currency":{"anyOf":[{"$ref":"#/components/schemas/CurrencyBase"},{"type":"null"}]},"recipient":{"example":"0x1234...abcd","type":["string","null"]},"metadata":{"anyOf":[{"$ref":"#/components/schemas/OrderMetadata"},{"type":"null"}]}},"required":["mode","amount"],"type":"object"},"CreateWebhookRequest":{"example":{"subscription_events":["ORDER_CREATED","ORDER_COMPLETED"],"url":"https://example.com/webhook"},"properties":{"url":{"example":"https://example.com/webhook","type":"string"},"subscription_events":{"example":["ORDER_CREATED","ORDER_COMPLETED"],"items":{"type":"string"},"type":"array"}},"required":["url"],"type":"object"},"Currency":{"example":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"},"properties":{"id":{"example":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","type":"string"},"chain_id":{"$ref":"#/components/schemas/ChainID","example":1},"address":{"example":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","type":["string","null"]},"symbol":{"example":"USDC","type":"string"},"name":{"example":"USD Coin","type":"string"},"decimals":{"example":6,"format":"int64","type":"integer"},"image_uri":{"type":["string","null"]},"chain_image_uri":{"type":["string","null"]},"price_usd":{"example":1,"type":["number","null"]}},"required":["id","chain_id","symbol","decimals"],"type":"object"},"CurrencyBase":{"example":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"properties":{"address":{"example":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","type":["string","null"]},"chain_id":{"$ref":"#/components/schemas/ChainID","example":30000000000001}},"required":["chain_id"],"type":"object"},"CurrencySearchResponse":{"example":{"currencies":[{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}]},"properties":{"currencies":{"items":{"$ref":"#/components/schemas/Currency"},"type":"array"}},"required":["currencies"],"type":"object"},"CurrencyWithAmount":{"example":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":{"raw":"100000000","ui":"100.0","value_usd":100},"chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"},"properties":{"id":{"example":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","type":"string"},"chain_id":{"$ref":"#/components/schemas/ChainID","example":1},"address":{"example":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","type":["string","null"]},"symbol":{"example":"USDC","type":"string"},"name":{"example":"USD Coin","type":"string"},"decimals":{"example":6,"format":"int64","type":"integer"},"image_uri":{"type":["string","null"]},"chain_image_uri":{"type":["string","null"]},"price_usd":{"example":1,"type":["number","null"]},"amount":{"$ref":"#/components/schemas/Amount"},"ticker":{"deprecated":true,"description":"Deprecated alias for symbol; use symbol instead.","type":"string"}},"required":["id","chain_id","symbol","decimals","amount"],"type":"object"},"CustomerTierStatus":{"properties":{"tier":{"type":"string"},"verification_status":{"type":"string"},"verification_errors":{"items":{"type":"string"},"type":"array"}},"required":["tier","verification_status"],"type":"object"},"CustomerTransactionLimitEntry":{"example":{"limit":3000,"settlement_speed":"instant"},"properties":{"limit":{"description":"Remaining amount in the source currency","example":3000,"type":"number"},"settlement_speed":{"description":"Stripe settlement speed for this limit","example":"instant","type":"string"}},"required":["limit","settlement_speed"],"type":"object"},"CustomerTransactionLimits":{"properties":{"livemode":{"type":"boolean"},"limits":{"additionalProperties":{"additionalProperties":{"items":{"$ref":"#/components/schemas/CustomerTransactionLimitEntry"},"type":"array"},"type":"object"},"description":"Remaining limits keyed by source currency and payment method","type":"object"}},"required":["livemode","limits"],"type":"object"},"DepositStepData":{"example":{"amount":"100000000","currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"deposit_address":"5xVt9ovu6g6E4gvz9K9eV4kxY7yQZ8h3kZ2vY8xZ5xVt"},"properties":{"deposit_address":{"example":"5xVt9ovu6g6E4gvz9K9eV4kxY7yQZ8h3kZ2vY8xZ5xVt","type":"string"},"currency":{"$ref":"#/components/schemas/CurrencyBase"},"amount":{"$ref":"#/components/schemas/BigInt","example":"100000000"}},"required":["deposit_address","currency","amount"],"type":"object"},"EVMPaymentData":{"example":{"chainId":1,"data":"0xa9059cbb...","from":"0x322e128453EFd91a4c131761d9d535fF6E0CCd90","maxFeePerGas":"432320998","maxPriorityFeePerGas":"290572642","to":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","value":"0"},"properties":{"from":{"example":"0x322e128453EFd91a4c131761d9d535fF6E0CCd90","type":"string"},"to":{"example":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","type":"string"},"data":{"example":"0xa9059cbb...","type":"string"},"value":{"example":"0","type":"string"},"chainId":{"$ref":"#/components/schemas/ChainID","example":1},"maxFeePerGas":{"example":"432320998","type":"string"},"maxPriorityFeePerGas":{"example":"290572642","type":"string"}},"required":["from","to","data","value","chainId"],"type":"object"},"EndorsementName":{"description":"Payment rail endorsement: base, cards, cop, faster_payments, pix, sepa, or spei","enum":["base","cards","cop","faster_payments","pix","sepa","spei"],"type":"string"},"ErrorResponse":{"example":{"code":400,"error":"Bad Request","message":"Invalid request parameters"},"properties":{"error":{"example":"Bad Request","type":"string"},"message":{"example":"Invalid request parameters","type":"string"},"code":{"example":400,"format":"int64","type":"integer"},"details":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"required":["error","message","code"],"type":"object"},"FeeBalance":{"example":{"amount_cents":150,"amount_micros":1500000,"can_claim":true,"fiat":"USD","minimum_claim_amount_micros":10000},"properties":{"fiat":{"$ref":"#/components/schemas/Fiat","example":"USD"},"amount_cents":{"example":150,"format":"int64","type":"integer"},"amount_micros":{"example":1500000,"format":"int64","type":"integer"},"minimum_claim_amount_micros":{"example":10000,"format":"int64","type":"integer"},"can_claim":{"example":true,"type":"boolean"}},"required":["fiat","amount_cents","amount_micros","minimum_claim_amount_micros","can_claim"],"type":"object"},"FeeBalanceResponse":{"example":{"fee_balance":{"amount_cents":150,"amount_micros":1500000,"can_claim":true,"fiat":"USD","minimum_claim_amount_micros":10000}},"properties":{"fee_balance":{"$ref":"#/components/schemas/FeeBalance"}},"required":["fee_balance"],"type":"object"},"FeeEntryListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/FeeEntryView"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object"},"FeeEntryView":{"properties":{"id":{"type":"string"},"order_id":{"type":"string"},"role":{"type":"string"},"bips":{"format":"int64","type":"integer"},"amount_usd_micros":{"type":"string"},"claim_status":{"type":"string"},"created_at":{"format":"date-time","type":"string"}},"required":["id","order_id","role","bips","amount_usd_micros","claim_status","created_at"],"type":"object"},"FeeType":{"enum":["PROTOCOL_FEE","CUSTOM_FEE","INSTALL_FEE"],"type":"string"},"Fiat":{"enum":["USD","EUR"],"type":"string"},"FiatAmount":{"example":{"amount":100,"unit":"USD"},"properties":{"amount":{"example":100,"type":"number"},"unit":{"$ref":"#/components/schemas/Fiat","example":"USD"}},"required":["amount","unit"],"type":"object"},"FiatCurrency":{"description":"Fiat currency used by Bridge bank accounts and durable bank-onramp sessions","enum":["usd","eur","mxn","brl","gbp","cop"],"type":"string"},"IBANBankAccount":{"properties":{"account_number":{"type":"string"},"country":{"type":"string"},"bic":{"type":["string","null"]}},"required":["account_number","country"],"type":"object"},"InvoiceItem":{"example":{"name":"Consulting","quantity":"2","tax":"10","unitPrice":"100.00"},"properties":{"id":{"type":"string"},"name":{"example":"Consulting","type":"string"},"unitPrice":{"example":"100.00","type":"string"},"quantity":{"example":"2","type":"string"},"tax":{"example":"10","type":"string"},"image":{"type":"string"}},"required":["name","unitPrice","quantity"],"type":"object"},"InvoiceListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/InvoiceResponse"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object"},"InvoiceMeta":{"example":{"date":"2026-07-15","due_date":"2026-08-15","no":"INV-001"},"properties":{"no":{"example":"INV-001","type":"string"},"date":{"example":"2026-07-15","type":"string"},"due_date":{"example":"2026-08-15","type":"string"}},"required":["no","date"],"type":"object"},"InvoiceOrganization":{"example":{"email":"billing@acme.com","name":"Acme Inc."},"properties":{"name":{"example":"Acme Inc.","type":"string"},"email":{"example":"billing@acme.com","type":"string"},"phone":{"type":"string"},"logo":{"type":"string"},"street_address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip_code":{"type":"string"},"country":{"type":"string"}},"required":["name","email"],"type":"object"},"InvoiceRecipient":{"example":{"email":"jane@example.com","name":"Jane Doe"},"properties":{"name":{"example":"Jane Doe","type":"string"},"email":{"example":"jane@example.com","type":"string"},"phone":{"type":"string"},"street_address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip_code":{"type":"string"},"country":{"type":"string"}},"required":["name","email"],"type":"object"},"InvoiceResponse":{"properties":{"archived_at":{"format":"date-time","nullable":true,"type":"string"},"created_at":{"format":"date-time","type":"string"},"data":{"description":"Invoice details as provided on create.","properties":{"from":{"$ref":"#/components/schemas/InvoiceOrganization"},"invoice":{"$ref":"#/components/schemas/InvoiceMeta"},"items":{"items":{"$ref":"#/components/schemas/InvoiceItem"},"type":"array"},"recipient":{"$ref":"#/components/schemas/InvoiceRecipient"}},"type":"object"},"id":{"example":"cuidjkhg3e289y74u5t6v","type":"string"},"order_id":{"description":"Latest linked pay order id.","type":"string"},"orders":{"items":{"$ref":"#/components/schemas/OrderResponse"},"type":"array"},"organization_id":{"example":"org_123","type":"string"},"payment_url":{"example":"https://pay.coinvoyage.io/invoices/cuidjkhg3e289y74u5t6v","type":"string"},"published_at":{"format":"date-time","nullable":true,"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"KYCEmailChallengeRequest":{"properties":{"email":{"type":"string"}},"required":["email"],"type":"object"},"KYCEmailChallengeResponse":{"properties":{"challenge_id":{"type":"string"},"code":{"type":"string"},"expires_in_seconds":{"format":"int64","type":"integer"}},"required":["challenge_id","code","expires_in_seconds"],"type":"object"},"KYCLinkRequest":{"properties":{"email":{"type":"string"},"type":{"$ref":"#/components/schemas/KYCLinkType"},"full_name":{"type":"string"},"endorsements":{"items":{"$ref":"#/components/schemas/EndorsementName"},"type":"array"},"redirect_uri":{"type":"string"},"email_challenge_id":{"type":"string"},"email_challenge_code":{"type":"string"}},"required":["email","type","email_challenge_id","email_challenge_code"],"type":"object"},"KYCLinkResponse":{"properties":{"id":{"type":"string"},"type":{"$ref":"#/components/schemas/KYCLinkType"},"customer_id":{"type":["string","null"]},"full_name":{"type":["string","null"]},"email":{"type":"string"},"kyc_link":{"type":"string"},"kyc_status":{"$ref":"#/components/schemas/KYCStatus"},"rejection_reasons":{"items":{"$ref":"#/components/schemas/KYCRejectionReason"},"type":"array"},"tos_link":{"type":"string"},"tos_status":{"$ref":"#/components/schemas/TOSStatus"},"created_at":{"type":["string","null"]},"requirement_url":{"type":["string","null"]}},"required":["id","type","email","kyc_link","kyc_status","tos_link","tos_status"],"type":"object"},"KYCLinkType":{"description":"Whether the KYC link is for an individual or a business","enum":["individual","business"],"type":"string"},"KYCRejectionReason":{"properties":{"developer_reason":{"type":"string"},"reason":{"type":"string"},"created_at":{"type":"string"}},"required":["developer_reason","reason","created_at"],"type":"object"},"KYCStatus":{"description":"Current verification status of the KYC link","enum":["not_started","incomplete","awaiting_questionnaire","awaiting_ubo","under_review","approved","rejected","paused","offboarded"],"type":"string"},"LinkAuthIntentRequest":{"additionalProperties":false,"oneOf":[{"required":["email"]},{"required":["hashed_email"]}],"properties":{"email":{"description":"Customer email used to start Link OAuth authentication","example":"customer@example.com","format":"email","type":"string"},"hashed_email":{"description":"SHA-256 hex digest of the customer's email. Send exactly one of email or hashed_email.","example":"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514","maxLength":64,"minLength":64,"type":"string"}},"type":"object"},"LinkAuthIntentResponse":{"properties":{"id":{"type":"string"},"expires_at":{"format":"int64","type":"integer"},"stripe_publishable_key":{"type":"string"}},"required":["id","expires_at","stripe_publishable_key"],"type":"object"},"LinkAuthTokenRequest":{"example":{"auth_intent_id":"lai_test_123"},"properties":{"auth_intent_id":{"example":"lai_test_123","type":"string"}},"required":["auth_intent_id"],"type":"object"},"LinkAuthTokenResponse":{"example":{"expires_in":5400,"link_auth_token_client_secret":"latcs_test_123"},"properties":{"link_auth_token_client_secret":{"example":"latcs_test_123","type":"string"},"expires_in":{"example":5400,"format":"int64","type":"integer"}},"required":["link_auth_token_client_secret","expires_in"],"type":"object"},"LiquidationAddressPaymentRail":{"description":"Bridge fiat payment rail used for off-ramp settlement","enum":["ach","wire","ach_push","ach_same_day","sepa","spei","pix","swift","faster_payments","bre_b","co_bank_transfer","fiat_deposit_return"],"type":"string"},"LiquidationDestinationDetails":{"properties":{"payment_rail":{"type":"string"},"currency":{"type":"string"},"to_address":{"type":"string"},"blockchain_memo":{"type":"string"},"external_account_id":{"type":"string"},"wire_message":{"type":"string"},"sepa_reference":{"type":"string"},"spei_reference":{"type":"string"},"reference":{"type":"string"},"ach_reference":{"type":"string"},"imad":{"type":"string"},"trace_number":{"type":"string"},"tracking_number":{"type":"string"},"transaction_id":{"type":"string"},"sending_institution_name":{"type":"string"},"uetr":{"type":"string"}},"required":["payment_rail","currency"],"type":"object"},"LiquidationReceipt":{"properties":{"initial_amount":{"type":"string"},"developer_fee":{"type":"string"},"subtotal_amount":{"type":"string"},"converted_amount":{"type":"string"},"exchange_rate":{"type":"string"},"outgoing_amount":{"type":"string"},"destination_currency":{"type":"string"},"gas_fee":{"type":"string"},"url":{"type":"string"}},"required":["initial_amount","developer_fee","subtotal_amount","converted_amount","exchange_rate","outgoing_amount","destination_currency"],"type":"object"},"LiquidationReturnDetails":{"properties":{"reason":{"type":"string"},"risk_rejection_reason":{"type":"string"}},"type":"object"},"LiquidationTransaction":{"properties":{"id":{"type":"string"},"amount":{"type":"string"},"customer_id":{"type":"string"},"liquidation_address_id":{"type":"string"},"currency":{"type":"string"},"state":{"$ref":"#/components/schemas/LiquidationTransactionState"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"deposit_tx_hash":{"type":"string"},"from_address":{"type":"string"},"source_payment_rail":{"type":"string"},"destination":{"anyOf":[{"$ref":"#/components/schemas/LiquidationDestinationDetails"},{"type":"null"}]},"destination_tx_hash":{"type":"string"},"receipt":{"anyOf":[{"$ref":"#/components/schemas/LiquidationReceipt"},{"type":"null"}]},"refund_tx_hash":{"type":"string"},"return_details":{"anyOf":[{"$ref":"#/components/schemas/LiquidationReturnDetails"},{"type":"null"}]}},"required":["id","amount","customer_id","liquidation_address_id","currency","state","created_at","updated_at"],"type":"object"},"LiquidationTransactionState":{"description":"Bridge liquidation drain lifecycle state","enum":["awaiting_funds","funds_received","payment_submitted","payment_processed","in_review","kyc_required","kyc_in_review","developer_kyb_required","canceled","error","undeliverable","refunded"],"type":"string"},"MetadataItems":{"example":{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99},"properties":{"name":{"example":"Premium Widget","type":["string","null"]},"description":{"example":"High-quality widget with extra features","type":["string","null"]},"image":{"example":"https://example.com/images/widget.png","type":["string","null"]},"quantity":{"example":2,"type":["integer","null"]},"unit_price":{"example":49.99,"type":["number","null"]},"currency":{"example":"USD","type":["string","null"]}},"type":"object"},"MetadataRefund":{"example":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98},"properties":{"name":{"example":"Order Cancellation","type":["string","null"]},"reason":{"example":"Customer requested refund","type":["string","null"]},"additional_info":{"example":"Item was never shipped","type":["string","null"]},"refund_amount":{"example":99.98,"type":["number","null"]},"currency":{"example":"USD","type":["string","null"]}},"type":"object"},"OfframpData":{"example":{"destination_reference":"invoice-123","payment_rail":"ach","source":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":{"raw":"100000000","ui":"100.0","value_usd":100},"chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"properties":{"source":{"$ref":"#/components/schemas/CurrencyWithAmount"},"destination":{"$ref":"#/components/schemas/OfframpDestination"},"payment_rail":{"$ref":"#/components/schemas/LiquidationAddressPaymentRail","example":"ach"},"destination_reference":{"example":"invoice-123","type":["string","null"]},"liquidation_address_id":{"type":"string"},"swap":{"anyOf":[{"$ref":"#/components/schemas/OfframpSwap"},{"type":"null"}]},"drain":{"anyOf":[{"$ref":"#/components/schemas/LiquidationTransaction"},{"type":"null"}]}},"required":["source","destination","payment_rail"],"type":"object"},"OfframpDestination":{"properties":{"bank_account_details":{"$ref":"#/components/schemas/BankAccountDetails"},"withdraw_currency":{"type":"string"}},"required":["bank_account_details","withdraw_currency"],"type":"object"},"OfframpIntent":{"example":{"data":{"destination_reference":"invoice-123","payment_rail":"ach","source":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":{"raw":"100000000","ui":"100.0","value_usd":100},"chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"execution":{"destination_tx_hash":"0x5678...efgh","estimated_duration_seconds":120,"expires_at":"2023-01-01T00:00:00Z","fee_tx_hash":"0xfee1...fee2","funding":{"received_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"remaining_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"required_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"transactions":[{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"}]},"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"payment_rail":"CRYPTO","recipient":"0x1234...abcd","refund":{"address":"0x1234...abcd","reason":"execution failed: provider error","tx_hash":"0x9abc...ijkl"},"source_tx_hash":"0x1234...abcd","steps":[{"action":"swap","kind":"deposit","rail":"CRYPTO"}]},"id":"withdrawal_123","organization_id":"org_123","source_transaction_hash":"0xabc123...","status":"PENDING","type":"OFF_RAMP"},"properties":{"id":{"example":"withdrawal_123","type":"string"},"organization_id":{"example":"org_123","type":"string"},"type":{"$ref":"#/components/schemas/RampingTransactionType","example":"OFF_RAMP"},"status":{"$ref":"#/components/schemas/OfframpStatus"},"source_transaction_hash":{"example":"0xabc123...","type":["string","null"]},"data":{"$ref":"#/components/schemas/OfframpData"},"execution":{"anyOf":[{"$ref":"#/components/schemas/PaymentView"},{"type":"null"}]},"created_at":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"},"processed_at":{"type":["string","null"]}},"required":["id","organization_id","type","status","data","created_at","updated_at"],"type":"object"},"OfframpStatus":{"description":"Lifecycle of an off-ramp intent","enum":["PENDING","FUNDS_RECEIVED","KYC_PENDING","COMPLETED","FAILED"],"type":"string"},"OfframpSwap":{"properties":{"required":{"type":"boolean"},"order_id":{"type":"string"},"status":{"$ref":"#/components/schemas/OrderStatus"},"receiving_address":{"type":"string"},"deposit_address":{"type":"string"},"refund_address":{"type":"string"},"source_transaction_hash":{"type":"string"},"destination_transaction_hash":{"type":"string"},"fee_amount_usd":{"type":"number"}},"required":["required"],"type":"object"},"OnrampCheckoutResponse":{"properties":{"client_secret":{"type":"string"}},"required":["client_secret"],"type":"object"},"OnrampCustomerStatusRequest":{"additionalProperties":false,"properties":{"auth_intent_id":{"description":"Stripe Link auth intent ID used by the embedded component authenticate() call","example":"lai_test_123","type":"string"},"crypto_customer_id":{"description":"Crypto customer ID returned by the Stripe embedded component after Link authentication","example":"ccus_test_123","type":"string"}},"required":["auth_intent_id","crypto_customer_id"],"type":"object"},"OnrampCustomerStatusResponse":{"properties":{"crypto_customer_id":{"type":"string"},"kyc_required":{"type":"boolean"},"kyc_status":{"type":"string"},"kyc_current_tier":{"type":"string"},"kyc_region":{"type":["string","null"]},"kyc_next_step":{"type":"string"},"identity_verification_required":{"type":"boolean"},"identity_verification_status":{"type":"string"},"kyc_tiers":{"items":{"$ref":"#/components/schemas/CustomerTierStatus"},"type":"array"},"provided_fields":{"items":{"type":"string"},"type":"array"},"transaction_limits":{"anyOf":[{"$ref":"#/components/schemas/CustomerTransactionLimits"},{"type":"null"}],"description":"Live remaining Stripe onramp limits for the authenticated crypto customer"}},"required":["crypto_customer_id","kyc_required","identity_verification_required"],"type":"object"},"OnrampDepositInstructions":{"discriminator":{"propertyName":"currency"},"oneOf":[{"example":{"account_number":"1234567890","bank_address":"1801 Main Street, Kansas City, MO 64108","bank_beneficiary_address":"111 E 5th Avenue, San Mateo, CA 94401","bank_beneficiary_name":"Bridge Ventures Inc.","bank_name":"Lead Bank","currency":"usd","deposit_message":"CV-123456","payment_rails":["wire","ach_push"],"routing_number":"021000021"},"properties":{"account_number":{"example":"1234567890","type":"string"},"bank_address":{"example":"1801 Main Street, Kansas City, MO 64108","type":"string"},"bank_beneficiary_address":{"example":"111 E 5th Avenue, San Mateo, CA 94401","type":"string"},"bank_beneficiary_name":{"example":"Bridge Ventures Inc.","type":"string"},"bank_name":{"example":"Lead Bank","type":"string"},"currency":{"enum":["usd"],"example":"usd","type":"string"},"deposit_message":{"description":"Required memo or reference to include with every bank transfer.","example":"CV-123456","type":"string"},"payment_rails":{"example":["wire","ach_push"],"items":{"type":"string"},"type":"array"},"routing_number":{"example":"021000021","type":"string"}},"required":["currency","payment_rails","deposit_message","account_number","routing_number"],"type":"object"},{"example":{"account_holder_name":"CoinVoyage Customer","bank_address":"1801 Main Street, Kansas City, MO 64108","bank_name":"Lead Bank","bic":"COBADEFFXXX","currency":"eur","deposit_message":"CV-123456","iban":"DE89370400440532013000","payment_rails":["sepa"]},"properties":{"account_holder_name":{"example":"CoinVoyage Customer","type":"string"},"bank_address":{"example":"1801 Main Street, Kansas City, MO 64108","type":"string"},"bank_name":{"example":"Lead Bank","type":"string"},"bic":{"example":"COBADEFFXXX","type":"string"},"currency":{"enum":["eur"],"example":"eur","type":"string"},"deposit_message":{"description":"Required memo or reference to include with every bank transfer.","example":"CV-123456","type":"string"},"iban":{"example":"DE89370400440532013000","type":"string"},"payment_rails":{"example":["sepa"],"items":{"type":"string"},"type":"array"}},"required":["currency","payment_rails","deposit_message","iban","bic"],"type":"object"},{"example":{"account_holder_name":"CoinVoyage Customer","clabe":"646180157034181180","currency":"mxn","deposit_message":"CV-123456","payment_rails":["spei"]},"properties":{"account_holder_name":{"example":"CoinVoyage Customer","type":"string"},"clabe":{"example":"646180157034181180","type":"string"},"currency":{"enum":["mxn"],"example":"mxn","type":"string"},"deposit_message":{"description":"Required memo or reference to include with every bank transfer.","example":"CV-123456","type":"string"},"payment_rails":{"example":["spei"],"items":{"type":"string"},"type":"array"}},"required":["currency","payment_rails","deposit_message","clabe"],"type":"object"},{"example":{"account_holder_name":"CoinVoyage Customer","br_code":"00020126580014br.gov.bcb.pix0136example-key","currency":"brl","deposit_message":"CV-123456","payment_rails":["pix"]},"properties":{"account_holder_name":{"example":"CoinVoyage Customer","type":"string"},"br_code":{"example":"00020126580014br.gov.bcb.pix0136example-key","type":"string"},"currency":{"enum":["brl"],"example":"brl","type":"string"},"deposit_message":{"description":"Required memo or reference to include with every bank transfer.","example":"CV-123456","type":"string"},"payment_rails":{"example":["pix"],"items":{"type":"string"},"type":"array"}},"required":["currency","payment_rails","deposit_message","br_code"],"type":"object"},{"example":{"account_holder_name":"CoinVoyage Customer","account_number":"1234567890","bank_address":"1801 Main Street, Kansas City, MO 64108","bank_beneficiary_address":"111 E 5th Avenue, San Mateo, CA 94401","bank_beneficiary_name":"Bridge Ventures Inc.","bank_name":"Lead Bank","currency":"gbp","deposit_message":"CV-123456","payment_rails":["faster_payments"],"sort_code":"123456"},"properties":{"account_holder_name":{"example":"CoinVoyage Customer","type":"string"},"account_number":{"example":"1234567890","type":"string"},"bank_address":{"example":"1801 Main Street, Kansas City, MO 64108","type":"string"},"bank_beneficiary_address":{"example":"111 E 5th Avenue, San Mateo, CA 94401","type":"string"},"bank_beneficiary_name":{"example":"Bridge Ventures Inc.","type":"string"},"bank_name":{"example":"Lead Bank","type":"string"},"currency":{"enum":["gbp"],"example":"gbp","type":"string"},"deposit_message":{"description":"Required memo or reference to include with every bank transfer.","example":"CV-123456","type":"string"},"payment_rails":{"example":["faster_payments"],"items":{"type":"string"},"type":"array"},"sort_code":{"example":"123456","type":"string"}},"required":["currency","payment_rails","deposit_message","account_number","sort_code"],"type":"object"},{"example":{"account_holder_name":"CoinVoyage Customer","bre_b_key":"CV123456789","currency":"cop","deposit_message":"CV-123456","payment_rails":["bre_b"]},"properties":{"account_holder_name":{"example":"CoinVoyage Customer","type":"string"},"bre_b_key":{"example":"CV123456789","type":"string"},"currency":{"enum":["cop"],"example":"cop","type":"string"},"deposit_message":{"description":"Required memo or reference to include with every bank transfer.","example":"CV-123456","type":"string"},"payment_rails":{"example":["bre_b"],"items":{"type":"string"},"type":"array"}},"required":["currency","payment_rails","deposit_message","bre_b_key"],"type":"object"}]},"OnrampDestination":{"example":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"wallet_address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"},"properties":{"currency":{"$ref":"#/components/schemas/CurrencyBase"},"wallet_address":{"example":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM","type":"string"}},"required":["currency","wallet_address"],"type":"object"},"OnrampIntentRequest":{"example":{"destination_amount":"100.00","destination_currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"order_id":"cuidjkhg3e289y74u5t6v123","source_amount":"125.00","source_currency":"usd","wallet_address":"0xabc123..."},"properties":{"order_id":{"description":"CoinVoyage Order ID. When set, amount, currency, and wallet fields are derived server-side and must not be included.","example":"cuidjkhg3e289y74u5t6v123","type":"string"},"destination_amount":{"description":"Crypto destination amount for a standalone onramp intent. Mutually exclusive with source_amount.","example":"100.00","type":"string"},"destination_currency":{"$ref":"#/components/schemas/CurrencyBase","description":"CoinVoyage destination currency. Use chain_id to select the destination chain and address to select a token; omit address for native assets where supported."},"source_amount":{"description":"Fiat source amount for a standalone onramp intent. Mutually exclusive with destination_amount.","example":"125.00","type":"string"},"source_currency":{"$ref":"#/components/schemas/StripeOnrampCurrency","example":"usd"},"wallet_address":{"example":"0xabc123...","type":"string"}},"required":["destination_currency"],"type":"object"},"OnrampIntentResponse":{"example":{"destination_currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"expires_at":"2024-01-01T00:00:00Z","id":"oi_123456789","order_id":"cuidjkhg3e289y74u5t6v123","session_id":"cos_test_123","source_amount":"125.00","source_currency":"usd","status":"requires_link_auth","stripe_publishable_key":"pk_test_123","wallet_address":"0xabc123..."},"properties":{"id":{"example":"oi_123456789","type":"string"},"order_id":{"example":"cuidjkhg3e289y74u5t6v123","type":"string"},"session_id":{"example":"cos_test_123","type":"string"},"status":{"$ref":"#/components/schemas/OnrampIntentStatus","example":"requires_link_auth"},"source_amount":{"example":"125.00","type":"string"},"source_currency":{"$ref":"#/components/schemas/StripeOnrampCurrency","example":"usd"},"stripe_publishable_key":{"example":"pk_test_123","type":"string"},"destination_amount":{"type":"string"},"destination_currency":{"$ref":"#/components/schemas/CurrencyBase"},"wallet_address":{"example":"0xabc123...","type":"string"},"expires_at":{"example":"2024-01-01T00:00:00Z","format":"date-time","type":"string"}},"required":["id","status","source_currency","stripe_publishable_key","destination_currency","wallet_address","expires_at"],"type":"object"},"OnrampIntentStatus":{"enum":["requires_link_auth","requires_kyc","requires_identity_verification","requires_document_verification","identity_verification_pending","session_created"],"type":"string"},"OnrampSessionRequest":{"additionalProperties":false,"properties":{"auth_intent_id":{"description":"Stripe Link auth intent ID returned by /onramp/auth/intent","example":"lai_test_123","type":"string"},"crypto_customer_id":{"description":"Crypto customer ID returned by the Stripe embedded component after Link authentication","example":"ccus_test_123","type":"string"},"payment_token":{"description":"cryptoPaymentToken returned by the Stripe embedded component payment method collection step","example":"cpt_test_123","type":"string"}},"required":["auth_intent_id","crypto_customer_id","payment_token"],"type":"object"},"OnrampSessionResponse":{"properties":{"id":{"type":"string"},"quote_expires_at":{"type":["integer","null"]}},"required":["id"],"type":"object"},"OnrampSettlement":{"example":{"destination":{"amount":"99.00","currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"transaction_hash":"5vJ7i6YwXx1yExampleTransactionHash","wallet_address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"},"fees":{"developer":"0.50","exchange":"0.00","gas":"0.50"},"source":{"amount":"100.00","currency":"usd"}},"properties":{"source":{"$ref":"#/components/schemas/OnrampSettlementAmount"},"destination":{"$ref":"#/components/schemas/OnrampSettlementDestination"},"fees":{"$ref":"#/components/schemas/OnrampSettlementFees"}},"required":["source","destination","fees"],"type":"object"},"OnrampSettlementAmount":{"example":{"amount":"100.00","currency":"usd"},"properties":{"currency":{"example":"usd","type":"string"},"amount":{"example":"100.00","type":"string"}},"required":["currency","amount"],"type":"object"},"OnrampSettlementDestination":{"example":{"amount":"99.00","currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"transaction_hash":"5vJ7i6YwXx1yExampleTransactionHash","wallet_address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"},"properties":{"currency":{"$ref":"#/components/schemas/CurrencyBase"},"amount":{"example":"99.00","type":"string"},"wallet_address":{"example":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM","type":"string"},"transaction_hash":{"example":"5vJ7i6YwXx1yExampleTransactionHash","type":"string"}},"required":["currency","amount","wallet_address"],"type":"object"},"OnrampSettlementFees":{"example":{"developer":"0.50","exchange":"0.00","gas":"0.50"},"properties":{"exchange":{"example":"0.00","type":"string"},"gas":{"example":"0.50","type":"string"},"developer":{"example":"0.50","type":"string"}},"required":["exchange","gas","developer"],"type":"object"},"OrderFulfillment":{"example":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"asset":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"},"custom_fee_bps":50,"fiat_unit":"USD","rate_usd":"1.00","recipient":"0x1234...abcd","swap":{"slippage_bps":50,"trade_type":"EXACT_INPUT"}},"properties":{"asset":{"anyOf":[{"$ref":"#/components/schemas/Currency"},{"type":"null"}]},"amount":{"$ref":"#/components/schemas/Amount"},"fiat_unit":{"example":"USD","type":["string","null"]},"rate_usd":{"example":"1.00","type":["string","null"]},"recipient":{"example":"0x1234...abcd","type":["string","null"]},"custom_fee_bps":{"example":50,"type":["integer","null"]},"swap":{"anyOf":[{"$ref":"#/components/schemas/OrderSwap"},{"type":"null"}]}},"required":["amount"],"type":"object"},"OrderListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/OrderResponse"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object"},"OrderMetadata":{"example":{"items":[{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99}],"refund":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98}},"properties":{"items":{"items":{"$ref":"#/components/schemas/MetadataItems"},"type":"array"},"refund":{"anyOf":[{"$ref":"#/components/schemas/MetadataRefund"},{"type":"null"}]}},"type":"object"},"OrderMode":{"enum":["SALE","DEPOSIT","REFUND","SWAP","FEE_CLAIM"],"type":"string"},"OrderQuoteOption":{"example":{"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"issues":{"price_impact_warning":{"impact":0.07,"threshold":0.05}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"rank":1},"properties":{"rank":{"example":1,"format":"int64","type":"integer"},"quote_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"input":{"anyOf":[{"$ref":"#/components/schemas/QuoteInput"},{"type":"null"}]},"output":{"anyOf":[{"$ref":"#/components/schemas/QuoteOutput"},{"type":"null"}]},"trade_type":{"$ref":"#/components/schemas/TradeType"},"slippage_bps":{"type":["integer","null"]},"price_impact":{"type":["number","null"]},"providers":{"items":{"type":"string"},"type":"array"},"issues":{"anyOf":[{"$ref":"#/components/schemas/QuoteIssues"},{"type":"null"}]}},"required":["rank","expires_at"],"type":"object"},"OrderQuotesFilter":{"example":{"limit":5,"min_balance_usd":1,"sources":[{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001}],"wallet":{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"}},"properties":{"wallet":{"anyOf":[{"$ref":"#/components/schemas/Wallet"},{"type":"null"}]},"sources":{"items":{"$ref":"#/components/schemas/CurrencyBase"},"type":"array"},"limit":{"example":5,"type":["integer","null"]},"min_balance_usd":{"example":1,"type":["number","null"]}},"type":"object"},"OrderQuotesRequest":{"example":{"filter":{"limit":5,"min_balance_usd":1,"sources":[{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001}],"wallet":{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"}}},"properties":{"filter":{"anyOf":[{"$ref":"#/components/schemas/OrderQuotesFilter"},{"type":"null"}]}},"type":"object"},"OrderQuotesResponse":{"example":{"options":[{"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"issues":{"price_impact_warning":{"impact":0.07,"threshold":0.05}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"rank":1}],"result_type":"OK"},"properties":{"result_type":{"$ref":"#/components/schemas/QuoteResultType","example":"OK"},"options":{"items":{"$ref":"#/components/schemas/OrderQuoteOption"},"type":"array"}},"required":["result_type","options"],"type":"object"},"OrderResponse":{"example":{"created_at":"2023-01-01T00:00:00Z","fulfillment":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"asset":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"},"custom_fee_bps":50,"fiat_unit":"USD","rate_usd":"1.00","recipient":"0x1234...abcd","swap":{"slippage_bps":50,"trade_type":"EXACT_INPUT"}},"hosted_url":"https://pay.coinvoyage.io/pay/cuidjkhg3e289y74u5t6v","id":"cuidjkhg3e289y74u5t6v","metadata":{"items":[{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99}],"refund":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98}},"mode":"SALE","organization_id":"org_123","payment":{"destination_tx_hash":"0x5678...efgh","estimated_duration_seconds":120,"expires_at":"2023-01-01T00:00:00Z","fee_tx_hash":"0xfee1...fee2","funding":{"received_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"remaining_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"required_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"transactions":[{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"}]},"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"payment_rail":"CRYPTO","recipient":"0x1234...abcd","refund":{"address":"0x1234...abcd","reason":"execution failed: provider error","tx_hash":"0x9abc...ijkl"},"source_tx_hash":"0x1234...abcd","steps":[{"action":"swap","kind":"deposit","rail":"CRYPTO"}]},"settings":{"card_payments":true,"hide_footer":true},"status":"PENDING","updated_at":"2023-01-01T00:00:00Z"},"properties":{"id":{"example":"cuidjkhg3e289y74u5t6v","type":"string"},"created_at":{"example":"2023-01-01T00:00:00Z","format":"date-time","type":"string"},"updated_at":{"example":"2023-01-01T00:00:00Z","format":"date-time","type":"string"},"organization_id":{"example":"org_123","type":"string"},"mode":{"$ref":"#/components/schemas/OrderMode","example":"SALE"},"status":{"$ref":"#/components/schemas/OrderStatus","example":"PENDING"},"fulfillment":{"$ref":"#/components/schemas/OrderFulfillment"},"payment":{"anyOf":[{"$ref":"#/components/schemas/PaymentView"},{"type":"null"}]},"metadata":{"anyOf":[{"$ref":"#/components/schemas/OrderMetadata"},{"type":"null"}]},"settings":{"$ref":"#/components/schemas/OrganizationSettings"},"hosted_url":{"example":"https://pay.coinvoyage.io/pay/cuidjkhg3e289y74u5t6v","type":"string"}},"required":["id","created_at","updated_at","organization_id","mode","status","fulfillment","hosted_url"],"type":"object"},"OrderStatus":{"enum":["PENDING","EXPIRED","FAILED","AWAITING_PAYMENT","OPTIMISTIC_CONFIRMED","AWAITING_CONFIRMATION","EXECUTING_ORDER","COMPLETED","REFUNDED","PARTIAL_PAYMENT"],"type":"string"},"OrderSwap":{"example":{"slippage_bps":50,"trade_type":"EXACT_INPUT"},"properties":{"trade_type":{"$ref":"#/components/schemas/TradeType","example":"EXACT_INPUT"},"slippage_bps":{"example":50,"type":["integer","null"]}},"type":"object"},"OrganizationSettings":{"additionalProperties":true,"description":"Widget/client UI settings configured on the organization. Known fields are documented here; arbitrary extra JSON settings are also allowed.","example":{"card_payments":true,"hide_footer":true,"logo_url":"https://example.com/logo.png","theme_color":"#000000"},"properties":{"hide_footer":{"example":true,"type":"boolean"},"card_payments":{"example":true,"type":"boolean"}},"required":["card_payments"],"type":"object"},"PIXBankAccount":{"properties":{"document_number":{"type":["string","null"]},"pix_key":{"type":["string","null"]},"br_code":{"type":["string","null"]}},"type":"object"},"Pagination":{"example":{"limit":20,"offset":0,"total_count":42},"properties":{"total_count":{"example":42,"format":"int64","type":"integer"},"limit":{"example":20,"format":"int64","type":"integer"},"offset":{"example":0,"format":"int64","type":"integer"}},"required":["total_count","limit","offset"],"type":"object"},"PaymentFunding":{"example":{"received_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"remaining_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"required_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"transactions":[{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"}]},"properties":{"required_amount":{"$ref":"#/components/schemas/Amount"},"received_amount":{"$ref":"#/components/schemas/Amount"},"remaining_amount":{"$ref":"#/components/schemas/Amount"},"transactions":{"items":{"$ref":"#/components/schemas/PaymentFundingTransaction"},"type":"array"}},"required":["required_amount","received_amount","remaining_amount","transactions"],"type":"object"},"PaymentFundingTransaction":{"example":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"},"properties":{"tx_hash":{"example":"0x1234...abcd","type":"string"},"amount":{"$ref":"#/components/schemas/Amount"}},"required":["tx_hash","amount"],"type":"object"},"PaymentMethod":{"enum":["WALLET","DEPOSIT_ADDRESS","CARD"],"type":"string"},"PaymentMethodAvailability":{"example":{"available":true,"method":"CARD","minimum_amount":{"amount":100,"unit":"USD"},"reason":"Unavailable in your region","warning":"Card payments may be unavailable in your location. Stripe will confirm eligibility."},"properties":{"method":{"$ref":"#/components/schemas/PaymentMethod","example":"CARD"},"available":{"example":true,"type":"boolean"},"reason":{"example":"Unavailable in your region","type":["string","null"]},"warning":{"description":"Non-blocking notice; the method remains available and Stripe confirms eligibility","example":"Card payments may be unavailable in your location. Stripe will confirm eligibility.","type":["string","null"]},"minimum_amount":{"anyOf":[{"$ref":"#/components/schemas/FiatAmount"},{"type":"null"}]}},"required":["method","available"],"type":"object"},"PaymentMethodsResponse":{"example":{"methods":[{"available":true,"method":"CARD","minimum_amount":{"amount":100,"unit":"USD"},"reason":"Unavailable in your region","warning":"Card payments may be unavailable in your location. Stripe will confirm eligibility."}]},"properties":{"methods":{"items":{"$ref":"#/components/schemas/PaymentMethodAvailability"},"type":"array"}},"required":["methods"],"type":"object"},"PaymentRail":{"enum":["CRYPTO","FIAT"],"type":"string"},"PaymentRefund":{"example":{"address":"0x1234...abcd","reason":"execution failed: provider error","tx_hash":"0x9abc...ijkl"},"properties":{"address":{"example":"0x1234...abcd","type":["string","null"]},"tx_hash":{"example":"0x9abc...ijkl","type":["string","null"]},"reason":{"example":"execution failed: provider error","type":["string","null"]}},"type":"object"},"PaymentRequest":{"example":{"refund_address":"0x1234...abcd","source":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"payment_rail":"CRYPTO","slippage_bps":50}},"properties":{"source":{"anyOf":[{"$ref":"#/components/schemas/PaymentSource"},{"type":"null"}]},"refund_address":{"example":"0x1234...abcd","type":["string","null"]}},"type":"object"},"PaymentResponse":{"example":{"data":{"destination_tx_hash":"0x5678...efgh","estimated_duration_seconds":120,"expires_at":"2023-01-01T00:00:00Z","fee_tx_hash":"0xfee1...fee2","funding":{"received_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"remaining_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"required_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"transactions":[{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"}]},"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"payment_rail":"CRYPTO","recipient":"0x1234...abcd","refund":{"address":"0x1234...abcd","reason":"execution failed: provider error","tx_hash":"0x9abc...ijkl"},"source_tx_hash":"0x1234...abcd","steps":[{"action":"swap","kind":"deposit","rail":"CRYPTO"}]},"order_id":"cuidjkhg3e289y74u5t6v","status":"AWAITING_PAYMENT"},"properties":{"order_id":{"example":"cuidjkhg3e289y74u5t6v","type":"string"},"status":{"$ref":"#/components/schemas/OrderStatus","example":"AWAITING_PAYMENT"},"data":{"$ref":"#/components/schemas/PaymentView"}},"required":["order_id","status","data"],"type":"object"},"PaymentSource":{"example":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"payment_rail":"CRYPTO","slippage_bps":50},"properties":{"payment_rail":{"$ref":"#/components/schemas/PaymentRail","example":"CRYPTO"},"currency":{"anyOf":[{"$ref":"#/components/schemas/CurrencyBase"},{"type":"null"}]},"slippage_bps":{"example":50,"type":["integer","null"]}},"required":["payment_rail"],"type":"object"},"PaymentStep":{"example":{"action":"swap","kind":"deposit","rail":"CRYPTO"},"properties":{"id":{"type":"string"},"purpose":{"type":"string"},"status":{"type":"string"},"expires_at":{"type":["string","null"]},"rail":{"$ref":"#/components/schemas/PaymentRail","example":"CRYPTO"},"kind":{"$ref":"#/components/schemas/StepKind","example":"deposit"},"action":{"example":"swap","type":"string"},"description":{"type":"string"},"data":{"oneOf":[{"$ref":"#/components/schemas/DepositStepData"},{"$ref":"#/components/schemas/ChainPaymentData"},{"$ref":"#/components/schemas/StripeOnrampPaymentData"}]}},"required":["rail","kind"],"type":"object"},"PaymentView":{"example":{"destination_tx_hash":"0x5678...efgh","estimated_duration_seconds":120,"expires_at":"2023-01-01T00:00:00Z","fee_tx_hash":"0xfee1...fee2","funding":{"received_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"remaining_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"required_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"transactions":[{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"}]},"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"payment_rail":"CRYPTO","recipient":"0x1234...abcd","refund":{"address":"0x1234...abcd","reason":"execution failed: provider error","tx_hash":"0x9abc...ijkl"},"source_tx_hash":"0x1234...abcd","steps":[{"action":"swap","kind":"deposit","rail":"CRYPTO"}]},"properties":{"payment_rail":{"$ref":"#/components/schemas/PaymentRail","example":"CRYPTO"},"input":{"$ref":"#/components/schemas/QuoteInput"},"output":{"$ref":"#/components/schemas/QuoteOutput"},"funding":{"anyOf":[{"$ref":"#/components/schemas/PaymentFunding"},{"type":"null"}]},"recipient":{"example":"0x1234...abcd","type":"string"},"steps":{"items":{"$ref":"#/components/schemas/PaymentStep"},"type":"array"},"expires_at":{"example":"2023-01-01T00:00:00Z","format":"date-time","type":"string"},"estimated_duration_seconds":{"example":120,"type":["number","null"]},"source_tx_hash":{"example":"0x1234...abcd","type":["string","null"]},"destination_tx_hash":{"example":"0x5678...efgh","type":["string","null"]},"fee_tx_hash":{"example":"0xfee1...fee2","type":["string","null"]},"refund":{"anyOf":[{"$ref":"#/components/schemas/PaymentRefund"},{"type":"null"}]}},"required":["payment_rail","input","output","recipient","steps","expires_at"],"type":"object"},"PortfolioError":{"example":{"wallet":{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"}},"properties":{"wallet":{"$ref":"#/components/schemas/Wallet"},"code":{"$ref":"#/components/schemas/PortfolioErrorCode"},"message":{"type":"string"}},"required":["wallet","code","message"],"type":"object"},"PortfolioErrorCode":{"description":"Per-wallet portfolio failure category.","enum":["invalid_wallet","unsupported_chain","upstream_unavailable","scan_failed"],"type":"string"},"PortfolioFilter":{"example":{"min_balance_usd":1},"properties":{"min_balance_usd":{"example":1,"type":["number","null"]}},"type":"object"},"PortfolioHolding":{"example":{"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"properties":{"currency":{"$ref":"#/components/schemas/Currency"},"balance":{"$ref":"#/components/schemas/Amount"}},"required":["currency","balance"],"type":"object"},"PortfolioRequest":{"example":{"filter":{"min_balance_usd":1},"force_refresh":false,"wallets":[{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"}]},"properties":{"wallets":{"items":{"$ref":"#/components/schemas/Wallet"},"maxItems":10,"minItems":1,"type":"array"},"filter":{"anyOf":[{"$ref":"#/components/schemas/PortfolioFilter"},{"type":"null"}]},"force_refresh":{"example":false,"type":"boolean"}},"required":["wallets"],"type":"object"},"PortfolioResponse":{"example":{"errors":[{"wallet":{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"}}],"portfolio":[{"chain_type":"EVM","currencies":[{"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}}],"wallet":{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"}}]},"properties":{"portfolio":{"items":{"$ref":"#/components/schemas/PortfolioResult"},"type":"array"},"errors":{"items":{"$ref":"#/components/schemas/PortfolioError"},"type":"array"}},"required":["portfolio","errors"],"type":"object"},"PortfolioResult":{"example":{"chain_type":"EVM","currencies":[{"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}}],"wallet":{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"}},"properties":{"wallet":{"$ref":"#/components/schemas/Wallet"},"chain_type":{"$ref":"#/components/schemas/ChainType","example":"EVM"},"scanned_at":{"format":"date-time","type":"string"},"expires_at":{"format":"date-time","type":"string"},"currencies":{"items":{"$ref":"#/components/schemas/PortfolioHolding"},"type":"array"}},"required":["wallet","chain_type","scanned_at","expires_at","currencies"],"type":"object"},"PriceImpactWarning":{"example":{"impact":0.07,"threshold":0.05},"properties":{"impact":{"example":0.07,"type":"number"},"threshold":{"example":0.05,"type":"number"}},"required":["impact","threshold"],"type":"object"},"QuoteBreakdown":{"example":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"properties":{"total":{"$ref":"#/components/schemas/Amount"},"base":{"$ref":"#/components/schemas/Amount"},"fees":{"anyOf":[{"$ref":"#/components/schemas/QuoteFees"},{"type":"null"}]},"gas":{"anyOf":[{"$ref":"#/components/schemas/Amount"},{"type":"null"}]}},"required":["total","base"],"type":"object"},"QuoteFees":{"example":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"properties":{"total_fee":{"$ref":"#/components/schemas/Amount"},"protocol_fee":{"anyOf":[{"$ref":"#/components/schemas/Amount"},{"type":"null"}]},"custom_fee":{"anyOf":[{"$ref":"#/components/schemas/Amount"},{"type":"null"}]},"relayer_fee":{"anyOf":[{"$ref":"#/components/schemas/Amount"},{"type":"null"}]}},"required":["total_fee"],"type":"object"},"QuoteInput":{"example":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"properties":{"currency":{"$ref":"#/components/schemas/Currency"},"amount":{"$ref":"#/components/schemas/Amount"},"balance":{"anyOf":[{"$ref":"#/components/schemas/Amount"},{"type":"null"}]},"breakdown":{"anyOf":[{"$ref":"#/components/schemas/QuoteBreakdown"},{"type":"null"}]}},"required":["currency","amount"],"type":"object"},"QuoteIssues":{"example":{"price_impact_warning":{"impact":0.07,"threshold":0.05}},"properties":{"price_impact_warning":{"anyOf":[{"$ref":"#/components/schemas/PriceImpactWarning"},{"type":"null"}]}},"type":"object"},"QuoteOutput":{"example":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"properties":{"currency":{"$ref":"#/components/schemas/Currency"},"amount":{"$ref":"#/components/schemas/Amount"},"amount_out_minimum":{"anyOf":[{"$ref":"#/components/schemas/Amount"},{"type":"null"}]}},"required":["currency","amount"],"type":"object"},"QuoteResultType":{"description":"Soft-error result code returned by /v3/swap/quote endpoints. Non-OK values still arrive on a 200 so polling clients don't have to special-case errors.","enum":["OK","NO_ROUTE","HIGH_IMPACT"],"type":"string"},"RampingTransactionType":{"enum":["OFF_RAMP","ON_RAMP"],"type":"string"},"RefundOrderRequest":{"example":{"amount":"50.0","currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"fiat_unit":"USD","metadata":{"items":[{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99}],"refund":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98}},"recipient":"0x1234...abcd"},"properties":{"amount":{"example":"50.0","type":"string"},"fiat_unit":{"example":"USD","type":["string","null"]},"currency":{"anyOf":[{"$ref":"#/components/schemas/CurrencyBase"},{"type":"null"}]},"recipient":{"example":"0x1234...abcd","type":["string","null"]},"metadata":{"anyOf":[{"$ref":"#/components/schemas/OrderMetadata"},{"type":"null"}]}},"required":["amount"],"type":"object"},"SWIFTAccountInfo":{"properties":{"account_number":{"type":["string","null"]},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"type":"object"},"SWIFTBankAccount":{"properties":{"account":{"$ref":"#/components/schemas/SWIFTAccountInfo"},"address":{"$ref":"#/components/schemas/BankAccountAddress"},"category":{"$ref":"#/components/schemas/SwiftCategory"},"purpose_of_funds":{"items":{"type":"string"},"type":"array"},"short_business_description":{"type":"string"}},"required":["account","address","category","purpose_of_funds","short_business_description"],"type":"object"},"SaveInvoiceDraftRequest":{"description":"Draft blocks are stored verbatim; partial content is allowed.","properties":{"from":{"$ref":"#/components/schemas/InvoiceOrganization"},"id":{"description":"Existing draft to update; omit to create.","type":"string"},"invoice":{"$ref":"#/components/schemas/InvoiceMeta"},"items":{"items":{"$ref":"#/components/schemas/InvoiceItem"},"type":"array"},"recipient":{"$ref":"#/components/schemas/InvoiceRecipient"}},"type":"object"},"SolanaPaymentData":{"properties":{"transaction":{"description":"Serialized Solana transaction.","type":"string"}},"required":["transaction"],"type":"object"},"StepKind":{"enum":["deposit","transaction","stripe_onramp"],"type":"string"},"StripeCryptoCurrency":{"enum":["usdc","usdb","usdsui","usdt","phantom_cash"],"type":"string"},"StripeCryptoNetwork":{"enum":["arbitrum","base","bitcoin","ethereum","polygon","solana","sui","tempo","worldchain"],"type":"string"},"StripeOnrampCurrency":{"description":"Fiat source currency for Stripe embedded onramp intents","enum":["usd","eur"],"type":"string"},"StripeOnrampPaymentData":{"example":{"destination_amount":"100","destination_currency":"usdc","destination_network":"ethereum","session_id":"cos_test_123","source_currency":"usd","status":"initialized","stripe_publishable_key":"pk_test_123","wallet_address":"0x1234...abcd"},"properties":{"session_id":{"example":"cos_test_123","type":"string"},"stripe_publishable_key":{"example":"pk_test_123","type":"string"},"status":{"example":"initialized","type":"string"},"source_currency":{"anyOf":[{"$ref":"#/components/schemas/StripeOnrampCurrency"},{"type":"null"}],"example":"usd"},"destination_currency":{"$ref":"#/components/schemas/StripeCryptoCurrency","example":"usdc"},"destination_network":{"$ref":"#/components/schemas/StripeCryptoNetwork","example":"ethereum"},"destination_amount":{"example":"100","type":"string"},"wallet_address":{"example":"0x1234...abcd","type":"string"}},"required":["stripe_publishable_key","status","destination_currency","destination_network","destination_amount","wallet_address"],"type":"object"},"SuiPaymentData":{"properties":{"transaction":{"description":"Base64 BCS transaction kind.","type":"string"}},"required":["transaction"],"type":"object"},"SwapDestination":{"example":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"recipient":"0x1234...abcd"},"properties":{"currency":{"$ref":"#/components/schemas/CurrencyBase"},"recipient":{"example":"0x1234...abcd","type":["string","null"]}},"required":["currency"],"type":"object"},"SwapExecuteRequest":{"example":{"amount":"100.0","destination":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"recipient":"0x1234...abcd"},"metadata":{"items":[{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99}],"refund":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98}},"source":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"sender_address":"0x1234...abcd","slippage_bps":50},"trade_type":"EXACT_OUTPUT","use_deposit_address":false},"properties":{"trade_type":{"$ref":"#/components/schemas/TradeType","example":"EXACT_OUTPUT"},"amount":{"example":"100.0","type":"string"},"source":{"$ref":"#/components/schemas/SwapSource"},"destination":{"$ref":"#/components/schemas/SwapDestination"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/OrderMetadata"},{"type":"null"}]},"use_deposit_address":{"description":"When true, steps[] always carries a deposit instruction; when omitted steps can be of various types depending on the swap route.","example":false,"type":"boolean"}},"required":["trade_type","amount","source","destination"],"type":"object"},"SwapExecuteResponse":{"example":{"data":{"destination_tx_hash":"0x5678...efgh","estimated_duration_seconds":120,"expires_at":"2023-01-01T00:00:00Z","fee_tx_hash":"0xfee1...fee2","funding":{"received_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"remaining_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"required_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"transactions":[{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"}]},"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"payment_rail":"CRYPTO","recipient":"0x1234...abcd","refund":{"address":"0x1234...abcd","reason":"execution failed: provider error","tx_hash":"0x9abc...ijkl"},"source_tx_hash":"0x1234...abcd","steps":[{"action":"swap","kind":"deposit","rail":"CRYPTO"}]}},"properties":{"order_id":{"type":"string"},"status":{"$ref":"#/components/schemas/OrderStatus"},"data":{"$ref":"#/components/schemas/PaymentView"}},"required":["order_id","status","data"],"type":"object"},"SwapQuote":{"example":{"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"trade_type":"EXACT_OUTPUT"},"properties":{"quote_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"stale":{"type":"boolean"},"trade_type":{"$ref":"#/components/schemas/TradeType","example":"EXACT_OUTPUT"},"slippage_bps":{"type":["integer","null"]},"price_impact":{"type":"number"},"providers":{"items":{"type":"string"},"type":"array"},"input":{"$ref":"#/components/schemas/QuoteInput"},"output":{"$ref":"#/components/schemas/QuoteOutput"}},"required":["quote_id","expires_at","stale","trade_type","price_impact","input","output"],"type":"object"},"SwapQuoteRequest":{"example":{"amount":"100.0","destination":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"recipient":"0x1234...abcd","sender":"0x1234...abcd","slippage_bps":50,"source":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"trade_type":"EXACT_OUTPUT"},"properties":{"source":{"$ref":"#/components/schemas/CurrencyBase"},"destination":{"$ref":"#/components/schemas/CurrencyBase"},"trade_type":{"$ref":"#/components/schemas/TradeType","example":"EXACT_OUTPUT"},"amount":{"example":"100.0","type":"string"},"sender":{"example":"0x1234...abcd","type":["string","null"]},"recipient":{"example":"0x1234...abcd","type":["string","null"]},"slippage_bps":{"example":50,"type":["integer","null"]}},"required":["source","destination","trade_type","amount"],"type":"object"},"SwapQuoteResponse":{"example":{"issues":{"price_impact_warning":{"impact":0.07,"threshold":0.05}},"quote":{"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"trade_type":"EXACT_OUTPUT"},"result_type":"OK"},"properties":{"result_type":{"$ref":"#/components/schemas/QuoteResultType","example":"OK"},"issues":{"anyOf":[{"$ref":"#/components/schemas/QuoteIssues"},{"type":"null"}]},"quote":{"anyOf":[{"$ref":"#/components/schemas/SwapQuote"},{"type":"null"}]}},"required":["result_type"],"type":"object"},"SwapSource":{"example":{"currency":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","chain_id":30000000000001},"sender_address":"0x1234...abcd","slippage_bps":50},"properties":{"currency":{"$ref":"#/components/schemas/CurrencyBase"},"sender_address":{"example":"0x1234...abcd","type":["string","null"]},"slippage_bps":{"example":50,"type":["integer","null"]}},"required":["currency"],"type":"object"},"SwiftCategory":{"description":"Relationship category for SWIFT external accounts","enum":["client","parent_company","subsidiary","supplier"],"type":"string"},"TOSStatus":{"description":"Whether the customer has accepted the Terms of Service","enum":["pending","approved"],"type":"string"},"TradeType":{"description":"Whether the source or destination amount is fixed.","enum":["EXACT_INPUT","EXACT_OUTPUT"],"type":"string"},"UpdateAPIKeyRequest":{"properties":{"label":{"maxLength":100,"type":"string"}},"required":["label"],"type":"object"},"UpdateWebhookRequest":{"example":{"active":true,"subscription_events":["ORDER_CREATED","ORDER_COMPLETED"],"url":"https://example.com/webhook"},"properties":{"url":{"example":"https://example.com/webhook","type":["string","null"]},"subscription_events":{"example":["ORDER_CREATED","ORDER_COMPLETED"],"items":{"type":"string"},"type":"array"},"active":{"example":true,"type":["boolean","null"]}},"type":"object"},"Wallet":{"example":{"address":"0x1234...abcd","chain_ids":[1,8453,137],"chain_type":"EVM"},"properties":{"address":{"example":"0x1234...abcd","type":"string"},"chain_type":{"$ref":"#/components/schemas/ChainType","example":"EVM"},"chain_ids":{"example":[1,8453,137],"items":{"$ref":"#/components/schemas/ChainID"},"type":"array"}},"required":["address","chain_type"],"type":"object"},"WebhookEventPayload":{"example":{"event":"ORDER_COMPLETED","order":{"created_at":"2023-01-01T00:00:00Z","fulfillment":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"asset":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"},"custom_fee_bps":50,"fiat_unit":"USD","rate_usd":"1.00","recipient":"0x1234...abcd","swap":{"slippage_bps":50,"trade_type":"EXACT_INPUT"}},"hosted_url":"https://pay.coinvoyage.io/pay/cuidjkhg3e289y74u5t6v","id":"cuidjkhg3e289y74u5t6v","metadata":{"items":[{"currency":"USD","description":"High-quality widget with extra features","image":"https://example.com/images/widget.png","name":"Premium Widget","quantity":2,"unit_price":49.99}],"refund":{"additional_info":"Item was never shipped","currency":"USD","name":"Order Cancellation","reason":"Customer requested refund","refund_amount":99.98}},"mode":"SALE","organization_id":"org_123","payment":{"destination_tx_hash":"0x5678...efgh","estimated_duration_seconds":120,"expires_at":"2023-01-01T00:00:00Z","fee_tx_hash":"0xfee1...fee2","funding":{"received_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"remaining_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"required_amount":{"raw":"100000000","ui":"100.0","value_usd":100},"transactions":[{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"tx_hash":"0x1234...abcd"}]},"input":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"balance":{"raw":"100000000","ui":"100.0","value_usd":100},"breakdown":{"base":{"raw":"100000000","ui":"100.0","value_usd":100},"fees":{"custom_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"protocol_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"relayer_fee":{"raw":"100000000","ui":"100.0","value_usd":100},"total_fee":{"raw":"100000000","ui":"100.0","value_usd":100}},"gas":{"raw":"100000000","ui":"100.0","value_usd":100},"total":{"raw":"100000000","ui":"100.0","value_usd":100}},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"output":{"amount":{"raw":"100000000","ui":"100.0","value_usd":100},"amount_out_minimum":{"raw":"100000000","ui":"100.0","value_usd":100},"currency":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","chain_id":1,"decimals":6,"id":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48-1","name":"USD Coin","price_usd":1,"symbol":"USDC"}},"payment_rail":"CRYPTO","recipient":"0x1234...abcd","refund":{"address":"0x1234...abcd","reason":"execution failed: provider error","tx_hash":"0x9abc...ijkl"},"source_tx_hash":"0x1234...abcd","steps":[{"action":"swap","kind":"deposit","rail":"CRYPTO"}]},"settings":{"card_payments":true,"hide_footer":true},"status":"PENDING","updated_at":"2023-01-01T00:00:00Z"}},"properties":{"event":{"example":"ORDER_COMPLETED","type":"string"},"delivered_at":{"format":"date-time","type":"string"},"order":{"$ref":"#/components/schemas/OrderResponse"}},"required":["event","delivered_at","order"],"type":"object"},"WebhookResponse":{"example":{"active":true,"id":"cuidjkhg3e289y74u5t6v","subscription_events":["ORDER_CREATED","ORDER_COMPLETED"],"url":"https://example.com/webhook","webhook_secret":"whsec_xxxxx"},"properties":{"id":{"example":"cuidjkhg3e289y74u5t6v","type":"string"},"url":{"example":"https://example.com/webhook","type":"string"},"webhook_secret":{"example":"whsec_xxxxx","type":"string"},"subscription_events":{"example":["ORDER_CREATED","ORDER_COMPLETED"],"items":{"type":"string"},"type":"array"},"active":{"example":true,"type":"boolean"}},"required":["id","url","active"],"type":"object"}},"securitySchemes":{"APIKeyHeader":{"in":"header","name":"X-API-KEY","type":"apiKey"},"Authorization":{"description":"HMAC-SHA256 signature. See the Authorization-Signature header parameter on signed operations.","in":"header","name":"Authorization","type":"apiKey"}}}}