{"openapi":"3.1.0","paths":{"/v1/account_holders":{"get":{"description":"Lists account holders for the merchant with cursor-based pagination.","operationId":"AccountHoldersController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of account holders","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAccountHoldersResponseDto"}}}}},"summary":"List account holders","tags":["Account Holders"]},"post":{"description":"Creates a new account holder and starts asynchronous processing.","operationId":"AccountHoldersController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Account holder parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountHolderBodyDto"}}}},"responses":{"200":{"description":"Account holder created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountHolderResourceDto"}}}}},"summary":"Create account holder","tags":["Account Holders"]}},"/v1/account_holders/{id}":{"get":{"description":"Retrieves an account holder by ID.","operationId":"AccountHoldersController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account holder.","schema":{"pattern":"^[0-9a-fA-F]{24}$","example":"68e0a1b2c3d4e5f60718293a","type":"string"}}],"responses":{"200":{"description":"The account holder resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountHolderResourceDto"}}}}},"summary":"Retrieve account holder","tags":["Account Holders"]},"post":{"description":"Replaces the beneficiary details of an existing account holder.","operationId":"AccountHoldersController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account holder.","schema":{"pattern":"^[0-9a-fA-F]{24}$","example":"68e0a1b2c3d4e5f60718293a","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"New beneficiary details for the account holder","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountHolderBodyDto"}}}},"responses":{"200":{"description":"The updated account holder resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountHolderResourceDto"}}}}},"summary":"Update account holder","tags":["Account Holders"]}},"/v1/account_programs":{"get":{"description":"Lists account programs for the merchant with cursor-based pagination.","operationId":"AccountProgramsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of account programs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAccountProgramsResponseDto"}}}}},"summary":"List account programs","tags":["Account Programs"]}},"/v1/account_programs/{id}/balance":{"get":{"description":"Returns the aggregated available balance of all accounts under the account program.","operationId":"AccountProgramsController_retrieveBalance","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account program.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440002","type":"string"}},{"name":"as_of","required":false,"in":"query","description":"ISO 8601 UTC timestamp to retrieve balance at. Must be at least 5 minutes in the past.","schema":{"format":"date-time","example":"2026-01-15T10:40:00Z","type":"string"}}],"responses":{"200":{"description":"Account program balance snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProgramBalanceResourceDto"}}}}},"summary":"Retrieve account program balance","tags":["Account Programs"]}},"/v1/account_programs/{id}":{"get":{"description":"Retrieves an account program by ID.","operationId":"AccountProgramsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account program.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440002","type":"string"}}],"responses":{"200":{"description":"The account program resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProgramResourceDto"}}}}},"summary":"Retrieve account program","tags":["Account Programs"]}},"/v1/accounts":{"get":{"description":"Returns a paginated list of accounts.","operationId":"AccountsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"account_number","required":false,"in":"query","description":"Filter by exact fiat account number.","schema":{"minLength":1,"type":"string"}},{"name":"account_holder_name","required":false,"in":"query","description":"Filter by account holder name (case-insensitive phrase match).","schema":{"minLength":1,"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by account status.","schema":{"type":"string","enum":["pending","active","frozen"]}},{"name":"account_program_id","required":true,"in":"query","description":"ID of the account program to list accounts for.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440002","type":"string"}}],"responses":{"200":{"description":"List of accounts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAccountsResponseDto"}}}}},"summary":"List accounts","tags":["Accounts"]},"post":{"description":"Creates a new account.","operationId":"AccountsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Account parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountBodyDto"}}}},"responses":{"200":{"description":"Account created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResourceDto"}}}}},"summary":"Create account","tags":["Accounts"]}},"/v1/accounts/{id}":{"get":{"description":"Retrieves an account by ID.","operationId":"AccountsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","type":"string"}}],"responses":{"200":{"description":"The account resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResourceDto"}}}}},"summary":"Retrieve account","tags":["Accounts"]}},"/v1/accounts/{id}/balance":{"get":{"description":"Retrieves the available balance for an account.","operationId":"AccountsController_balance","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","type":"string"}},{"name":"as_of","required":false,"in":"query","description":"ISO 8601 UTC timestamp to retrieve balance at. Must be at least 5 minutes in the past.","schema":{"format":"date-time","example":"2026-01-15T10:40:00Z","type":"string"}}],"responses":{"200":{"description":"The account balance resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountBalanceResourceDto"}}}}},"summary":"Retrieve account balance","tags":["Accounts"]}},"/v1/accounts/{id}/freeze":{"post":{"description":"Freezes an account","operationId":"AccountsController_freeze","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Account frozen successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResourceDto"}}}}},"summary":"Freeze account","tags":["Accounts"]}},"/v1/accounts/{id}/close":{"post":{"description":"Closes an account","operationId":"AccountsController_close","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Close account parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloseAccountBodyDto"}}}},"responses":{"200":{"description":"Account closed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResourceDto"}}}}},"summary":"Close account","tags":["Accounts"]}},"/v1/accounts/{id}/unfreeze":{"post":{"description":"Unfreezes an account","operationId":"AccountsController_unfreeze","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the account.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Account unfrozen successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResourceDto"}}}}},"summary":"Unfreeze account","tags":["Accounts"]}},"/v1/api_key":{"get":{"description":"Returns the API key resource for the key authenticating this request. Useful for verifying which key is in use and discovering its current authorization context without inferring it from rejected requests.","operationId":"ApiKeyController_introspect","parameters":[],"responses":{"200":{"description":"The authenticated API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResourceDto"}}}}},"summary":"Introspect current API key","tags":["API Key"]}},"/v1/api_versions":{"get":{"description":"Returns the catalogue of publicly available Augustus Banking API versions, ordered oldest to newest. New accounts and unpinned merchants resolve to the entry with `is_latest: true`. Public: no authentication required.","operationId":"ApiVersionsController_list","parameters":[],"responses":{"200":{"description":"API version catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListApiVersionsResponseDto"}}}}},"summary":"List API versions","tags":["API Versions"]}},"/v1/conversions":{"get":{"description":"Returns a paginated list of conversions.","operationId":"ConversionsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by conversion status.","schema":{"type":"string","enum":["pending","completed","failed"]}},{"name":"source_currency","required":false,"in":"query","description":"Filter by source currency code.","schema":{"example":"USD","type":"string","enum":["EUR","GBP","USD","USDC"]}},{"name":"target_currency","required":false,"in":"query","description":"Filter by target currency code.","schema":{"example":"USDC","type":"string","enum":["EUR","GBP","USD","USDC"]}}],"responses":{"200":{"description":"List of conversions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConversionsResponseDto"}}}}},"summary":"List conversions","tags":["Conversions"]},"post":{"description":"Starts a conversion.","operationId":"ConversionsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Conversion parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConversionBodyDto"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionResourceDto"}}}}},"summary":"Create conversion","tags":["Conversions"]}},"/v1/conversions/{id}":{"get":{"description":"Retrieves a conversion by ID.","operationId":"ConversionsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the conversion.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440006","type":"string"}}],"responses":{"200":{"description":"The conversion resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionResourceDto"}}}}},"summary":"Retrieve conversion","tags":["Conversions"]}},"/v1/counterparties":{"post":{"description":"Creates a counterparty owned by the merchant.","operationId":"CounterpartiesController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Counterparty parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCounterpartyBodyDto"}}}},"responses":{"200":{"description":"The created counterparty","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CounterpartyResourceDto"}}}}},"summary":"Create counterparty","tags":["Counterparties"]},"get":{"description":"Lists counterparties owned by the merchant with cursor-based pagination. Optionally filter by status.","operationId":"CounterpartiesController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by counterparty status. All statuses are included when omitted.","schema":{"type":"string","enum":["pending","active","rejected"]}}],"responses":{"200":{"description":"Paginated list of counterparties","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCounterpartiesResponseDto"}}}}},"summary":"List counterparties","tags":["Counterparties"]}},"/v1/counterparties/{id}":{"post":{"description":"Updates the mutable details of a counterparty owned by the merchant.","operationId":"CounterpartiesController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the counterparty.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Counterparty fields to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCounterpartyBodyDto"}}}},"responses":{"200":{"description":"The updated counterparty","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CounterpartyResourceDto"}}}}},"summary":"Update counterparty","tags":["Counterparties"]},"get":{"description":"Retrieves a counterparty owned by the merchant.","operationId":"CounterpartiesController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the counterparty.","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The counterparty resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CounterpartyResourceDto"}}}}},"summary":"Retrieve counterparty","tags":["Counterparties"]}},"/v1/counterparties/{id}/activate":{"post":{"description":"Activates a pending counterparty owned by the merchant. A fiat counterparty becomes active immediately; a crypto counterparty starts verification and stays pending until it concludes.","operationId":"CounterpartiesController_activate","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the counterparty.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The counterparty","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CounterpartyResourceDto"}}}}},"summary":"Activate counterparty","tags":["Counterparties"]}},"/v1/deposits/{id}":{"get":{"description":"Retrieves a deposit by ID.","operationId":"DepositsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the deposit.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440004","type":"string"}}],"responses":{"200":{"description":"The deposit resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositResourceDto"}}}}},"summary":"Retrieve deposit","tags":["Deposits"]}},"/v1/deposits":{"get":{"description":"Lists deposits for the merchant with cursor-based pagination.","operationId":"DepositsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"settled_at.gte","required":false,"in":"query","description":"Include deposits whose settled_at is greater than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-01-01T00:00:00Z","type":"string"}},{"name":"settled_at.lte","required":false,"in":"query","description":"Include deposits whose settled_at is less than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-02-01T00:00:00Z","type":"string"}},{"name":"rail","required":false,"in":"query","description":"Filter by deposit rail.","schema":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy"]}},{"name":"currencies","required":false,"in":"query","description":"Filter to these currency codes. Use a separate `currencies` query parameter for each value (e.g. `?currencies=EUR&currencies=USD`).","schema":{"minItems":1,"type":"array","items":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"}}}],"responses":{"200":{"description":"Paginated list of deposits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDepositsResponseDto"}}}}},"summary":"List deposits","tags":["Deposits"]}},"/v1/events/{id}":{"get":{"description":"Retrieves a webhook event by ID.","operationId":"EventsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the event.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440008","type":"string"}}],"responses":{"200":{"description":"The event resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventResourceDto"}}}}},"summary":"Retrieve event","tags":["Events"]}},"/v1/events":{"get":{"description":"Lists webhook events for the merchant with cursor-based pagination. Events are retained for 30 days.","operationId":"EventsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"event_type","required":false,"in":"query","description":"Filter by event type.","schema":{"type":"string","enum":["payout.initiated","payout.submitted","payout.sent","payout.failed","payout.returned","return.initiated","return.submitted","return.sent","return.failed","return.returned","deposit.settled","conversion.created","conversion.completed","conversion.failed","account_holder.active","account_holder.closed","counterparty.pending","counterparty.active","counterparty.rejected","counterparty.blocked","counterparty.unblocked","counterparty.updated","payout_tracking_event.created","ping.test"]}},{"name":"created_at.gte","required":false,"in":"query","description":"Include events whose created_at is greater than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-01-01T00:00:00Z","type":"string"}},{"name":"created_at.lte","required":false,"in":"query","description":"Include events whose created_at is less than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-02-01T00:00:00Z","type":"string"}}],"responses":{"200":{"description":"Paginated list of events","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEventsResponseDto"}}}}},"summary":"List events","tags":["Events"]}},"/v1/payout_tracking_events":{"get":{"description":"Returns a paginated list of payout tracking events, newest first.","operationId":"PayoutTrackingEventsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"payout_id","required":false,"in":"query","description":"Filter tracking events belonging to this payout.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440003","type":"string"}},{"name":"milestone","required":false,"in":"query","description":"Filter by milestone.","schema":{"example":"credited","type":"string","enum":["initiated","submitted","sent","failed","returned","accepted","settled","forwarded","credited","rejected","returning","visibility_lost","other"]}},{"name":"is_terminal","required":false,"in":"query","description":"Filter by whether Augustus considers delivery finished.","schema":{"type":"boolean"}},{"name":"created_at.gte","required":false,"in":"query","description":"Include tracking events whose created_at is greater than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-01-01T00:00:00Z","type":"string"}},{"name":"created_at.lte","required":false,"in":"query","description":"Include tracking events whose created_at is less than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-02-01T00:00:00Z","type":"string"}}],"responses":{"200":{"description":"List of payout tracking events","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPayoutTrackingEventsResponseDto"}}}}},"summary":"List payout tracking events","tags":["Payout Tracking Events"]}},"/v1/payout_tracking_events/{id}":{"get":{"description":"Retrieves a payout tracking event by ID.","operationId":"PayoutTrackingEventsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the tracking event.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440008","type":"string"}}],"responses":{"200":{"description":"The payout tracking event resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutTrackingEventResourceDto"}}}}},"summary":"Retrieve payout tracking event","tags":["Payout Tracking Events"]}},"/v1/payouts":{"get":{"description":"Lists payouts for the merchant with cursor-based pagination.","operationId":"PayoutsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by payout status.","schema":{"example":"sent","type":"string","enum":["initiated","submitted","sent","failed","returned"]}},{"name":"created_at.gte","required":false,"in":"query","description":"Include payouts whose created_at is greater than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-01-01T00:00:00Z","type":"string"}},{"name":"created_at.lte","required":false,"in":"query","description":"Include payouts whose created_at is less than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-02-01T00:00:00Z","type":"string"}},{"name":"currencies","required":false,"in":"query","description":"Filter to these currency codes. Use a separate `currencies` query parameter for each value (e.g. `?currencies=EUR&currencies=USD`).","schema":{"minItems":1,"type":"array","items":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"}}},{"name":"rail","required":false,"in":"query","description":"Filter by payout rail.","schema":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy"]}}],"responses":{"200":{"description":"Paginated list of payouts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPayoutsResponseDto"}}}}},"summary":"List payouts","tags":["Payouts"]},"post":{"description":"Creates a new payout.","operationId":"PayoutsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Payout creation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePayoutBodyDto"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutResourceDto"}}}}},"summary":"Create payout","tags":["Payouts"]}},"/v1/payouts/{id}":{"get":{"description":"Retrieves a payout by ID.","operationId":"PayoutsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the payout.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440003","type":"string"}}],"responses":{"200":{"description":"The payout resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutResourceDto"}}}}},"summary":"Retrieve payout","tags":["Payouts"]}},"/v1/quotes/indicative":{"get":{"description":"Returns an indicative quote for a currency pair. Not persisted or holdable.","operationId":"QuotesController_getIndicativeQuote","parameters":[{"name":"source_currency","required":true,"in":"query","description":"Currency code (ISO 4217 or crypto).","schema":{"example":"USD","type":"string","enum":["EUR","GBP","USD","USDC","BTC","ETH","SOL","POL"]}},{"name":"target_currency","required":true,"in":"query","description":"Currency code (ISO 4217 or crypto).","schema":{"example":"USDC","type":"string","enum":["EUR","GBP","USD","USDC","BTC","ETH","SOL","POL"]}},{"name":"source_amount","required":false,"in":"query","description":"Amount as a string decimal (e.g. \"100.50\").","schema":{"pattern":"^\\d+(\\.\\d+)?$","example":"100.50","type":"string"}}],"responses":{"200":{"description":"The indicative quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIndicativeQuoteResponseDto"}}}}},"summary":"Get indicative quote","tags":["Quotes"]}},"/v1/returns":{"get":{"description":"Lists deposit returns for the merchant with cursor-based pagination.","operationId":"ReturnsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by return status.","schema":{"example":"sent","type":"string","enum":["initiated","submitted","sent","failed","returned"]}},{"name":"deposit_id","required":false,"in":"query","description":"Filter returns belonging to this deposit.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440004","type":"string"}},{"name":"created_at.gte","required":false,"in":"query","description":"Include returns whose created_at is greater than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-01-01T00:00:00Z","type":"string"}},{"name":"created_at.lte","required":false,"in":"query","description":"Include returns whose created_at is less than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-02-01T00:00:00Z","type":"string"}}],"responses":{"200":{"description":"Paginated list of returns","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListReturnsResponseDto"}}}}},"summary":"List returns","tags":["Returns"]},"post":{"description":"Initiates a return of funds from a deposit to the source.","operationId":"ReturnsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Deposit to return and optional payment rail.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReturnBodyDto"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnResourceDto"}}}}},"summary":"Create return","tags":["Returns"]}},"/v1/returns/{id}":{"get":{"description":"Retrieves a return by ID.","operationId":"ReturnsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the return.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440005","type":"string"}}],"responses":{"200":{"description":"The return resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnResourceDto"}}}}},"summary":"Retrieve return","tags":["Returns"]}},"/v1/scopes":{"get":{"description":"Returns the catalogue of scopes available to API keys. The list is filtered by the `Api-Version` request header and defaults to the latest version when the header is omitted. Public: no authentication required.","operationId":"ScopesController_list","parameters":[],"responses":{"200":{"description":"Scope catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListScopesResponseDto"}}}}},"summary":"List scopes","tags":["Scopes"]}},"/v1/simulations/deposits":{"post":{"description":"Initiates an incoming deposit through the sandbox provider pipeline. This endpoint is unavailable in live production.","operationId":"DepositSimulationsController_createDeposit","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Incoming deposit simulation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepositSimulationBodyDto"}}}},"responses":{"200":{"description":"The deposit simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositSimulationResourceDto"}}}}},"summary":"Simulate an incoming deposit","tags":["Simulations"]}},"/v1/simulations/payouts/{id}/send":{"post":{"description":"Submits a successful send event for an existing payout through the sandbox provider pipeline. This endpoint is unavailable in live production.","operationId":"PayoutSimulationsController_send","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the payout whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The payout send simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutSimulationResourceDto"}}}}},"summary":"Send a payout","tags":["Simulations"]}},"/v1/simulations/payouts/{id}/reject":{"post":{"description":"Submits a network rejection for an existing payout through the sandbox provider pipeline. This endpoint is unavailable in live production.","operationId":"PayoutSimulationsController_reject","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the payout whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Payout rejection simulation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectPayoutSimulationBodyDto"}}}},"responses":{"200":{"description":"The payout rejection simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutSimulationResourceDto"}}}}},"summary":"Reject a payout","tags":["Simulations"]}},"/v1/simulations/payouts/{id}/return":{"post":{"description":"Submits an inbound return for a settled payout through the sandbox provider pipeline. The return is linked to the payout and the payout is exposed as returned. This endpoint is unavailable in live production.","operationId":"PayoutSimulationsController_return","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the payout whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Payout return simulation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnPayoutSimulationBodyDto"}}}},"responses":{"200":{"description":"The payout return simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutSimulationResourceDto"}}}}},"summary":"Return a settled payout","tags":["Simulations"]}},"/v1/simulations/returns/{id}/send":{"post":{"description":"Submits a successful send event for an existing return through the sandbox provider pipeline. This endpoint is unavailable in live production.","operationId":"ReturnSimulationsController_send","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the return whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The return send simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnSimulationResourceDto"}}}}},"summary":"Send a return","tags":["Simulations"]}},"/v1/simulations/returns/{id}/reject":{"post":{"description":"Submits a network rejection for an existing return through the sandbox provider pipeline. This endpoint is unavailable in live production.","operationId":"ReturnSimulationsController_reject","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the return whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Return rejection simulation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectReturnSimulationBodyDto"}}}},"responses":{"200":{"description":"The return rejection simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnSimulationResourceDto"}}}}},"summary":"Reject a return","tags":["Simulations"]}},"/v1/simulations/returns/{id}/return":{"post":{"description":"Submits an inbound return for a sent return through the sandbox provider pipeline. The funds are credited back to the original deposit and the return moves to `returned`. This endpoint is unavailable in live production.","operationId":"ReturnSimulationsController_return","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the return whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Return of return simulation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnOfReturnSimulationBodyDto"}}}},"responses":{"200":{"description":"The return of return simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnSimulationResourceDto"}}}}},"summary":"Return a sent return","tags":["Simulations"]}},"/v1/simulations/account_programs":{"post":{"description":"Creates a Mock-US USD account program owned by the caller merchant. This endpoint is unavailable in live production.","operationId":"AccountProgramSimulationsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Account program creation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountProgramSimulationBodyDto"}}}},"responses":{"200":{"description":"The account program creation simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProgramSimulationResourceDto"}}}}},"summary":"Create an account program","tags":["Simulations"]}},"/v1/simulations/account_programs/{id}/freeze":{"post":{"description":"Freezes an existing account program and the accounts under it. This endpoint is unavailable in live production.","operationId":"AccountProgramSimulationsController_freeze","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account program whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The account program freeze simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProgramSimulationResourceDto"}}}}},"summary":"Freeze an account program","tags":["Simulations"]}},"/v1/simulations/account_programs/{id}/unfreeze":{"post":{"description":"Unfreezes an existing account program and the accounts under it. This endpoint is unavailable in live production.","operationId":"AccountProgramSimulationsController_unfreeze","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account program whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The account program unfreeze simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProgramSimulationResourceDto"}}}}},"summary":"Unfreeze an account program","tags":["Simulations"]}},"/v1/simulations/account_programs/{id}/close":{"post":{"description":"Closes an account program. All child accounts must be drained via the drain endpoint first. This endpoint is unavailable in live production.","operationId":"AccountProgramSimulationsController_close","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account program whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Account program close parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloseAccountProgramSimulationBodyDto"}}}},"responses":{"200":{"description":"The account program close simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProgramSimulationResourceDto"}}}}},"summary":"Close an account program","tags":["Simulations"]}},"/v1/simulations/account_programs/{id}/drain":{"post":{"description":"Creates outbound payouts that drain the residual balance of every frozen account under the program to the provided destination. The program must be frozen. Every returned `payout_ids[i]` must be settled via `POST /v1/simulations/payouts/{id}/send` for the program balance to reach zero. This endpoint is unavailable in live production.","operationId":"AccountProgramSimulationsController_drain","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account program whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Account program drain parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainAccountProgramSimulationBodyDto"}}}},"responses":{"200":{"description":"The account program drain simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProgramDrainSimulationResourceDto"}}}}},"summary":"Drain an account program","tags":["Simulations"]}},"/v1/simulations/accounts":{"post":{"description":"Creates a Mock-US USD account owned by the caller merchant. This endpoint is unavailable in live production.","operationId":"AccountSimulationsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Operating account creation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountSimulationBodyDto"}}}},"responses":{"200":{"description":"The account creation simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountSimulationResourceDto"}}}}},"summary":"Create an account","tags":["Simulations"]}},"/v1/simulations/accounts/{id}/freeze":{"post":{"description":"Freezes an existing operating (DDA) account. This endpoint is unavailable in live production.","operationId":"AccountSimulationsController_freeze","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The account freeze simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountSimulationResourceDto"}}}}},"summary":"Freeze an operating account","tags":["Simulations"]}},"/v1/simulations/accounts/{id}/unfreeze":{"post":{"description":"Unfreezes an existing operating (DDA) account. This endpoint is unavailable in live production.","operationId":"AccountSimulationsController_unfreeze","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The account unfreeze simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountSimulationResourceDto"}}}}},"summary":"Unfreeze an operating account","tags":["Simulations"]}},"/v1/simulations/accounts/{id}/close":{"post":{"description":"Closes an operating (DDA) account. The account must be drained via the drain endpoint first. This endpoint is unavailable in live production.","operationId":"AccountSimulationsController_close","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Account close parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloseAccountSimulationBodyDto"}}}},"responses":{"200":{"description":"The account close simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountSimulationResourceDto"}}}}},"summary":"Close an operating account","tags":["Simulations"]}},"/v1/simulations/accounts/{id}/drain":{"post":{"description":"Creates an outbound payout that drains the residual balance of a frozen operating (DDA) account to the provided destination. The returned `payout_id` must be settled via `POST /v1/simulations/payouts/{id}/send` for the account balance to reach zero. This endpoint is unavailable in live production.","operationId":"AccountSimulationsController_drain","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the account whose lifecycle is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Account drain parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainAccountSimulationBodyDto"}}}},"responses":{"200":{"description":"The account drain simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountDrainSimulationResourceDto"}}}}},"summary":"Drain an operating account","tags":["Simulations"]}},"/v1/simulations/conversions/{id}/fail":{"post":{"description":"Fails a controlled (sandbox) conversion paused at its first step, before any funds move. This endpoint is unavailable in live production.","operationId":"ConversionSimulationsController_fail","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the controlled conversion awaiting a simulation decision.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440006","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The conversion simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionSimulationResourceDto"}}}}},"summary":"Fail a controlled conversion","tags":["Simulations"]}},"/v1/simulations/conversions/{id}/complete":{"post":{"description":"Releases a controlled (sandbox) conversion paused at its first step so it runs to completion normally. This endpoint is unavailable in live production.","operationId":"ConversionSimulationsController_complete","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the controlled conversion awaiting a simulation decision.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440006","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The conversion simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionSimulationResourceDto"}}}}},"summary":"Complete a controlled conversion","tags":["Simulations"]}},"/v1/simulations/counterparties/{id}/reject":{"post":{"description":"Submits a rejected provider decision for an existing counterparty with a pending verification attempt. This endpoint is unavailable in live production.","operationId":"CounterpartySimulationsController_reject","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the counterparty whose verification is being simulated.","schema":{"format":"uuid","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The counterparty verification simulation acknowledgement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CounterpartySimulationResourceDto"}}}}},"summary":"Reject a counterparty verification","tags":["Simulations"]}},"/v1/transactions/{id}":{"get":{"description":"Retrieves a transaction by ID.","operationId":"TransactionsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the transaction.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-44665544000d","type":"string"}}],"responses":{"200":{"description":"The transaction resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionResourceDto"}}}}},"summary":"Retrieve transaction","tags":["Transactions"]}},"/v1/transactions":{"get":{"description":"Lists transactions for an account with cursor-based pagination.","operationId":"TransactionsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"account_id","required":true,"in":"query","description":"Account to list transactions for.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","type":"string"}},{"name":"booked_at.gte","required":false,"in":"query","description":"Include transactions whose booked_at is greater than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-01-01T00:00:00Z","type":"string"}},{"name":"booked_at.lte","required":false,"in":"query","description":"Include transactions whose booked_at is less than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-02-01T00:00:00Z","type":"string"}}],"responses":{"200":{"description":"Paginated list of transactions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTransactionsResponseDto"}}}}},"summary":"List transactions","tags":["Transactions"]}},"/v1/webhook_deliveries/{id}":{"get":{"description":"Retrieves a webhook delivery by ID.","operationId":"WebhookDeliveriesController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the webhook delivery.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-44665544000a","type":"string"}}],"responses":{"200":{"description":"The webhook delivery resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryResourceDto"}}}}},"summary":"Retrieve webhook delivery","tags":["Webhook Deliveries"]}},"/v1/webhook_deliveries":{"get":{"description":"Lists webhook deliveries for the merchant with cursor-based pagination. Deliveries are retained for 30 days.","operationId":"WebhookDeliveriesController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}},{"name":"event_id","required":false,"in":"query","description":"Filter by event ID.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440008","type":"string"}},{"name":"subscription_id","required":false,"in":"query","description":"Filter by webhook subscription ID.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440009","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by delivery status.","schema":{"type":"string","enum":["pending","delivered","failed","processing","ignored"]}},{"name":"created_at.gte","required":false,"in":"query","description":"Include deliveries whose created_at is greater than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-01-01T00:00:00Z","type":"string"}},{"name":"created_at.lte","required":false,"in":"query","description":"Include deliveries whose created_at is less than or equal to this ISO 8601 timestamp.","schema":{"format":"date-time","example":"2026-02-01T00:00:00Z","type":"string"}}],"responses":{"200":{"description":"Paginated list of webhook deliveries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWebhookDeliveriesResponseDto"}}}}},"summary":"List webhook deliveries","tags":["Webhook Deliveries"]}},"/v1/webhook_deliveries/{id}/redeliver":{"post":{"description":"Triggers a fresh delivery attempt of the event to the same webhook subscription.","operationId":"WebhookDeliveriesController_redeliver","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the webhook delivery.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-44665544000a","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The new webhook delivery resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryResourceDto"}}}}},"summary":"Redeliver webhook","tags":["Webhook Deliveries"]}},"/v1/webhook_subscriptions":{"post":{"description":"Creates a new webhook subscription.","operationId":"WebhookSubscriptionsController_create","parameters":[{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Webhook subscription creation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookSubscriptionBodyDto"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResourceDto"}}}}},"summary":"Create webhook subscription","tags":["Webhook Subscriptions"]},"get":{"description":"Lists webhook subscriptions for the merchant with cursor-based pagination.","operationId":"WebhookSubscriptionsController_list","parameters":[{"name":"limit","required":false,"in":"query","description":"Number of results per page (1-100). Defaults to 10.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Opaque cursor from a previous next_cursor.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of webhook subscriptions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWebhookSubscriptionsResponseDto"}}}}},"summary":"List webhook subscriptions","tags":["Webhook Subscriptions"]}},"/v1/webhook_subscriptions/{id}":{"get":{"description":"Retrieves a webhook subscription by ID.","operationId":"WebhookSubscriptionsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the webhook subscription.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440009","type":"string"}}],"responses":{"200":{"description":"The webhook subscription resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResourceDto"}}}}},"summary":"Retrieve webhook subscription","tags":["Webhook Subscriptions"]},"post":{"description":"Updates the URL and/or subscribed events.","operationId":"WebhookSubscriptionsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the webhook subscription.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440009","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Fields to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookSubscriptionBodyDto"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResourceDto"}}}}},"summary":"Update webhook subscription","tags":["Webhook Subscriptions"]},"delete":{"description":"Permanently deletes a webhook subscription. This cannot be undone.","operationId":"WebhookSubscriptionsController_delete","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the webhook subscription.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440009","type":"string"}}],"responses":{"200":{"description":"The deleted webhook subscription resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResourceDto"}}}}},"summary":"Delete webhook subscription","tags":["Webhook Subscriptions"]}},"/v1/webhook_subscriptions/{id}/send_test_event":{"post":{"description":"Dispatches a signed `ping.test` event to this subscription's URL through the same pipeline as real events. Useful for verifying your receiver's reachability and signature verification in any environment without creating a real business event. Test-event failures do not affect the subscription's health counters or trigger failure-notification emails.","operationId":"WebhookSubscriptionsController_sendTestEvent","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier of the webhook subscription.","schema":{"format":"uuid","example":"550e8400-e29b-41d4-a716-446655440009","type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Idempotency key for safe retries. Reusing a key with an identical request body returns the cached response. Reusing a key with a different body returns 409.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The newly created webhook event. Poll its delivery via `GET /v1/webhook_deliveries?event_id={id}` for receiver status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventResourceDto"}}}}},"summary":"Send test event","tags":["Webhook Subscriptions"]}}},"info":{"title":"Augustus Banking API","description":"Augustus Banking API","version":"0.1.0","contact":{"name":"Augustus","url":"https://docs.augustus.com","email":"developer@augustus.com"}},"tags":[],"servers":[{"url":"https://api.augustus.com","description":"Production"},{"url":"https://api.sandbox.augustus.com","description":"Sandbox"}],"components":{"securitySchemes":{"BearerAuth":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Bearer token for authentication with Augustus Banking API"}},"schemas":{"ListPayoutsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the payout.","example":"550e8400-e29b-41d4-a716-446655440003"},"type":{"type":"string","description":"Resource type discriminator.","enum":["payout"]},"status":{"type":"string","enum":["initiated","submitted","sent","failed","returned"],"description":"Current status of the payout.","example":"sent"},"account_id":{"type":"string","format":"uuid","description":"ID of the account that was debited.","example":"550e8400-e29b-41d4-a716-446655440001"},"amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"counterparty_id":{"type":"string","format":"uuid","description":"ID of the counterparty that receives the money.","example":"550e8400-e29b-41d4-a716-446655440000"},"unstructured_remittance_information":{"type":"string","description":"Unstructured remittance information attached to the transfer. Not all rails support this field.","example":"INV-2026-0042","nullable":true},"purpose_code":{"anyOf":[{"type":"string","enum":["BKDF","BKFE","BKFM","BKIP","BKPP","CBLK","CDCB","CDCD","CDCS","CDDP","CDOC","CDQC","ETUP","FCOL","MTUP","ACCT","CASH","COLL","CSDB","DEPT","INTC","INTP","LIMA","NETT","BFWD","CCIR","CCPC","CCPM","CCSM","CRDS","CRPR","CRSP","CRTL","EQPT","EQUS","EXPT","EXTD","FIXI","FWBC","FWCC","FWSB","FWSC","MARG","MBSB","MBSC","MGCC","MGSC","OCCC","OPBC","OPCC","OPSB","OPSC","OPTN","OTCD","REPO","RPBC","RPCC","RPSB","RPSC","RVPO","SBSC","SCIE","SCIR","SCRP","SHBC","SHCC","SHSL","SLEB","SLOA","SWBC","SWCC","SWPT","SWSB","SWSC","TBAS","TBBC","TBCC","TRCP","AGRT","AREN","BEXP","BOCE","COMC","CPYR","GDDS","GDSV","GSCB","LICF","MP2B","POPE","ROYA","SCVE","SERV","SUBS","SUPP","TRAD","CHAR","COMT","MP2P","ECPG","ECPR","ECPU","EPAY","CLPR","COMP","DBTC","GOVI","HLRP","HLST","INPC","INPR","INSC","INSU","INTE","LBRI","LIFI","LOAN","LOAR","PENO","PPTI","RELG","RINP","TRFD","FORW","FXNT","ADMG","ADVA","BCDM","BCFG","BLDM","BNET","CBFF","CBFR","CCRD","CDBL","CFEE","CGDD","CORT","COST","CPKC","DCRD","DSMT","DVPM","EDUC","FACT","FAND","FCPM","FEES","GIFT","GOVT","ICCP","IDCP","IHRP","INSM","IVPT","MCDM","MCFG","MSVC","NOWS","OCDM","OCFG","OFEE","OTHR","PADD","PTSP","RCKE","RCPT","REBT","REFU","RENT","REOD","RIMB","RPNT","RRBN","RRCT","RRTP","RVPM","SLPI","SPLT","STDY","TBAN","TBIL","TCSC","TELI","TMPG","TPRI","TPRP","TRNC","TRVC","WEBI","IPAY","IPCA","IPDO","IPEA","IPEC","IPEW","IPPS","IPRT","IPU2","IPUW","ANNI","CAFI","CFDI","CMDT","DERI","DIVD","FREX","HEDG","INVS","PRME","SAVG","SECU","SEPI","TREA","UNIT","FNET","FUTR","ANTS","CVCF","DMEQ","DNTS","HLTC","HLTI","HSPC","ICRF","LTCF","MAFC","MARF","MDCS","VIEW","CDEP","SWFP","SWPP","SWRS","SWUF","ADCS","AEMP","ALLW","ALMY","BBSC","BECH","BENE","BONU","CCHD","COMM","CSLP","GFRP","GVEA","GVEB","GVEC","GVED","GWLT","HREC","PAYR","PEFC","PENS","PRCP","RHBS","SALA","SPSP","SSBE","LBIN","LCOL","LFEE","LMEQ","LMFI","LMRK","LREB","LREV","LSFL","ESTX","FWLV","GSTX","HSTX","INTX","NITX","PTXP","RDTX","TAXS","VATX","WHLD","TAXR","B112","BR12","TLRF","TLRR","AIRB","BUSB","FERB","RLWY","TRPT","CBTV","ELEC","ENRG","GASB","NWCH","NWCM","OTLC","PHON","UBIL","WTER","BOND","CABD","CAEQ","CBCR","DBCR","DICL","EQTS","FLCR","EFTC","EFTD","MOMA","RAPI","GAMB","LOTT","AMEX","SASW","AUCO","PCOM","PDEP","PLDS","PLRF","GAFA","GAHO","CPEN","DEPD","RETL","DEBT"],"title":"ISO 20022 purpose code"},{"type":"string","enum":["CAP","GDS","SRV","CAC","FTF"],"title":"China purpose code"},{"type":"string","pattern":"^P[A-Z0-9]{4}$","title":"India purpose code"},{"type":"string","pattern":"^[A-Z0-9]{3}$","title":"United Arab Emirates purpose code"}],"description":"Purpose of the payout. Use an ISO 20022 external purpose code unless the beneficiary bank country requires a national code. Only supported on fedwire and swift payouts.","example":"SALA","nullable":true},"tracking_reference":{"type":"object","properties":{"type":{"type":"string","enum":["uetr","imad","trace_number"],"description":"Tracking reference type: UETR, IMAD, or ACH trace number."},"value":{"type":"string","minLength":1,"description":"Rail-provided tracking identifier.","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["type","value"],"additionalProperties":false,"example":{"type":"uetr","value":"550e8400-e29b-41d4-a716-446655440000"},"description":"Rail network tracking identifier with its type: UETR for SWIFT, IMAD for Fedwire, or the 15-digit trace number for ACH. Null when unavailable.","nullable":true},"failure":{"type":"object","properties":{"code":{"type":"string","enum":["account_closed","account_blocked","insufficient_funds","invalid_account_format","invalid_routing_number","invalid_instruction","invalid_amount","invalid_time","duplicate_transaction","payee_verification_failed","system_error","provider_system_error","rejected_by_correspondent_bank","blocked_by_review","unknown"],"description":"Failure code."},"message":{"type":"string","description":"Human-readable description of the failure."},"retry":{"type":"boolean","description":"Whether the payout can be retried."}},"required":["code","message","retry"],"additionalProperties":false,"description":"Failure details when status is failed, otherwise null.","example":null,"nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"initiated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the payout was initiated.","example":"2026-01-15T10:30:00Z"},"sent_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the payout was sent.","example":"2026-01-15T10:35:00Z","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto payouts, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the payout, or null when unknown.","example":"ach","nullable":true}},"required":["id","type","status","account_id","amount","currency","counterparty_id","unstructured_remittance_information","purpose_code","tracking_reference","failure","metadata","initiated_at","sent_at","tx_hash","rail"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"PayoutResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the payout.","example":"550e8400-e29b-41d4-a716-446655440003"},"type":{"type":"string","description":"Resource type discriminator.","enum":["payout"]},"status":{"type":"string","enum":["initiated","submitted","sent","failed","returned"],"description":"Current status of the payout.","example":"sent"},"account_id":{"type":"string","format":"uuid","description":"ID of the account that was debited.","example":"550e8400-e29b-41d4-a716-446655440001"},"amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"counterparty_id":{"type":"string","format":"uuid","description":"ID of the counterparty that receives the money.","example":"550e8400-e29b-41d4-a716-446655440000"},"unstructured_remittance_information":{"type":"string","description":"Unstructured remittance information attached to the transfer. Not all rails support this field.","example":"INV-2026-0042","nullable":true},"purpose_code":{"anyOf":[{"type":"string","enum":["BKDF","BKFE","BKFM","BKIP","BKPP","CBLK","CDCB","CDCD","CDCS","CDDP","CDOC","CDQC","ETUP","FCOL","MTUP","ACCT","CASH","COLL","CSDB","DEPT","INTC","INTP","LIMA","NETT","BFWD","CCIR","CCPC","CCPM","CCSM","CRDS","CRPR","CRSP","CRTL","EQPT","EQUS","EXPT","EXTD","FIXI","FWBC","FWCC","FWSB","FWSC","MARG","MBSB","MBSC","MGCC","MGSC","OCCC","OPBC","OPCC","OPSB","OPSC","OPTN","OTCD","REPO","RPBC","RPCC","RPSB","RPSC","RVPO","SBSC","SCIE","SCIR","SCRP","SHBC","SHCC","SHSL","SLEB","SLOA","SWBC","SWCC","SWPT","SWSB","SWSC","TBAS","TBBC","TBCC","TRCP","AGRT","AREN","BEXP","BOCE","COMC","CPYR","GDDS","GDSV","GSCB","LICF","MP2B","POPE","ROYA","SCVE","SERV","SUBS","SUPP","TRAD","CHAR","COMT","MP2P","ECPG","ECPR","ECPU","EPAY","CLPR","COMP","DBTC","GOVI","HLRP","HLST","INPC","INPR","INSC","INSU","INTE","LBRI","LIFI","LOAN","LOAR","PENO","PPTI","RELG","RINP","TRFD","FORW","FXNT","ADMG","ADVA","BCDM","BCFG","BLDM","BNET","CBFF","CBFR","CCRD","CDBL","CFEE","CGDD","CORT","COST","CPKC","DCRD","DSMT","DVPM","EDUC","FACT","FAND","FCPM","FEES","GIFT","GOVT","ICCP","IDCP","IHRP","INSM","IVPT","MCDM","MCFG","MSVC","NOWS","OCDM","OCFG","OFEE","OTHR","PADD","PTSP","RCKE","RCPT","REBT","REFU","RENT","REOD","RIMB","RPNT","RRBN","RRCT","RRTP","RVPM","SLPI","SPLT","STDY","TBAN","TBIL","TCSC","TELI","TMPG","TPRI","TPRP","TRNC","TRVC","WEBI","IPAY","IPCA","IPDO","IPEA","IPEC","IPEW","IPPS","IPRT","IPU2","IPUW","ANNI","CAFI","CFDI","CMDT","DERI","DIVD","FREX","HEDG","INVS","PRME","SAVG","SECU","SEPI","TREA","UNIT","FNET","FUTR","ANTS","CVCF","DMEQ","DNTS","HLTC","HLTI","HSPC","ICRF","LTCF","MAFC","MARF","MDCS","VIEW","CDEP","SWFP","SWPP","SWRS","SWUF","ADCS","AEMP","ALLW","ALMY","BBSC","BECH","BENE","BONU","CCHD","COMM","CSLP","GFRP","GVEA","GVEB","GVEC","GVED","GWLT","HREC","PAYR","PEFC","PENS","PRCP","RHBS","SALA","SPSP","SSBE","LBIN","LCOL","LFEE","LMEQ","LMFI","LMRK","LREB","LREV","LSFL","ESTX","FWLV","GSTX","HSTX","INTX","NITX","PTXP","RDTX","TAXS","VATX","WHLD","TAXR","B112","BR12","TLRF","TLRR","AIRB","BUSB","FERB","RLWY","TRPT","CBTV","ELEC","ENRG","GASB","NWCH","NWCM","OTLC","PHON","UBIL","WTER","BOND","CABD","CAEQ","CBCR","DBCR","DICL","EQTS","FLCR","EFTC","EFTD","MOMA","RAPI","GAMB","LOTT","AMEX","SASW","AUCO","PCOM","PDEP","PLDS","PLRF","GAFA","GAHO","CPEN","DEPD","RETL","DEBT"],"title":"ISO 20022 purpose code"},{"type":"string","enum":["CAP","GDS","SRV","CAC","FTF"],"title":"China purpose code"},{"type":"string","pattern":"^P[A-Z0-9]{4}$","title":"India purpose code"},{"type":"string","pattern":"^[A-Z0-9]{3}$","title":"United Arab Emirates purpose code"}],"description":"Purpose of the payout. Use an ISO 20022 external purpose code unless the beneficiary bank country requires a national code. Only supported on fedwire and swift payouts.","example":"SALA","nullable":true},"tracking_reference":{"type":"object","properties":{"type":{"type":"string","enum":["uetr","imad","trace_number"],"description":"Tracking reference type: UETR, IMAD, or ACH trace number."},"value":{"type":"string","minLength":1,"description":"Rail-provided tracking identifier.","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["type","value"],"additionalProperties":false,"example":{"type":"uetr","value":"550e8400-e29b-41d4-a716-446655440000"},"description":"Rail network tracking identifier with its type: UETR for SWIFT, IMAD for Fedwire, or the 15-digit trace number for ACH. Null when unavailable.","nullable":true},"failure":{"type":"object","properties":{"code":{"type":"string","enum":["account_closed","account_blocked","insufficient_funds","invalid_account_format","invalid_routing_number","invalid_instruction","invalid_amount","invalid_time","duplicate_transaction","payee_verification_failed","system_error","provider_system_error","rejected_by_correspondent_bank","blocked_by_review","unknown"],"description":"Failure code."},"message":{"type":"string","description":"Human-readable description of the failure."},"retry":{"type":"boolean","description":"Whether the payout can be retried."}},"required":["code","message","retry"],"additionalProperties":false,"description":"Failure details when status is failed, otherwise null.","example":null,"nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"initiated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the payout was initiated.","example":"2026-01-15T10:30:00Z"},"sent_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the payout was sent.","example":"2026-01-15T10:35:00Z","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto payouts, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the payout, or null when unknown.","example":"ach","nullable":true}},"required":["id","type","status","account_id","amount","currency","counterparty_id","unstructured_remittance_information","purpose_code","tracking_reference","failure","metadata","initiated_at","sent_at","tx_hash","rail"],"additionalProperties":false},"CreatePayoutBodyDto":{"type":"object","properties":{"account_id":{"type":"string","format":"uuid","description":"ID of the account to debit.","example":"550e8400-e29b-41d4-a716-44665544000b"},"amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"counterparty_id":{"type":"string","format":"uuid","description":"ID of the saved counterparty that receives the money.","example":"550e8400-e29b-41d4-a716-446655440000"},"rail":{"description":"Settlement rail the counterparty is reachable on. Selected automatically when omitted. Validated against the counterparty financial address at runtime.","type":"string","enum":["sepa","sepa_instant","faster_payments","swift","ach","fedwire","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy"]},"unstructured_remittance_information":{"type":"string","maxLength":140,"description":"Unstructured remittance information attached to the transfer. This appears on the counterparty's bank statement. Not supported by blockchain rails.","example":"INV-2026-0042","nullable":true},"purpose_code":{"anyOf":[{"type":"string","enum":["BKDF","BKFE","BKFM","BKIP","BKPP","CBLK","CDCB","CDCD","CDCS","CDDP","CDOC","CDQC","ETUP","FCOL","MTUP","ACCT","CASH","COLL","CSDB","DEPT","INTC","INTP","LIMA","NETT","BFWD","CCIR","CCPC","CCPM","CCSM","CRDS","CRPR","CRSP","CRTL","EQPT","EQUS","EXPT","EXTD","FIXI","FWBC","FWCC","FWSB","FWSC","MARG","MBSB","MBSC","MGCC","MGSC","OCCC","OPBC","OPCC","OPSB","OPSC","OPTN","OTCD","REPO","RPBC","RPCC","RPSB","RPSC","RVPO","SBSC","SCIE","SCIR","SCRP","SHBC","SHCC","SHSL","SLEB","SLOA","SWBC","SWCC","SWPT","SWSB","SWSC","TBAS","TBBC","TBCC","TRCP","AGRT","AREN","BEXP","BOCE","COMC","CPYR","GDDS","GDSV","GSCB","LICF","MP2B","POPE","ROYA","SCVE","SERV","SUBS","SUPP","TRAD","CHAR","COMT","MP2P","ECPG","ECPR","ECPU","EPAY","CLPR","COMP","DBTC","GOVI","HLRP","HLST","INPC","INPR","INSC","INSU","INTE","LBRI","LIFI","LOAN","LOAR","PENO","PPTI","RELG","RINP","TRFD","FORW","FXNT","ADMG","ADVA","BCDM","BCFG","BLDM","BNET","CBFF","CBFR","CCRD","CDBL","CFEE","CGDD","CORT","COST","CPKC","DCRD","DSMT","DVPM","EDUC","FACT","FAND","FCPM","FEES","GIFT","GOVT","ICCP","IDCP","IHRP","INSM","IVPT","MCDM","MCFG","MSVC","NOWS","OCDM","OCFG","OFEE","OTHR","PADD","PTSP","RCKE","RCPT","REBT","REFU","RENT","REOD","RIMB","RPNT","RRBN","RRCT","RRTP","RVPM","SLPI","SPLT","STDY","TBAN","TBIL","TCSC","TELI","TMPG","TPRI","TPRP","TRNC","TRVC","WEBI","IPAY","IPCA","IPDO","IPEA","IPEC","IPEW","IPPS","IPRT","IPU2","IPUW","ANNI","CAFI","CFDI","CMDT","DERI","DIVD","FREX","HEDG","INVS","PRME","SAVG","SECU","SEPI","TREA","UNIT","FNET","FUTR","ANTS","CVCF","DMEQ","DNTS","HLTC","HLTI","HSPC","ICRF","LTCF","MAFC","MARF","MDCS","VIEW","CDEP","SWFP","SWPP","SWRS","SWUF","ADCS","AEMP","ALLW","ALMY","BBSC","BECH","BENE","BONU","CCHD","COMM","CSLP","GFRP","GVEA","GVEB","GVEC","GVED","GWLT","HREC","PAYR","PEFC","PENS","PRCP","RHBS","SALA","SPSP","SSBE","LBIN","LCOL","LFEE","LMEQ","LMFI","LMRK","LREB","LREV","LSFL","ESTX","FWLV","GSTX","HSTX","INTX","NITX","PTXP","RDTX","TAXS","VATX","WHLD","TAXR","B112","BR12","TLRF","TLRR","AIRB","BUSB","FERB","RLWY","TRPT","CBTV","ELEC","ENRG","GASB","NWCH","NWCM","OTLC","PHON","UBIL","WTER","BOND","CABD","CAEQ","CBCR","DBCR","DICL","EQTS","FLCR","EFTC","EFTD","MOMA","RAPI","GAMB","LOTT","AMEX","SASW","AUCO","PCOM","PDEP","PLDS","PLRF","GAFA","GAHO","CPEN","DEPD","RETL","DEBT"],"title":"ISO 20022 purpose code"},{"type":"string","enum":["CAP","GDS","SRV","CAC","FTF"],"title":"China purpose code"},{"type":"string","pattern":"^P[A-Z0-9]{4}$","title":"India purpose code"},{"type":"string","pattern":"^[A-Z0-9]{3}$","title":"United Arab Emirates purpose code"}],"description":"Purpose of the payout. Use an ISO 20022 external purpose code unless the beneficiary bank country requires a national code. Only supported on fedwire and swift payouts.","example":"SALA","nullable":true},"metadata":{"type":"object","propertyNames":{"type":"string","maxLength":40},"additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"},"nullable":true}},"required":["account_id","amount","currency","counterparty_id"],"additionalProperties":false},"ListConversionsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the conversion.","example":"550e8400-e29b-41d4-a716-446655440006"},"type":{"type":"string","description":"Resource type discriminator.","enum":["conversion"]},"status":{"type":"string","enum":["pending","completed","failed"],"description":"Current status of the conversion."},"source_amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"target_amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"source_account_id":{"type":"string","format":"uuid","description":"ID of the source account, or null.","example":"550e8400-e29b-41d4-a716-44665544000b","nullable":true},"target_account_id":{"type":"string","format":"uuid","description":"ID of the target account, or null.","example":"550e8400-e29b-41d4-a716-44665544000c","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the conversion was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the conversion was last updated.","example":"2026-01-15T10:35:00Z"},"completed_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the conversion completed, or null.","example":"2026-01-15T10:36:00Z","nullable":true}},"required":["id","type","status","source_amount","target_amount","source_account_id","target_account_id","metadata","created_at","updated_at","completed_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"ConversionResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the conversion.","example":"550e8400-e29b-41d4-a716-446655440006"},"type":{"type":"string","description":"Resource type discriminator.","enum":["conversion"]},"status":{"type":"string","enum":["pending","completed","failed"],"description":"Current status of the conversion."},"source_amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"target_amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"source_account_id":{"type":"string","format":"uuid","description":"ID of the source account, or null.","example":"550e8400-e29b-41d4-a716-44665544000b","nullable":true},"target_account_id":{"type":"string","format":"uuid","description":"ID of the target account, or null.","example":"550e8400-e29b-41d4-a716-44665544000c","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the conversion was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the conversion was last updated.","example":"2026-01-15T10:35:00Z"},"completed_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the conversion completed, or null.","example":"2026-01-15T10:36:00Z","nullable":true}},"required":["id","type","status","source_amount","target_amount","source_account_id","target_account_id","metadata","created_at","updated_at","completed_at"],"additionalProperties":false},"CreateConversionBodyDto":{"type":"object","properties":{"source_account_id":{"type":"string","format":"uuid","description":"ID of the source account to debit.","example":"550e8400-e29b-41d4-a716-44665544000b"},"target_account_id":{"type":"string","format":"uuid","description":"ID of the target account to credit.","example":"550e8400-e29b-41d4-a716-44665544000c"},"source_amount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"metadata":{"type":"object","propertyNames":{"type":"string","maxLength":40},"additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"},"nullable":true}},"required":["source_account_id","target_account_id","source_amount"],"additionalProperties":false},"GetIndicativeQuoteResponseDto":{"type":"object","properties":{"source_amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"source_currency":{"type":"string","enum":["EUR","GBP","USD","USDC","BTC","ETH","SOL","POL"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"target_amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"target_currency":{"type":"string","enum":["EUR","GBP","USD","USDC","BTC","ETH","SOL","POL"],"description":"Currency code (ISO 4217 or crypto).","example":"USDC"},"rate":{"type":"string","description":"Conversion rate applied.","example":"1.0000"},"fee":{"type":"object","properties":{"amount":{"type":"string","description":"Fee amount as a string decimal.","example":"0.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC","BTC","ETH","SOL","POL"],"description":"Fee currency code.","example":"USD"}},"required":["amount","currency"],"additionalProperties":false,"description":"Conversion fee, or null if no fee applies.","nullable":true},"quoted_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the quote was fetched.","example":"2026-01-15T10:30:00Z"}},"required":["source_amount","source_currency","target_amount","target_currency","rate","fee","quoted_at"],"additionalProperties":false},"AbaFinancialAddress":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for ABA wire financial address.","enum":["aba"]},"routing_number":{"type":"string","description":"ABA routing number (9 digits)."},"account_number":{"type":"string","description":"Bank account number."},"account_holder_name":{"type":"string","description":"Name of the account holder."},"account_type":{"type":"string","enum":["checking","savings",null],"description":"Whether the account is a checking or a savings account, or null if not provided.","nullable":true}},"required":["type","routing_number","account_number","account_holder_name","account_type"],"additionalProperties":false,"title":"ABA","example":{"type":"aba","routing_number":"110000000","account_number":"000123456789","account_holder_name":"Acme Sandbox Ltd.","account_type":"checking"}},"IbanFinancialAddress":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for IBAN financial address.","enum":["iban"]},"iban":{"type":"string","description":"International Bank Account Number."},"account_holder_name":{"type":"string","description":"Name of the account holder."},"bic":{"type":"string","description":"Bank Identifier Code, or null if not provided.","nullable":true},"account_type":{"type":"string","enum":["checking","savings",null],"description":"Whether the account is a checking or a savings account, or null if not provided.","nullable":true}},"required":["type","iban","account_holder_name","bic","account_type"],"additionalProperties":false,"title":"IBAN","example":{"type":"iban","iban":"DE89370400440532013000","account_holder_name":"Acme Sandbox Ltd.","bic":"COBADEFFXXX","account_type":"checking"}},"SortCodeFinancialAddress":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for UK sort code financial address.","enum":["sort_code"]},"sort_code":{"type":"string","description":"UK sort code (6 digits)."},"account_number":{"type":"string","description":"UK account number (8 digits)."},"account_holder_name":{"type":"string","description":"Name of the account holder."}},"required":["type","sort_code","account_number","account_holder_name"],"additionalProperties":false,"title":"UK Sort Code","example":{"type":"sort_code","sort_code":"040075","account_number":"37778842","account_holder_name":"Acme Sandbox Ltd."}},"BicFinancialAddress":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for BIC + local account financial address.","enum":["bic"]},"bic":{"type":"string","description":"ISO 9362 Bank Identifier Code (8 or 11 characters)."},"account_number":{"type":"string","description":"Local-format bank account number."},"account_holder_name":{"type":"string","description":"Name of the account holder."},"local_bank_code":{"type":"string","description":"Domestic bank or branch code where the destination country uses one (for example the BSB in Australia), or null.","nullable":true},"account_type":{"type":"string","enum":["checking","savings",null],"description":"Whether the account is a checking or a savings account, or null if not provided.","nullable":true}},"required":["type","bic","account_number","account_holder_name","local_bank_code","account_type"],"additionalProperties":false,"title":"BIC","example":{"type":"bic","bic":"ANZBAU3MXXX","account_number":"123456789","account_holder_name":"Acme Sandbox Pty Ltd.","local_bank_code":"012003","account_type":"checking"}},"CryptoWalletFinancialAddress":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for crypto wallet financial address.","enum":["crypto_wallet"]},"address":{"type":"string","description":"Wallet address on the specified blockchain."},"blockchain":{"type":"string","enum":["bitcoin","ethereum","solana","polygon","bitcoin_testnet4","ethereum_sepolia","solana_devnet","polygon_amoy"],"description":"Blockchain network for the crypto wallet.","example":"ethereum_sepolia"}},"required":["type","address","blockchain"],"additionalProperties":false,"title":"Wallet","example":{"type":"crypto_wallet","address":"0x1111111111111111111111111111111111111111","blockchain":"ethereum_sepolia"}},"ListAccountsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the account.","example":"550e8400-e29b-41d4-a716-446655440001"},"type":{"type":"string","description":"Resource type discriminator.","enum":["account"]},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"status":{"type":"string","enum":["pending","active","frozen","closed"],"description":"Current status of the account.","example":"active"},"asset_type":{"type":"string","enum":["fiat","crypto"],"description":"Asset type of the account."},"label":{"type":"string","description":"Human-readable label for the account. For FBO accounts the label is set to the account holder’s name.","example":"Jane Doe"},"financial_addresses":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddress"},{"$ref":"#/components/schemas/IbanFinancialAddress"},{"$ref":"#/components/schemas/SortCodeFinancialAddress"},{"$ref":"#/components/schemas/BicFinancialAddress"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}]},"description":"Payment identifiers (e.g. IBAN, account number, wallet address) through which this account can send or receive funds. US dollar accounts that use an ABA routing number also include a companion `bic` entry for inbound wires: it carries the bank’s SWIFT code, reuses the same `account_number` as the `aba` entry, and leaves `local_bank_code` null.","example":[{"type":"aba","routing_number":"110000000","account_number":"000123456789","account_holder_name":"Acme Sandbox Ltd.","account_type":"checking"},{"type":"bic","bic":"IRVTUS3NXXX","account_number":"000123456789","account_holder_name":"Acme Sandbox Ltd.","local_bank_code":null,"account_type":"checking"}]},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account was last updated.","example":"2026-01-15T10:35:00Z"},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}}},"required":["id","type","currency","status","asset_type","label","financial_addresses","created_at","updated_at","metadata"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"AccountResourceDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the account.","example":"550e8400-e29b-41d4-a716-446655440001"},"type":{"type":"string","description":"Resource type discriminator.","enum":["account"]},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"status":{"type":"string","enum":["pending","active","frozen","closed"],"description":"Current status of the account.","example":"active"},"asset_type":{"type":"string","enum":["fiat","crypto"],"description":"Asset type of the account."},"label":{"type":"string","description":"Human-readable label for the account. For FBO accounts the label is set to the account holder’s name.","example":"Jane Doe"},"financial_addresses":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddress"},{"$ref":"#/components/schemas/IbanFinancialAddress"},{"$ref":"#/components/schemas/SortCodeFinancialAddress"},{"$ref":"#/components/schemas/BicFinancialAddress"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}]},"description":"Payment identifiers (e.g. IBAN, account number, wallet address) through which this account can send or receive funds. US dollar accounts that use an ABA routing number also include a companion `bic` entry for inbound wires: it carries the bank’s SWIFT code, reuses the same `account_number` as the `aba` entry, and leaves `local_bank_code` null.","example":[{"type":"aba","routing_number":"110000000","account_number":"000123456789","account_holder_name":"Acme Sandbox Ltd.","account_type":"checking"},{"type":"bic","bic":"IRVTUS3NXXX","account_number":"000123456789","account_holder_name":"Acme Sandbox Ltd.","local_bank_code":null,"account_type":"checking"}]},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account was last updated.","example":"2026-01-15T10:35:00Z"},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}}},"required":["id","type","currency","status","asset_type","label","financial_addresses","created_at","updated_at","metadata"],"additionalProperties":false},"AccountBalanceResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["account_balance"]},"account_id":{"type":"string","format":"uuid","description":"Unique identifier of the account.","example":"550e8400-e29b-41d4-a716-446655440001"},"amount":{"type":"object","properties":{"available":{"type":"string","description":"Available balance as a string decimal (e.g. \"100.50\").","example":"100.50"},"pending":{"type":"string","description":"Pending balance as a string decimal (e.g. \"7.50\").","example":"100.50"}},"required":["available","pending"],"additionalProperties":false},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"as_of":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the balance was retrieved.","example":"2026-01-15T10:40:00Z"}},"required":["type","account_id","amount","currency","as_of"],"additionalProperties":false},"CreateAccountBodyDto":{"type":"object","properties":{"account_program_id":{"type":"string","format":"uuid","description":"ID of the account program to create the account under.","example":"550e8400-e29b-41d4-a716-446655440002"},"account_holder_id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"ID of an existing account holder to provision the account for.","example":"68e0a1b2c3d4e5f60718293a"},"metadata":{"type":"object","propertyNames":{"type":"string","maxLength":40},"additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"},"nullable":true}},"required":["account_program_id","account_holder_id"],"additionalProperties":false},"CloseAccountBodyDto":{"type":"object","properties":{"reason":{"type":"string","enum":["aml_risk_fraud","client_request"],"description":"Reason for closing the account."}},"required":["reason"],"additionalProperties":false},"ListAccountProgramsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the account program.","example":"550e8400-e29b-41d4-a716-446655440002"},"type":{"type":"string","description":"Resource type discriminator.","enum":["account_program"]},"label":{"type":"string","description":"Human-readable label for the account program.","example":"Primary FBO program"},"status":{"type":"string","enum":["active","frozen"],"description":"Account program lifecycle status. Closed programs are not returned by this endpoint."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account program was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account program was last updated.","example":"2026-01-15T10:35:00Z"}},"required":["id","type","label","status","created_at","updated_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"AccountProgramBalanceResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the account program.","example":"550e8400-e29b-41d4-a716-446655440002"},"type":{"type":"string","description":"Resource type discriminator.","enum":["account_program_balance"]},"amount":{"type":"object","properties":{"available":{"type":"string","description":"Available balance as a string decimal (e.g. \"100.50\").","example":"100.50"},"pending":{"type":"string","description":"Pending balance as a string decimal (e.g. \"7.50\").","example":"100.50"}},"required":["available","pending"],"additionalProperties":false},"currency":{"type":"string","enum":["EUR","GBP","USD"],"description":"ISO 4217 currency code.","example":"USD"},"as_of":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when this balance snapshot was produced.","example":"2026-01-15T10:40:00Z"}},"required":["id","type","amount","currency","as_of"],"additionalProperties":false},"AccountProgramResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the account program.","example":"550e8400-e29b-41d4-a716-446655440002"},"type":{"type":"string","description":"Resource type discriminator.","enum":["account_program"]},"label":{"type":"string","description":"Human-readable label for the account program.","example":"Primary FBO program"},"status":{"type":"string","enum":["active","frozen"],"description":"Account program lifecycle status. Closed programs are not returned by this endpoint."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account program was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account program was last updated.","example":"2026-01-15T10:35:00Z"}},"required":["id","type","label","status","created_at","updated_at"],"additionalProperties":false},"V1UsBeneficiaryDataResponse":{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddress"},{"$ref":"#/components/schemas/V1NonUsResidentialAddress"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"oneOf":[{"$ref":"#/components/schemas/V1SsnIdentification"},{"$ref":"#/components/schemas/V1ItinIdentification"}],"description":"Government-issued identification with type: \"ssn\" (Social Security Number, format ###-##-####) or \"itin\" (Individual Taxpayer ID, format 9##-##-####)."},"country_of_citizenship":{"type":"string","description":"ISO 3166-1 alpha-2 country code of citizenship.","enum":["US"]}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship"],"additionalProperties":false,"title":"US individual"},"V1UsResidentialAddress":{"type":"object","properties":{"line_1":{"type":"string","minLength":1,"maxLength":255,"description":"Primary street address.","example":"548 Market St"},"line_2":{"type":"string","maxLength":255,"description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","minLength":1,"maxLength":255,"description":"City or locality.","example":"San Francisco"},"state":{"type":"string","minLength":2,"maxLength":2,"description":"State, province, or region.","example":"CA"},"postal_code":{"type":"string","minLength":1,"maxLength":30,"description":"Postal or ZIP code.","example":"94103"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","enum":["US"]}},"required":["line_1","line_2","city","state","postal_code","country_code"],"additionalProperties":false,"title":"US address"},"V1NonUsResidentialAddress":{"type":"object","properties":{"line_1":{"type":"string","minLength":1,"maxLength":255,"description":"Primary street address.","example":"Unter den Linden 77"},"line_2":{"type":"string","maxLength":255,"description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","minLength":1,"maxLength":255,"description":"City or locality.","example":"Berlin"},"state":{"type":"string","description":"State, province, or region, or null if not recorded.","example":"Berlin","nullable":true},"postal_code":{"type":"string","minLength":1,"maxLength":30,"description":"Postal or ZIP code.","example":"10115"},"country_code":{"description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2CodeWithoutUs"}},"required":["line_1","line_2","city","state","postal_code","country_code"],"additionalProperties":false,"title":"Non-US address"},"Alpha2CodeWithoutUs":{"type":"string","enum":["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IL","IT","JM","JP","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","MK","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","SH","KN","LC","PM","VC","WS","SM","ST","SA","SN","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","BQ","CW","GG","IM","JE","ME","BL","MF","RS","SX","SS","XK"],"example":"DE"},"V1SsnIdentification":{"type":"object","properties":{"type":{"type":"string","enum":["ssn"]},"value":{"type":"string","pattern":"^\\d{3}-\\d{2}-\\d{4}$","example":"123-45-6789"}},"required":["type","value"],"additionalProperties":false,"title":"SSN"},"V1ItinIdentification":{"type":"object","properties":{"type":{"type":"string","enum":["itin"]},"value":{"type":"string","pattern":"^9\\d{2}-\\d{2}-\\d{4}$","example":"912-34-5678"}},"required":["type","value"],"additionalProperties":false,"title":"ITIN"},"V1NonUsBeneficiaryDataResponse":{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddress"},{"$ref":"#/components/schemas/V1NonUsResidentialAddress"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"description":"Government-issued identification with type: \"id\" (generic government-issued ID).","$ref":"#/components/schemas/V1IdIdentification"},"country_of_citizenship":{"description":"ISO 3166-1 alpha-2 country code of citizenship.","$ref":"#/components/schemas/Alpha2CodeWithoutUs"}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship"],"additionalProperties":false,"title":"Non-US individual"},"V1IdIdentification":{"type":"object","properties":{"type":{"type":"string","enum":["id"]},"value":{"type":"string","minLength":1,"example":"X1234567"}},"required":["type","value"],"additionalProperties":false},"V1BusinessBeneficiaryDataResponse":{"type":"object","properties":{"legal_business_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the business.","example":"Acme Sandbox Ltd."},"doing_business_as":{"type":"string","maxLength":255,"description":"Trade name the business operates under, if different from the legal name.","example":"Acme Payments","nullable":true},"registered_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddress"},{"$ref":"#/components/schemas/V1NonUsResidentialAddress"}],"description":"Registered legal address of the business. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"physical_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddress"},{"$ref":"#/components/schemas/V1NonUsResidentialAddress"}],"description":"Physical operating address of the business. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"registration_number":{"oneOf":[{"$ref":"#/components/schemas/V1EinIdentification"},{"$ref":"#/components/schemas/V1SsnIdentification"}],"description":"Business registration number: type \"ein\" (Employer Identification Number, format ##-#######) or \"ssn\" (Social Security Number, format ###-##-####)."},"year_of_incorporation":{"type":"integer","minimum":1800,"maximum":3000,"description":"Four-digit year the business was incorporated."},"state_of_incorporation":{"type":"string","minLength":1,"description":"State or subdivision where the business is incorporated.","example":"Delaware"},"country_of_incorporation":{"description":"ISO 3166-1 alpha-2 country code where the business is incorporated.","$ref":"#/components/schemas/Alpha2Code"},"beneficial_owners":{"minItems":1,"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/V1UsBeneficiaryDataResponse"},{"$ref":"#/components/schemas/V1NonUsBeneficiaryDataResponse"}]},"description":"Beneficial owners of the business. At least one required."},"control_person":{"anyOf":[{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddress"},{"$ref":"#/components/schemas/V1NonUsResidentialAddress"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"oneOf":[{"$ref":"#/components/schemas/V1SsnIdentification"},{"$ref":"#/components/schemas/V1ItinIdentification"}],"description":"Government-issued identification with type: \"ssn\" (Social Security Number, format ###-##-####) or \"itin\" (Individual Taxpayer ID, format 9##-##-####)."},"country_of_citizenship":{"type":"string","description":"ISO 3166-1 alpha-2 country code of citizenship.","enum":["US"]},"title":{"type":"string","minLength":1,"maxLength":255,"description":"Role of the control person at the business (e.g., \"CEO\", \"President\", \"Managing Director\").","example":"CEO"}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship","title"],"additionalProperties":false},{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddress"},{"$ref":"#/components/schemas/V1NonUsResidentialAddress"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"description":"Government-issued identification with type: \"id\" (generic government-issued ID).","$ref":"#/components/schemas/V1IdIdentification"},"country_of_citizenship":{"description":"ISO 3166-1 alpha-2 country code of citizenship.","$ref":"#/components/schemas/Alpha2CodeWithoutUs"},"title":{"type":"string","minLength":1,"maxLength":255,"description":"Role of the control person at the business (e.g., \"CEO\", \"President\", \"Managing Director\").","example":"CEO"}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship","title"],"additionalProperties":false}],"description":"Individual with primary responsibility for controlling, managing, or directing the business. Follows the same US / non-US split as `beneficiary_data`, based on the control person's own `country_of_citizenship`."}},"required":["legal_business_name","doing_business_as","registered_address","physical_address","registration_number","year_of_incorporation","state_of_incorporation","country_of_incorporation","beneficial_owners","control_person"],"additionalProperties":false,"title":"Business"},"V1EinIdentification":{"type":"object","properties":{"type":{"type":"string","enum":["ein"]},"value":{"type":"string","pattern":"^\\d{2}-\\d{7}$","example":"12-3456789"}},"required":["type","value"],"additionalProperties":false,"title":"EIN"},"Alpha2Code":{"type":"string","enum":["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IL","IT","JM","JP","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","MK","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","SH","KN","LC","PM","VC","WS","SM","ST","SA","SN","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","BQ","CW","GG","IM","JE","ME","BL","MF","RS","SX","SS","XK"],"example":"DE"},"ListAccountHoldersResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Unique identifier of the account holder.","example":"68e0a1b2c3d4e5f60718293a"},"type":{"type":"string","description":"Resource type discriminator.","enum":["account_holder"]},"holder_type":{"type":"string","enum":["natural_person","business"],"description":"Type of the account holder."},"status":{"type":"string","enum":["pending","active","closed"],"description":"Current account holder status."},"beneficiary_data":{"anyOf":[{"$ref":"#/components/schemas/V1UsBeneficiaryDataResponse"},{"$ref":"#/components/schemas/V1NonUsBeneficiaryDataResponse"},{"$ref":"#/components/schemas/V1BusinessBeneficiaryDataResponse"}],"description":"Beneficiary details used to create this account holder. Which shape is returned follows `country_of_citizenship`: **US individual** when it is `US`, **Non-US individual** for any other country, **Business** when `holder_type` is `business`."},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account holder was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","holder_type","status","beneficiary_data","metadata","created_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"V1UsBeneficiaryData":{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddressRequest"},{"$ref":"#/components/schemas/V1NonUsResidentialAddressRequest"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"oneOf":[{"$ref":"#/components/schemas/V1SsnIdentification"},{"$ref":"#/components/schemas/V1ItinIdentification"}],"description":"Government-issued identification with type: \"ssn\" (Social Security Number, format ###-##-####) or \"itin\" (Individual Taxpayer ID, format 9##-##-####)."},"country_of_citizenship":{"type":"string","description":"ISO 3166-1 alpha-2 country code of citizenship.","enum":["US"]}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship"],"additionalProperties":false,"title":"US individual"},"V1UsResidentialAddressRequest":{"type":"object","properties":{"line_1":{"type":"string","minLength":1,"maxLength":255,"description":"Primary street address.","example":"548 Market St"},"line_2":{"type":"string","maxLength":255,"description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","minLength":1,"maxLength":255,"description":"City or locality.","example":"San Francisco"},"state":{"type":"string","minLength":2,"maxLength":2,"description":"State, province, or region.","example":"CA"},"postal_code":{"type":"string","minLength":1,"maxLength":30,"description":"Postal or ZIP code.","example":"94103"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","enum":["US"]}},"required":["line_1","city","state","postal_code","country_code"],"additionalProperties":false,"title":"US address"},"V1NonUsResidentialAddressRequest":{"type":"object","properties":{"line_1":{"type":"string","minLength":1,"maxLength":255,"description":"Primary street address.","example":"Unter den Linden 77"},"line_2":{"type":"string","maxLength":255,"description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","minLength":1,"maxLength":255,"description":"City or locality.","example":"Berlin"},"state":{"type":"string","description":"State, province, or region, or null if not recorded.","example":"Berlin","nullable":true},"postal_code":{"type":"string","minLength":1,"maxLength":30,"description":"Postal or ZIP code.","example":"10115"},"country_code":{"description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2CodeWithoutUs"}},"required":["line_1","city","postal_code","country_code"],"additionalProperties":false,"title":"Non-US address"},"V1NonUsBeneficiaryData":{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddressRequest"},{"$ref":"#/components/schemas/V1NonUsResidentialAddressRequest"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"description":"Government-issued identification with type: \"id\" (generic government-issued ID).","$ref":"#/components/schemas/V1IdIdentification"},"country_of_citizenship":{"description":"ISO 3166-1 alpha-2 country code of citizenship.","$ref":"#/components/schemas/Alpha2CodeWithoutUs"}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship"],"additionalProperties":false,"title":"Non-US individual"},"V1BusinessBeneficiaryData":{"type":"object","properties":{"legal_business_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the business.","example":"Acme Sandbox Ltd."},"doing_business_as":{"type":"string","minLength":1,"maxLength":255,"description":"Trade name the business operates under, if different from the legal name.","example":"Acme Payments","nullable":true},"registered_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddressRequest"},{"$ref":"#/components/schemas/V1NonUsResidentialAddressRequest"}],"description":"Registered legal address of the business. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"physical_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddressRequest"},{"$ref":"#/components/schemas/V1NonUsResidentialAddressRequest"}],"description":"Physical operating address of the business. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"registration_number":{"oneOf":[{"$ref":"#/components/schemas/V1EinIdentification"},{"$ref":"#/components/schemas/V1SsnIdentification"}],"description":"Business registration number: type \"ein\" (Employer Identification Number, format ##-#######) or \"ssn\" (Social Security Number, format ###-##-####)."},"year_of_incorporation":{"type":"integer","minimum":1800,"maximum":3000,"description":"Four-digit year the business was incorporated."},"state_of_incorporation":{"type":"string","minLength":1,"description":"State or subdivision where the business is incorporated.","example":"Delaware"},"country_of_incorporation":{"description":"ISO 3166-1 alpha-2 country code where the business is incorporated.","$ref":"#/components/schemas/Alpha2Code"},"beneficial_owners":{"minItems":1,"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/V1UsBeneficiaryData"},{"$ref":"#/components/schemas/V1NonUsBeneficiaryData"}]},"description":"Beneficial owners of the business. At least one required."},"control_person":{"anyOf":[{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddressRequest"},{"$ref":"#/components/schemas/V1NonUsResidentialAddressRequest"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"oneOf":[{"$ref":"#/components/schemas/V1SsnIdentification"},{"$ref":"#/components/schemas/V1ItinIdentification"}],"description":"Government-issued identification with type: \"ssn\" (Social Security Number, format ###-##-####) or \"itin\" (Individual Taxpayer ID, format 9##-##-####)."},"country_of_citizenship":{"type":"string","description":"ISO 3166-1 alpha-2 country code of citizenship.","enum":["US"]},"title":{"type":"string","minLength":1,"maxLength":255,"description":"Role of the control person at the business (e.g., \"CEO\", \"President\", \"Managing Director\").","example":"CEO"}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship","title"],"additionalProperties":false},{"type":"object","properties":{"legal_name":{"type":"string","minLength":1,"maxLength":255,"description":"Full legal name of the account holder.","example":"Jordan Rivera"},"residential_address":{"anyOf":[{"$ref":"#/components/schemas/V1UsResidentialAddressRequest"},{"$ref":"#/components/schemas/V1NonUsResidentialAddressRequest"}],"description":"Residential address of the account holder. **US address** requires `country_code: US` and a two-letter `state`. **Non-US address** accepts any other country and allows `state` to be null."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth as an ISO 8601 calendar date (YYYY-MM-DD).","example":"1990-01-15"},"identification":{"description":"Government-issued identification with type: \"id\" (generic government-issued ID).","$ref":"#/components/schemas/V1IdIdentification"},"country_of_citizenship":{"description":"ISO 3166-1 alpha-2 country code of citizenship.","$ref":"#/components/schemas/Alpha2CodeWithoutUs"},"title":{"type":"string","minLength":1,"maxLength":255,"description":"Role of the control person at the business (e.g., \"CEO\", \"President\", \"Managing Director\").","example":"CEO"}},"required":["legal_name","residential_address","date_of_birth","identification","country_of_citizenship","title"],"additionalProperties":false}],"description":"Individual with primary responsibility for controlling, managing, or directing the business. Follows the same US / non-US split as `beneficiary_data`, based on the control person's own `country_of_citizenship`."}},"required":["legal_business_name","registered_address","physical_address","registration_number","year_of_incorporation","state_of_incorporation","country_of_incorporation","beneficial_owners","control_person"],"additionalProperties":false,"title":"Business"},"CreateAccountHolderBodyDto":{"type":"object","properties":{"account_program_id":{"type":"string","format":"uuid","description":"ID of the account program to create the account holder under.","example":"550e8400-e29b-41d4-a716-446655440002"},"holder_type":{"type":"string","enum":["natural_person","business"],"description":"Type of the account holder."},"beneficiary_data":{"anyOf":[{"$ref":"#/components/schemas/V1UsBeneficiaryData"},{"$ref":"#/components/schemas/V1NonUsBeneficiaryData"},{"$ref":"#/components/schemas/V1BusinessBeneficiaryData"}],"description":"Personal information of the account holder. The shape you send follows `country_of_citizenship`: use **US individual** when it is `US`, and **Non-US individual** for any other country. Use **Business** when `holder_type` is `business`."},"metadata":{"type":"object","propertyNames":{"type":"string","maxLength":40},"additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"},"nullable":true}},"required":["account_program_id","holder_type","beneficiary_data"],"additionalProperties":false},"AccountHolderResourceDto":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Unique identifier of the account holder.","example":"68e0a1b2c3d4e5f60718293a"},"type":{"type":"string","description":"Resource type discriminator.","enum":["account_holder"]},"holder_type":{"type":"string","enum":["natural_person","business"],"description":"Type of the account holder."},"status":{"type":"string","enum":["pending","active","closed"],"description":"Current account holder status."},"beneficiary_data":{"anyOf":[{"$ref":"#/components/schemas/V1UsBeneficiaryDataResponse"},{"$ref":"#/components/schemas/V1NonUsBeneficiaryDataResponse"},{"$ref":"#/components/schemas/V1BusinessBeneficiaryDataResponse"}],"description":"Beneficiary details used to create this account holder. Which shape is returned follows `country_of_citizenship`: **US individual** when it is `US`, **Non-US individual** for any other country, **Business** when `holder_type` is `business`."},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the account holder was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","holder_type","status","beneficiary_data","metadata","created_at"],"additionalProperties":false},"UpdateAccountHolderBodyDto":{"type":"object","properties":{"beneficiary_data":{"anyOf":[{"$ref":"#/components/schemas/V1UsBeneficiaryData"},{"$ref":"#/components/schemas/V1NonUsBeneficiaryData"},{"$ref":"#/components/schemas/V1BusinessBeneficiaryData"}],"description":"New beneficiary details replacing the current values. The shape must match the existing account holder's `holder_type`: use **Business** for a business holder; otherwise use **US individual** when `country_of_citizenship` is `US`, and **Non-US individual** for any other country."}},"required":["beneficiary_data"],"additionalProperties":false},"AbaFinancialAddressRequest":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for ABA wire financial address.","enum":["aba"]},"routing_number":{"type":"string","description":"ABA routing number (9 digits)."},"account_number":{"type":"string","pattern":"^\\d+$","description":"Bank account number."},"account_holder_name":{"type":"string","minLength":1,"description":"Name of the account holder."},"account_type":{"type":"string","enum":["checking","savings",null],"description":"Whether the account is a checking or a savings account. Optional; omit or send null if not provided. Some destination countries require it (for example the Dominican Republic, Honduras and Jamaica) and ACH uses it for the transaction code. A payment to an account without one is sent as checking.","nullable":true}},"required":["type","routing_number","account_number","account_holder_name"],"additionalProperties":false,"title":"ABA","example":{"type":"aba","routing_number":"110000000","account_number":"000123456789","account_holder_name":"Acme Sandbox Ltd.","account_type":"checking"}},"IbanFinancialAddressRequest":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for IBAN financial address.","enum":["iban"]},"iban":{"type":"string","description":"International Bank Account Number."},"account_holder_name":{"type":"string","minLength":1,"description":"Name of the account holder."},"bic":{"type":"string","description":"Bank Identifier Code. Optional; omit or send null if not provided.","nullable":true},"account_type":{"type":"string","enum":["checking","savings",null],"description":"Whether the account is a checking or a savings account. Optional; omit or send null if not provided. Some destination countries require it (for example the Dominican Republic, Honduras and Jamaica) and ACH uses it for the transaction code. A payment to an account without one is sent as checking.","nullable":true}},"required":["type","iban","account_holder_name"],"additionalProperties":false,"title":"IBAN","example":{"type":"iban","iban":"DE89370400440532013000","account_holder_name":"Acme Sandbox Ltd.","bic":"COBADEFFXXX","account_type":"checking"}},"SortCodeFinancialAddressRequest":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for UK sort code financial address.","enum":["sort_code"]},"sort_code":{"type":"string","pattern":"^\\d{6}$","description":"UK sort code (6 digits)."},"account_number":{"type":"string","pattern":"^\\d{8}$","description":"UK account number (8 digits)."},"account_holder_name":{"type":"string","minLength":1,"description":"Name of the account holder."}},"required":["type","sort_code","account_number","account_holder_name"],"additionalProperties":false,"title":"UK Sort Code","example":{"type":"sort_code","sort_code":"040075","account_number":"37778842","account_holder_name":"Acme Sandbox Ltd."}},"BicFinancialAddressRequest":{"type":"object","properties":{"type":{"type":"string","description":"Discriminator for BIC + local account financial address.","enum":["bic"]},"bic":{"type":"string","description":"ISO 9362 Bank Identifier Code (8 or 11 characters)."},"account_number":{"type":"string","minLength":1,"maxLength":34,"pattern":"^[A-Za-z0-9]+$","description":"Local-format bank account number (1-34 alphanumeric characters)."},"account_holder_name":{"type":"string","minLength":1,"description":"Name of the account holder."},"local_bank_code":{"type":"string","description":"Domestic bank or branch code where the destination country uses one (for example the BSB in Australia). Optional; omit or send null where the country has none.","nullable":true},"account_type":{"type":"string","enum":["checking","savings",null],"description":"Whether the account is a checking or a savings account. Optional; omit or send null if not provided. Some destination countries require it (for example the Dominican Republic, Honduras and Jamaica) and ACH uses it for the transaction code. A payment to an account without one is sent as checking.","nullable":true}},"required":["type","bic","account_number","account_holder_name"],"additionalProperties":false,"title":"BIC","example":{"type":"bic","bic":"ANZBAU3MXXX","account_number":"123456789","account_holder_name":"Acme Sandbox Pty Ltd.","local_bank_code":"012003","account_type":"checking"}},"CreateCounterpartyBodyDto":{"type":"object","properties":{"name":{"description":"Name of the counterparty.","example":"Acme Sandbox Ltd.","type":"string"},"physical_address":{"description":"Physical address of the counterparty.","type":"object","properties":{"line_1":{"type":"string","description":"Primary street address. Optional; omit or send null if not recorded.","example":"548 Market St","nullable":true},"line_2":{"type":"string","description":"Secondary street address. Optional; omit or send null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","description":"City or locality.","example":"San Francisco"},"postal_code":{"type":"string","description":"Postal or ZIP code. Optional; omit or send null if not recorded.","example":"94103","nullable":true},"state":{"type":"string","description":"State, province, or region. Optional; omit or send null if not recorded.","example":"CA","nullable":true},"country_code":{"example":"US","description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2Code"}},"required":["city","country_code"],"additionalProperties":false},"financial_address":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddressRequest"},{"$ref":"#/components/schemas/IbanFinancialAddressRequest"},{"$ref":"#/components/schemas/SortCodeFinancialAddressRequest"},{"$ref":"#/components/schemas/BicFinancialAddressRequest"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}],"description":"Financial address of the counterparty."},"date_of_birth":{"description":"Date of birth in YYYY-MM-DD format.","example":"1990-01-15","type":"string","format":"date"},"phone":{"description":"Phone number of the counterparty. Stored for operational contact only; it is not sent with payments.","example":"+55 11 91234 5678","type":"string","minLength":1,"maxLength":32,"pattern":"^\\+?[ ().-]*[0-9][0-9 ().-]*$"},"email":{"description":"Email address of the counterparty. Stored for operational contact only; it is not sent with payments.","example":"finance@example.com","type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"legal_id":{"description":"National tax or identity number of the counterparty, as issued in its country: CPF or CNPJ in Brazil, Cédula or NIT in Colombia, CUIL or CUIT in Argentina, DNI or RUC in Peru, RUT in Chile. Free text, up to 127 characters.","example":"12.345.678/0001-95","type":"string","minLength":1,"maxLength":127},"entity_type":{"description":"Classification of the counterparty. Defaults to business.","type":"string","enum":["business","individual","non_profit","sole_proprietor"]},"is_self_owned":{"default":false,"description":"Whether the counterparty is self-owned. `false` if the counterparty is not owned by you, `true` if it is.","type":"boolean"},"metadata":{"type":"object","propertyNames":{"type":"string","maxLength":40},"additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"},"nullable":true}},"required":["financial_address"],"additionalProperties":false},"CounterpartyResourceDto":{"type":"object","properties":{"status":{"type":"string","enum":["pending","active","rejected"],"description":"Counterparty lifecycle status. Blocking is separate.","example":"active"},"id":{"type":"string","format":"uuid","description":"Unique identifier of the counterparty."},"type":{"type":"string","description":"Resource type discriminator.","enum":["counterparty"]},"name":{"type":"string","description":"Name of the counterparty, or null if not recorded.","example":"Acme Sandbox Ltd.","nullable":true},"entity_type":{"type":"string","enum":["business","individual","non_profit","sole_proprietor"],"description":"Classification of the counterparty.","example":"business"},"physical_address":{"type":"object","properties":{"line_1":{"type":"string","description":"Primary street address, or null if not recorded.","example":"548 Market St","nullable":true},"line_2":{"type":"string","description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","description":"City or locality.","example":"San Francisco"},"postal_code":{"type":"string","description":"Postal or ZIP code, or null if not recorded.","example":"94103","nullable":true},"state":{"type":"string","description":"State, province, or region, or null if not recorded.","example":"CA","nullable":true},"country_code":{"example":"US","description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2Code"}},"required":["line_1","line_2","city","postal_code","state","country_code"],"additionalProperties":false,"description":"Physical address of the counterparty, or null if not recorded.","nullable":true},"financial_address":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddress"},{"$ref":"#/components/schemas/IbanFinancialAddress"},{"$ref":"#/components/schemas/SortCodeFinancialAddress"},{"$ref":"#/components/schemas/BicFinancialAddress"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}],"description":"Financial address of the counterparty."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth in YYYY-MM-DD format, or null if not recorded.","example":"1990-01-15","nullable":true},"phone":{"type":"string","description":"Phone number of the counterparty, or null if not recorded.","example":"+55 11 91234 5678","nullable":true},"email":{"type":"string","description":"Email address of the counterparty, or null if not recorded.","example":"finance@example.com","nullable":true},"legal_id":{"type":"string","description":"National tax or identity number of the counterparty, or null if not recorded.","example":"12.345.678/0001-95","nullable":true},"is_self_owned":{"type":"boolean","description":"Whether the counterparty is self-owned. `false` if the counterparty is not owned by you, `true` if it is.","example":false},"blocked":{"type":"boolean","description":"Whether payments to or from this counterparty are currently blocked.","example":false},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}}},"required":["status","id","type","name","entity_type","physical_address","financial_address","date_of_birth","phone","email","legal_id","is_self_owned","blocked","metadata"],"additionalProperties":false},"UpdateCounterpartyBodyDto":{"type":"object","properties":{"name":{"type":"string","description":"New name, or null to clear the current name.","example":"Acme Sandbox Ltd.","nullable":true},"physical_address":{"type":"object","properties":{"line_1":{"type":"string","description":"Primary street address. Optional; omit or send null if not recorded.","example":"548 Market St","nullable":true},"line_2":{"type":"string","description":"Secondary street address. Optional; omit or send null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","description":"City or locality.","example":"San Francisco"},"postal_code":{"type":"string","description":"Postal or ZIP code. Optional; omit or send null if not recorded.","example":"94103","nullable":true},"state":{"type":"string","description":"State, province, or region. Optional; omit or send null if not recorded.","example":"CA","nullable":true},"country_code":{"example":"US","description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2Code"}},"required":["city","country_code"],"additionalProperties":false,"description":"New physical address, or null to clear the current physical address.","nullable":true},"date_of_birth":{"type":"string","format":"date","description":"New date of birth in YYYY-MM-DD format, or null to clear the current date of birth.","example":"1990-01-15","nullable":true},"phone":{"type":"string","minLength":1,"maxLength":32,"pattern":"^\\+?[ ().-]*[0-9][0-9 ().-]*$","description":"New phone number, or null to clear the current phone number.","example":"+55 11 91234 5678","nullable":true},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"New email address, or null to clear the current email address.","example":"finance@example.com","nullable":true},"legal_id":{"type":"string","minLength":1,"maxLength":127,"description":"New legal identifier, or null to clear the current legal identifier.","example":"12.345.678/0001-95","nullable":true},"entity_type":{"description":"New entity type. Omit to keep the current entity type.","type":"string","enum":["business","individual","non_profit","sole_proprietor"]},"is_self_owned":{"description":"New ownership status. Omit to keep the current ownership status.","type":"boolean"}},"additionalProperties":false},"ListCounterpartiesResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","enum":["pending","active","rejected"],"description":"Counterparty lifecycle status. Blocking is separate.","example":"active"},"id":{"type":"string","format":"uuid","description":"Unique identifier of the counterparty."},"type":{"type":"string","description":"Resource type discriminator.","enum":["counterparty"]},"name":{"type":"string","description":"Name of the counterparty, or null if not recorded.","example":"Acme Sandbox Ltd.","nullable":true},"entity_type":{"type":"string","enum":["business","individual","non_profit","sole_proprietor"],"description":"Classification of the counterparty.","example":"business"},"physical_address":{"type":"object","properties":{"line_1":{"type":"string","description":"Primary street address, or null if not recorded.","example":"548 Market St","nullable":true},"line_2":{"type":"string","description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","description":"City or locality.","example":"San Francisco"},"postal_code":{"type":"string","description":"Postal or ZIP code, or null if not recorded.","example":"94103","nullable":true},"state":{"type":"string","description":"State, province, or region, or null if not recorded.","example":"CA","nullable":true},"country_code":{"example":"US","description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2Code"}},"required":["line_1","line_2","city","postal_code","state","country_code"],"additionalProperties":false,"description":"Physical address of the counterparty, or null if not recorded.","nullable":true},"financial_address":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddress"},{"$ref":"#/components/schemas/IbanFinancialAddress"},{"$ref":"#/components/schemas/SortCodeFinancialAddress"},{"$ref":"#/components/schemas/BicFinancialAddress"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}],"description":"Financial address of the counterparty."},"date_of_birth":{"type":"string","format":"date","description":"Date of birth in YYYY-MM-DD format, or null if not recorded.","example":"1990-01-15","nullable":true},"phone":{"type":"string","description":"Phone number of the counterparty, or null if not recorded.","example":"+55 11 91234 5678","nullable":true},"email":{"type":"string","description":"Email address of the counterparty, or null if not recorded.","example":"finance@example.com","nullable":true},"legal_id":{"type":"string","description":"National tax or identity number of the counterparty, or null if not recorded.","example":"12.345.678/0001-95","nullable":true},"is_self_owned":{"type":"boolean","description":"Whether the counterparty is self-owned. `false` if the counterparty is not owned by you, `true` if it is.","example":false},"blocked":{"type":"boolean","description":"Whether payments to or from this counterparty are currently blocked.","example":false},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}}},"required":["status","id","type","name","entity_type","physical_address","financial_address","date_of_birth","phone","email","legal_id","is_self_owned","blocked","metadata"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"ListReturnsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the return.","example":"550e8400-e29b-41d4-a716-446655440005"},"type":{"type":"string","description":"Resource type discriminator.","enum":["return"]},"status":{"type":"string","enum":["initiated","submitted","sent","failed","returned"],"description":"Current status of the return.","example":"sent"},"deposit_id":{"type":"string","format":"uuid","description":"ID of the parent deposit.","example":"550e8400-e29b-41d4-a716-446655440004"},"amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"failure":{"type":"object","properties":{"code":{"type":"string","enum":["account_closed","account_blocked","insufficient_funds","invalid_account_format","invalid_routing_number","invalid_instruction","invalid_amount","invalid_time","duplicate_transaction","payee_verification_failed","system_error","provider_system_error","rejected_by_correspondent_bank","blocked_by_review","unknown"],"description":"Failure code."},"message":{"type":"string","description":"Human-readable description of the failure."},"retry":{"type":"boolean","description":"Whether the return can be retried."}},"required":["code","message","retry"],"additionalProperties":false,"description":"Failure details when status is failed, otherwise null.","example":null,"nullable":true},"initiated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the return was initiated.","example":"2026-01-15T10:30:00Z"},"sent_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the return was sent.","example":"2026-01-15T10:35:00Z","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto returns, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the return, or null when unknown.","example":"ach","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}}},"required":["id","type","status","deposit_id","amount","currency","failure","initiated_at","sent_at","tx_hash","rail","metadata"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"CreateReturnBodyDto":{"type":"object","properties":{"deposit_id":{"type":"string","format":"uuid","description":"Deposit to return funds from.","example":"550e8400-e29b-41d4-a716-446655440004"},"metadata":{"type":"object","propertyNames":{"type":"string","maxLength":40},"additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"},"nullable":true}},"required":["deposit_id"],"additionalProperties":false},"ReturnResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the return.","example":"550e8400-e29b-41d4-a716-446655440005"},"type":{"type":"string","description":"Resource type discriminator.","enum":["return"]},"status":{"type":"string","enum":["initiated","submitted","sent","failed","returned"],"description":"Current status of the return.","example":"sent"},"deposit_id":{"type":"string","format":"uuid","description":"ID of the parent deposit.","example":"550e8400-e29b-41d4-a716-446655440004"},"amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"failure":{"type":"object","properties":{"code":{"type":"string","enum":["account_closed","account_blocked","insufficient_funds","invalid_account_format","invalid_routing_number","invalid_instruction","invalid_amount","invalid_time","duplicate_transaction","payee_verification_failed","system_error","provider_system_error","rejected_by_correspondent_bank","blocked_by_review","unknown"],"description":"Failure code."},"message":{"type":"string","description":"Human-readable description of the failure."},"retry":{"type":"boolean","description":"Whether the return can be retried."}},"required":["code","message","retry"],"additionalProperties":false,"description":"Failure details when status is failed, otherwise null.","example":null,"nullable":true},"initiated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the return was initiated.","example":"2026-01-15T10:30:00Z"},"sent_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the return was sent.","example":"2026-01-15T10:35:00Z","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto returns, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the return, or null when unknown.","example":"ach","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}}},"required":["id","type","status","deposit_id","amount","currency","failure","initiated_at","sent_at","tx_hash","rail","metadata"],"additionalProperties":false},"PingResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the ping event.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","description":"Resource type discriminator.","enum":["ping"]},"merchant_id":{"type":"string","description":"Identifier of the merchant the ping was dispatched for.","example":"68e0a1b2c3d4e5f607182940"},"dispatched_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the ping was dispatched.","example":"2026-01-15T10:30:00Z"},"message":{"type":"string","description":"Human-readable notice that this event was generated by the test endpoint and does not reflect any real business activity.","example":"This is a test event from the Augustus API. No action is required."}},"required":["id","type","merchant_id","dispatched_at","message"],"additionalProperties":false},"CreateWebhookSubscriptionBodyDto":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https:\\/\\/.*","description":"The HTTPS URL where webhook events will be delivered.","example":"https://sandbox.example.com/webhooks/augustus"},"events":{"minItems":1,"type":"array","items":{"type":"string","enum":["payout.initiated","payout.submitted","payout.sent","payout.failed","payout.returned","return.initiated","return.submitted","return.sent","return.failed","return.returned","deposit.settled","conversion.created","conversion.completed","conversion.failed","account_holder.active","account_holder.closed","counterparty.pending","counterparty.active","counterparty.rejected","counterparty.blocked","counterparty.unblocked","counterparty.updated","payout_tracking_event.created","*"],"description":"Event type to subscribe to. Use \"*\" for all events."},"description":"Event types to subscribe to. Use [\"*\"] for all events.","example":["payout.sent"]},"metadata":{"type":"object","propertyNames":{"type":"string","maxLength":40},"additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"},"nullable":true}},"required":["url","events"],"additionalProperties":false},"WebhookSubscriptionResourceDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the webhook subscription.","example":"550e8400-e29b-41d4-a716-446655440009"},"type":{"type":"string","description":"Resource type discriminator.","enum":["webhook_subscription"]},"url":{"type":"string","description":"The HTTPS URL where webhook events are delivered.","example":"https://sandbox.example.com/webhooks/augustus"},"events":{"type":"array","items":{"type":"string","enum":["payout.initiated","payout.submitted","payout.sent","payout.failed","payout.returned","return.initiated","return.submitted","return.sent","return.failed","return.returned","deposit.settled","conversion.created","conversion.completed","conversion.failed","account_holder.active","account_holder.closed","counterparty.pending","counterparty.active","counterparty.rejected","counterparty.blocked","counterparty.unblocked","counterparty.updated","payout_tracking_event.created"],"description":"Event type the subscription receives."},"description":"Event types this subscription receives.","example":["payout.sent"]},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the subscription was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the subscription was last updated.","example":"2026-01-15T10:35:00Z"}},"required":["id","type","url","events","metadata","created_at","updated_at"],"additionalProperties":false},"ListWebhookSubscriptionsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the webhook subscription.","example":"550e8400-e29b-41d4-a716-446655440009"},"type":{"type":"string","description":"Resource type discriminator.","enum":["webhook_subscription"]},"url":{"type":"string","description":"The HTTPS URL where webhook events are delivered.","example":"https://sandbox.example.com/webhooks/augustus"},"events":{"type":"array","items":{"type":"string","enum":["payout.initiated","payout.submitted","payout.sent","payout.failed","payout.returned","return.initiated","return.submitted","return.sent","return.failed","return.returned","deposit.settled","conversion.created","conversion.completed","conversion.failed","account_holder.active","account_holder.closed","counterparty.pending","counterparty.active","counterparty.rejected","counterparty.blocked","counterparty.unblocked","counterparty.updated","payout_tracking_event.created"],"description":"Event type the subscription receives."},"description":"Event types this subscription receives.","example":["payout.sent"]},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Set of up to 50 key-value string pairs you can attach to store structured information, such as correlating this resource with an object in your own system. Keys may be up to 40 characters and values up to 500 characters.","example":{"invoice_id":"INV-2026-0042"}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the subscription was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the subscription was last updated.","example":"2026-01-15T10:35:00Z"}},"required":["id","type","url","events","metadata","created_at","updated_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"UpdateWebhookSubscriptionBodyDto":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https:\\/\\/.*","description":"The new HTTPS URL. Omit or send null to keep the current URL.","example":"https://sandbox.example.com/webhooks/augustus","nullable":true},"events":{"minItems":1,"type":"array","items":{"type":"string","enum":["payout.initiated","payout.submitted","payout.sent","payout.failed","payout.returned","return.initiated","return.submitted","return.sent","return.failed","return.returned","deposit.settled","conversion.created","conversion.completed","conversion.failed","account_holder.active","account_holder.closed","counterparty.pending","counterparty.active","counterparty.rejected","counterparty.blocked","counterparty.unblocked","counterparty.updated","payout_tracking_event.created","*"],"description":"Event type to subscribe to. Use \"*\" for all events."},"description":"New event types. Omit or send null to keep the current events. Use [\"*\"] for all events.","example":["payout.sent"],"nullable":true}},"additionalProperties":false},"EventResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the event. Matches the envelope `id` delivered in the webhook payload and is stable across subscription fan-out and retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","description":"Resource type discriminator.","enum":["event"]},"event_type":{"type":"string","enum":["payout.initiated","payout.submitted","payout.sent","payout.failed","payout.returned","return.initiated","return.submitted","return.sent","return.failed","return.returned","deposit.settled","conversion.created","conversion.completed","conversion.failed","account_holder.active","account_holder.closed","counterparty.pending","counterparty.active","counterparty.rejected","counterparty.blocked","counterparty.unblocked","counterparty.updated","payout_tracking_event.created","ping.test"],"description":"Event type."},"api_version":{"type":"string","description":"API version the event payload was rendered at. Stable across retries and redeliveries, and mirrored in the webhook envelope `api_version` field.","example":"2026-05-01"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"},"data":{"type":"object","additionalProperties":{},"description":"Event payload. Shape matches the resource schema for `event_type`."}},"required":["id","type","event_type","api_version","created_at","data"],"additionalProperties":false},"DepositResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the deposit.","example":"550e8400-e29b-41d4-a716-446655440004"},"type":{"type":"string","description":"Resource type discriminator.","enum":["deposit"]},"status":{"type":"string","enum":["settled"],"description":"Current status of the deposit.","example":"settled"},"account_id":{"type":"string","format":"uuid","description":"ID of the account that was credited with the deposit.","example":"550e8400-e29b-41d4-a716-446655440001"},"amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"counterparty_id":{"type":"string","format":"uuid","description":"ID of the counterparty that sent the money, or null when not known.","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true},"unstructured_remittance_information":{"type":"string","maxLength":140,"description":"Unstructured remittance information attached to the transfer. Not all rails support this field.","example":"INV-2026-0042","nullable":true},"tracking_reference":{"type":"object","properties":{"type":{"type":"string","enum":["uetr","imad","trace_number"],"description":"Tracking reference type: UETR, IMAD, or ACH trace number."},"value":{"type":"string","minLength":1,"description":"Rail-provided tracking identifier.","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["type","value"],"additionalProperties":false,"example":{"type":"uetr","value":"550e8400-e29b-41d4-a716-446655440000"},"description":"Rail network tracking identifier with its type: UETR for SWIFT, IMAD for Fedwire, or the 15-digit trace number for ACH. Null when unavailable.","nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the deposit, or null when unknown.","example":"ach","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto deposits, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"returns":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Array of deposit return IDs associated with this deposit.","example":[]},"settled_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the deposit was settled.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","status","account_id","amount","currency","counterparty_id","unstructured_remittance_information","tracking_reference","rail","tx_hash","returns","settled_at"],"additionalProperties":false},"ListDepositsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the deposit.","example":"550e8400-e29b-41d4-a716-446655440004"},"type":{"type":"string","description":"Resource type discriminator.","enum":["deposit"]},"status":{"type":"string","enum":["settled"],"description":"Current status of the deposit.","example":"settled"},"account_id":{"type":"string","format":"uuid","description":"ID of the account that was credited with the deposit.","example":"550e8400-e29b-41d4-a716-446655440001"},"amount":{"type":"string","description":"Amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"counterparty_id":{"type":"string","format":"uuid","description":"ID of the counterparty that sent the money, or null when not known.","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true},"unstructured_remittance_information":{"type":"string","maxLength":140,"description":"Unstructured remittance information attached to the transfer. Not all rails support this field.","example":"INV-2026-0042","nullable":true},"tracking_reference":{"type":"object","properties":{"type":{"type":"string","enum":["uetr","imad","trace_number"],"description":"Tracking reference type: UETR, IMAD, or ACH trace number."},"value":{"type":"string","minLength":1,"description":"Rail-provided tracking identifier.","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["type","value"],"additionalProperties":false,"example":{"type":"uetr","value":"550e8400-e29b-41d4-a716-446655440000"},"description":"Rail network tracking identifier with its type: UETR for SWIFT, IMAD for Fedwire, or the 15-digit trace number for ACH. Null when unavailable.","nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the deposit, or null when unknown.","example":"ach","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto deposits, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"returns":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Array of deposit return IDs associated with this deposit.","example":[]},"settled_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the deposit was settled.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","status","account_id","amount","currency","counterparty_id","unstructured_remittance_information","tracking_reference","rail","tx_hash","returns","settled_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"TransactionResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the transaction.","example":"550e8400-e29b-41d4-a716-44665544000d"},"type":{"type":"string","description":"Resource type discriminator.","enum":["transaction"]},"side":{"type":"string","enum":["credit","debit"],"description":"Direction of the movement relative to the merchant account."},"status":{"type":"string","description":"State of the transaction. Transactions are by definition booked.","enum":["booked"]},"amount":{"type":"string","description":"Absolute amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"account_id":{"type":"string","format":"uuid","description":"ID of the merchant account this transaction was credited to or debited from.","example":"550e8400-e29b-41d4-a716-446655440001"},"source":{"type":"object","properties":{"type":{"type":"string","enum":["deposit","payout","return"],"description":"Type of the resource that originated this transaction."},"id":{"type":"string","format":"uuid","description":"Identifier of the originating resource, retrievable on its own endpoint.","example":"550e8400-e29b-41d4-a716-446655440003"}},"required":["type","id"],"additionalProperties":false,"description":"The resource that originated this transaction, or null when it does not map to a retrievable resource.","nullable":true},"counterparty":{"type":"object","properties":{"financial_address":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddress"},{"$ref":"#/components/schemas/IbanFinancialAddress"},{"$ref":"#/components/schemas/SortCodeFinancialAddress"},{"$ref":"#/components/schemas/BicFinancialAddress"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}],"description":"Financial address of the counterparty."},"physical_address":{"type":"object","properties":{"line_1":{"type":"string","description":"Primary street address.","example":"548 Market St"},"line_2":{"type":"string","description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","description":"City or locality.","example":"San Francisco"},"postal_code":{"type":"string","description":"Postal or ZIP code.","example":"94103"},"state":{"type":"string","description":"State, province, or region, or null if not recorded.","example":"CA","nullable":true},"country_code":{"example":"US","description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2Code"}},"required":["line_1","line_2","city","postal_code","state","country_code"],"additionalProperties":false,"description":"Physical address of the counterparty.","nullable":true}},"required":["financial_address","physical_address"],"additionalProperties":false,"description":"Counterparty of the transaction.","nullable":true},"counterparty_id":{"type":"string","format":"uuid","description":"ID of the counterparty this transaction is associated with, or null when none was resolved. Correlates with the counterparties API and a payout's counterparty_id.","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true},"unstructured_remittance_information":{"type":"string","description":"Unstructured remittance information attached to the transfer. Not all rails support this field.","example":"INV-2026-0042","nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the transaction, or null when unknown.","example":"ach","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto transactions, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"booked_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the transaction was recorded.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","side","status","amount","currency","account_id","source","counterparty","counterparty_id","unstructured_remittance_information","rail","tx_hash","booked_at"],"additionalProperties":false},"ListTransactionsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the transaction.","example":"550e8400-e29b-41d4-a716-44665544000d"},"type":{"type":"string","description":"Resource type discriminator.","enum":["transaction"]},"side":{"type":"string","enum":["credit","debit"],"description":"Direction of the movement relative to the merchant account."},"status":{"type":"string","description":"State of the transaction. Transactions are by definition booked.","enum":["booked"]},"amount":{"type":"string","description":"Absolute amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency code (ISO 4217 or crypto).","example":"USD"},"account_id":{"type":"string","format":"uuid","description":"ID of the merchant account this transaction was credited to or debited from.","example":"550e8400-e29b-41d4-a716-446655440001"},"source":{"type":"object","properties":{"type":{"type":"string","enum":["deposit","payout","return"],"description":"Type of the resource that originated this transaction."},"id":{"type":"string","format":"uuid","description":"Identifier of the originating resource, retrievable on its own endpoint.","example":"550e8400-e29b-41d4-a716-446655440003"}},"required":["type","id"],"additionalProperties":false,"description":"The resource that originated this transaction, or null when it does not map to a retrievable resource.","nullable":true},"counterparty":{"type":"object","properties":{"financial_address":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddress"},{"$ref":"#/components/schemas/IbanFinancialAddress"},{"$ref":"#/components/schemas/SortCodeFinancialAddress"},{"$ref":"#/components/schemas/BicFinancialAddress"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}],"description":"Financial address of the counterparty."},"physical_address":{"type":"object","properties":{"line_1":{"type":"string","description":"Primary street address.","example":"548 Market St"},"line_2":{"type":"string","description":"Secondary street address, or null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","description":"City or locality.","example":"San Francisco"},"postal_code":{"type":"string","description":"Postal or ZIP code.","example":"94103"},"state":{"type":"string","description":"State, province, or region, or null if not recorded.","example":"CA","nullable":true},"country_code":{"example":"US","description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2Code"}},"required":["line_1","line_2","city","postal_code","state","country_code"],"additionalProperties":false,"description":"Physical address of the counterparty.","nullable":true}},"required":["financial_address","physical_address"],"additionalProperties":false,"description":"Counterparty of the transaction.","nullable":true},"counterparty_id":{"type":"string","format":"uuid","description":"ID of the counterparty this transaction is associated with, or null when none was resolved. Correlates with the counterparties API and a payout's counterparty_id.","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true},"unstructured_remittance_information":{"type":"string","description":"Unstructured remittance information attached to the transfer. Not all rails support this field.","example":"INV-2026-0042","nullable":true},"rail":{"type":"string","enum":["sepa","sepa_instant","faster_payments","swift","internal","target","ach","fedwire","bitcoin","bitcoin_testnet4","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy",null],"description":"Payment scheme or blockchain used for the transaction, or null when unknown.","example":"ach","nullable":true},"tx_hash":{"type":"string","description":"Transaction hash for crypto transactions, or null when not known. Only blockchain rails support this field.","example":null,"nullable":true},"booked_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the transaction was recorded.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","side","status","amount","currency","account_id","source","counterparty","counterparty_id","unstructured_remittance_information","rail","tx_hash","booked_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"ListEventsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the event. Matches the envelope `id` delivered in the webhook payload and is stable across subscription fan-out and retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","description":"Resource type discriminator.","enum":["event"]},"event_type":{"type":"string","enum":["payout.initiated","payout.submitted","payout.sent","payout.failed","payout.returned","return.initiated","return.submitted","return.sent","return.failed","return.returned","deposit.settled","conversion.created","conversion.completed","conversion.failed","account_holder.active","account_holder.closed","counterparty.pending","counterparty.active","counterparty.rejected","counterparty.blocked","counterparty.unblocked","counterparty.updated","payout_tracking_event.created","ping.test"],"description":"Event type."},"api_version":{"type":"string","description":"API version the event payload was rendered at. Stable across retries and redeliveries, and mirrored in the webhook envelope `api_version` field.","example":"2026-05-01"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"},"data":{"type":"object","additionalProperties":{},"description":"Event payload. Shape matches the resource schema for `event_type`."}},"required":["id","type","event_type","api_version","created_at","data"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"WebhookDeliveryResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the webhook delivery.","example":"550e8400-e29b-41d4-a716-44665544000a"},"type":{"type":"string","description":"Resource type discriminator.","enum":["webhook_delivery"]},"event_id":{"type":"string","format":"uuid","description":"Identifier of the event this delivery was for.","example":"550e8400-e29b-41d4-a716-446655440008"},"subscription_id":{"type":"string","format":"uuid","description":"Identifier of the webhook subscription this delivery targeted.","example":"550e8400-e29b-41d4-a716-446655440009"},"status":{"type":"string","enum":["pending","delivered","failed","processing","ignored"],"description":"Current status of the delivery."},"attempts":{"type":"array","items":{"type":"object","properties":{"attempted_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when this attempt resolved.","example":"2026-01-15T10:30:05Z"},"status":{"type":"string","enum":["pending","delivered","failed","processing","ignored"],"description":"Current status of the delivery."},"status_code":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code returned by the receiver for this attempt.","example":200}},"required":["attempted_at","status","status_code"],"additionalProperties":false},"description":"Ordered list of HTTP delivery attempts for this delivery."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the delivery was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the delivery was last updated.","example":"2026-01-15T10:35:00Z"}},"required":["id","type","event_id","subscription_id","status","attempts","created_at","updated_at"],"additionalProperties":false},"ListWebhookDeliveriesResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the webhook delivery.","example":"550e8400-e29b-41d4-a716-44665544000a"},"type":{"type":"string","description":"Resource type discriminator.","enum":["webhook_delivery"]},"event_id":{"type":"string","format":"uuid","description":"Identifier of the event this delivery was for.","example":"550e8400-e29b-41d4-a716-446655440008"},"subscription_id":{"type":"string","format":"uuid","description":"Identifier of the webhook subscription this delivery targeted.","example":"550e8400-e29b-41d4-a716-446655440009"},"status":{"type":"string","enum":["pending","delivered","failed","processing","ignored"],"description":"Current status of the delivery."},"attempts":{"type":"array","items":{"type":"object","properties":{"attempted_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when this attempt resolved.","example":"2026-01-15T10:30:05Z"},"status":{"type":"string","enum":["pending","delivered","failed","processing","ignored"],"description":"Current status of the delivery."},"status_code":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code returned by the receiver for this attempt.","example":200}},"required":["attempted_at","status","status_code"],"additionalProperties":false},"description":"Ordered list of HTTP delivery attempts for this delivery."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the delivery was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the delivery was last updated.","example":"2026-01-15T10:35:00Z"}},"required":["id","type","event_id","subscription_id","status","attempts","created_at","updated_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"ListScopesResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["scope"]},"id":{"type":"string","enum":["payouts:read","payouts:write","deposits:read","returns:read","returns:write","conversions:read","conversions:write","quotes:read","accounts:read","accounts:write","account_programs:read","account_holders:read","account_holders:write","counterparties:read","counterparties:write","webhook_subscriptions:read","webhook_subscriptions:write","events:read","webhook_deliveries:read","webhook_deliveries:write","transactions:read","simulations:write","payout_tracking_events:read"],"description":"Scope identifier in `resource:action` format."},"description":{"type":"string","description":"Human-readable description of the scope.","example":"Grants read access to payouts."},"resource":{"type":"string","description":"Resource the scope applies to.","example":"payouts"},"action":{"type":"string","enum":["read","write"],"description":"Action category."},"available_from":{"type":"string","description":"First API version that exposes this scope.","example":"2026-05-01"},"deprecated_in":{"type":"string","description":"API version in which this scope was deprecated; null if not deprecated.","example":null,"nullable":true}},"required":["type","id","description","resource","action","available_from","deprecated_in"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"ApiKeyResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["api_key"]},"id":{"type":"string","description":"Unique identifier of the API key.","example":"550e8400-e29b-41d4-a716-44665544000e"},"merchant_id":{"type":"string","description":"Identifier of the merchant the key belongs to.","example":"68e0a1b2c3d4e5f607182940"},"scopes":{"type":"array","items":{"type":"string","enum":["payouts:read","payouts:write","deposits:read","returns:read","returns:write","conversions:read","conversions:write","quotes:read","accounts:read","accounts:write","account_programs:read","account_holders:read","account_holders:write","counterparties:read","counterparties:write","webhook_subscriptions:read","webhook_subscriptions:write","events:read","webhook_deliveries:read","webhook_deliveries:write","transactions:read","simulations:write","payout_tracking_events:read"]},"description":"The effective set of scopes for this key. Stored aliases (e.g. `full_access`, `read_only`) are always expanded to concrete `resource:action` scopes against the current registry before they appear here."},"ip_allow_list":{"type":"array","items":{"type":"string"},"description":"IP addresses or CIDR ranges this key is permitted to authenticate from. An empty array means the key is not IP-restricted.","example":["203.0.113.0/24"]},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp at which this key expires. `null` if the key has no expiry.","example":"2027-01-15T10:30:00Z","nullable":true},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp at which this key was created.","example":"2026-01-15T10:30:00Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp of the last update to this key (e.g. roll, IP allowlist change, revoke). `null` if the key has not been updated since creation.","example":"2026-01-15T10:35:00Z","nullable":true},"api_version":{"type":"string","description":"Effective API version for the request (header value or merchant pin).","example":"2026-05-01"}},"required":["type","id","merchant_id","scopes","ip_allow_list","expires_at","created_at","updated_at","api_version"],"additionalProperties":false},"ListApiVersionsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["api_version"]},"name":{"type":"string","description":"Version identifier as sent in the `api-version` request header.","example":"2026-05-01"},"released_at":{"type":"string","format":"date-time","description":"When this version became publicly available, ISO 8601 UTC.","example":"2026-01-15T10:30:00Z"},"is_latest":{"type":"boolean","description":"True for the most recently published version. New accounts and unpinned merchants resolve to this version."},"deprecated_at":{"type":"string","format":"date-time","description":"When this version was marked deprecated, ISO 8601 UTC. Null if not deprecated.","nullable":true},"sunset_at":{"type":"string","format":"date-time","description":"When this version will stop being served, ISO 8601 UTC. Null if no sunset is scheduled.","nullable":true}},"required":["type","name","released_at","is_latest","deprecated_at","sunset_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"CreateDepositSimulationBodyDto":{"type":"object","properties":{"account_id":{"type":"string","format":"uuid","description":"ID of the account to credit with the simulated deposit."},"amount":{"type":"string","pattern":"^(0|[1-9]\\d*)(\\.\\d+)?$","description":"Amount as a decimal string in the account currency (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","enum":["EUR","GBP","USD","USDC"],"description":"Currency of the simulated deposit.","example":"USD"},"unstructured_remittance_information":{"description":"Unstructured remittance information attached to the transfer. Not all rails support this field.","example":"Invoice INV-2026-0042","type":"string","minLength":1},"counterparty":{"description":"Sender of the simulated deposit. Mutually exclusive with `counterparty_id`.","type":"object","properties":{"financial_address":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddressRequest"},{"$ref":"#/components/schemas/IbanFinancialAddressRequest"},{"$ref":"#/components/schemas/SortCodeFinancialAddressRequest"},{"$ref":"#/components/schemas/BicFinancialAddressRequest"},{"$ref":"#/components/schemas/CryptoWalletFinancialAddress"}],"description":"Financial address of the counterparty."},"physical_address":{"type":"object","properties":{"line_1":{"type":"string","description":"Primary street address.","example":"548 Market St"},"line_2":{"type":"string","description":"Secondary street address. Optional; omit or send null if not recorded.","example":"Apartment 4B","nullable":true},"city":{"type":"string","description":"City or locality.","example":"San Francisco"},"postal_code":{"type":"string","description":"Postal or ZIP code.","example":"94103"},"state":{"type":"string","description":"State, province, or region. Optional; omit or send null if not recorded.","example":"CA","nullable":true},"country_code":{"example":"US","description":"ISO 3166-1 alpha-2 country code.","$ref":"#/components/schemas/Alpha2Code"}},"required":["line_1","city","postal_code","country_code"],"additionalProperties":false,"description":"Physical address of the counterparty.","nullable":true}},"required":["financial_address"],"additionalProperties":false},"counterparty_id":{"description":"ID of an existing counterparty to use as the sender of the simulated deposit. Mutually exclusive with `counterparty`.","type":"string","format":"uuid"},"rail":{"description":"Payment rail the simulated deposit arrives on.","type":"string","enum":["sepa","sepa_instant","faster_payments","swift","ach","fedwire","ethereum","ethereum_sepolia","solana","solana_devnet","polygon","polygon_amoy"]}},"required":["account_id","amount","currency"],"additionalProperties":false},"DepositSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["deposit_simulation"]},"account_id":{"type":"string","format":"uuid","description":"Account receiving the simulated deposit."}},"required":["type","account_id"],"additionalProperties":false},"PayoutSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["payout_simulation"]},"payout_id":{"type":"string","format":"uuid","description":"Payout whose lifecycle is being simulated."}},"required":["type","payout_id"],"additionalProperties":false},"RejectPayoutSimulationBodyDto":{"type":"object","properties":{"reason":{"type":"string","enum":["invalid_routing_number","invalid_account_format"],"description":"Reason the sandbox provider rejects the payout. Use `invalid_routing_number` for domestic rails and `invalid_account_format` for a SWIFT correspondent rejecting on the beneficiary details."}},"required":["reason"],"additionalProperties":false},"ReturnPayoutSimulationBodyDto":{"type":"object","properties":{"reason":{"type":"string","enum":["account_closed","invalid_account_format","invalid_routing_number","account_blocked","unknown"],"description":"Reason the receiving bank returns the settled payout."}},"required":["reason"],"additionalProperties":false},"ReturnSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["return_simulation"]},"return_id":{"type":"string","format":"uuid","description":"Return whose lifecycle is being simulated."}},"required":["type","return_id"],"additionalProperties":false},"RejectReturnSimulationBodyDto":{"type":"object","properties":{"reason":{"type":"string","enum":["invalid_routing_number","invalid_account_format"],"description":"Reason the sandbox provider rejects the return. Use `invalid_routing_number` for domestic rails and `invalid_account_format` for a SWIFT correspondent rejecting on the beneficiary details."}},"required":["reason"],"additionalProperties":false},"ReturnOfReturnSimulationBodyDto":{"type":"object","properties":{"reason":{"type":"string","enum":["account_closed","invalid_account_format","invalid_routing_number","account_blocked","unknown"],"description":"Reason the receiving bank returns the sent return."}},"required":["reason"],"additionalProperties":false},"CreateAccountProgramSimulationBodyDto":{"type":"object","properties":{"label":{"type":"string","minLength":1,"description":"Human-readable label for the account program.","example":"Primary FBO program"},"type":{"type":"string","enum":["fbo_program","fbo_sponsored"],"description":"Account program type. Simulation supports FBO programs only."}},"required":["label","type"],"additionalProperties":false},"AccountProgramSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["account_program_simulation"]},"account_program_id":{"type":"string","format":"uuid","description":"Account program whose lifecycle is being simulated."}},"required":["type","account_program_id"],"additionalProperties":false},"CloseAccountProgramSimulationBodyDto":{"type":"object","properties":{"reason":{"type":"string","enum":["aml_risk_fraud","client_request"],"description":"Reason for closing the account program."}},"required":["reason"],"additionalProperties":false},"DrainAccountProgramSimulationBodyDto":{"type":"object","properties":{"destination":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddressRequest"},{"$ref":"#/components/schemas/IbanFinancialAddressRequest"},{"$ref":"#/components/schemas/SortCodeFinancialAddressRequest"}],"description":"Fiat financial address to which the residual balance of every frozen account under the program is drained."}},"required":["destination"],"additionalProperties":false},"AccountProgramDrainSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["account_program_simulation"]},"account_program_id":{"type":"string","format":"uuid","description":"Account program whose lifecycle is being simulated."},"payout_ids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Payouts created by the drain. Feed each id to `POST /v1/simulations/payouts/{id}/send` to settle."}},"required":["type","account_program_id","payout_ids"],"additionalProperties":false},"CreateAccountSimulationBodyDto":{"type":"object","properties":{"label":{"type":"string","minLength":1,"description":"Human-readable label for the operating account.","example":"Operating USD account"},"type":{"type":"string","enum":["operating"],"description":"Account type."}},"required":["label","type"],"additionalProperties":false},"AccountSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["account_simulation"]},"account_id":{"type":"string","format":"uuid","description":"Account whose lifecycle is being simulated."}},"required":["type","account_id"],"additionalProperties":false},"CloseAccountSimulationBodyDto":{"type":"object","properties":{"reason":{"type":"string","enum":["aml_risk_fraud","client_request"],"description":"Reason for closing the account."}},"required":["reason"],"additionalProperties":false},"DrainAccountSimulationBodyDto":{"type":"object","properties":{"destination":{"oneOf":[{"$ref":"#/components/schemas/AbaFinancialAddressRequest"},{"$ref":"#/components/schemas/IbanFinancialAddressRequest"},{"$ref":"#/components/schemas/SortCodeFinancialAddressRequest"}],"description":"Fiat financial address to which the residual balance of the frozen account is drained."}},"required":["destination"],"additionalProperties":false},"AccountDrainSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["account_simulation"]},"account_id":{"type":"string","format":"uuid","description":"Account whose lifecycle is being simulated."},"payout_id":{"type":"string","format":"uuid","description":"Payout created by the drain. Feed to `POST /v1/simulations/payouts/{id}/send` to settle."}},"required":["type","account_id","payout_id"],"additionalProperties":false},"ConversionSimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["conversion_simulation"]},"conversion_id":{"type":"string","format":"uuid","description":"Conversion whose execution is being simulated."}},"required":["type","conversion_id"],"additionalProperties":false},"CounterpartySimulationResourceDto":{"type":"object","properties":{"type":{"type":"string","description":"Resource type discriminator.","enum":["counterparty_simulation"]},"counterparty_id":{"type":"string","format":"uuid","description":"Counterparty whose verification is being simulated."}},"required":["type","counterparty_id"],"additionalProperties":false},"ListPayoutTrackingEventsResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the tracking event.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","description":"Resource type discriminator.","enum":["payout_tracking_event"]},"payout_id":{"type":"string","format":"uuid","description":"ID of the payout this event belongs to.","example":"550e8400-e29b-41d4-a716-446655440003"},"sequence":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"description":"Gap-free counter per payout, in the order Augustus recorded the events. A gap means you missed a recorded event, such as a dropped webhook. A sequence without gaps does not mean every network step was observed.","example":4,"minimum":0},"milestone":{"type":"string","enum":["initiated","submitted","sent","failed","returned","accepted","settled","forwarded","credited","rejected","returning","visibility_lost","other"],"description":"Normalized point in the payout journey. New values may be added.","example":"credited"},"scope":{"type":"string","enum":["network","end_to_end"],"description":"How far Augustus can follow the payout: end_to_end when the rail confirms the beneficiary credit, network when it only confirms settlement. New values may be added.","example":"end_to_end"},"source":{"type":"string","enum":["augustus","swift_gpi","other"],"description":"Where Augustus learned this step: augustus for steps Augustus records itself, swift_gpi for SWIFT gpi statuses, other for any other source. New values may be added.","example":"swift_gpi"},"is_terminal":{"type":"boolean","description":"Whether Augustus considers delivery finished. A later event, such as returned, can still follow."},"occurred_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the step happened. Null when the source has no timestamp. Can be out of order with sequence.","example":"2026-01-15T10:30:00Z","nullable":true},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when Augustus recorded the event.","example":"2026-01-15T10:35:00Z"},"institution":{"type":"object","properties":{"identifier":{"type":"object","properties":{"type":{"type":"string","description":"Identifier scheme. Only bic today.","enum":["bic"]},"value":{"type":"string","description":"ISO 9362 Bank Identifier Code (8 or 11 characters).","example":"CHASUS33XXX"}},"required":["type","value"],"additionalProperties":false,"description":"Identifier of the institution, typed by scheme."}},"required":["identifier"],"additionalProperties":false,"description":"Institution that acted on or reported this step. Null when unknown.","nullable":true},"network_status":{"type":"object","properties":{"code":{"type":"string","description":"Status code reported by the network, such as ACSP, ACSC, ACCC or RJCT.","example":"ACCC"},"reason_code":{"type":"string","description":"Reason code for the status, such as G000. Null when the network reports none.","example":"G000","nullable":true}},"required":["code","reason_code"],"additionalProperties":false,"description":"Raw network status. Null when the step has none.","nullable":true},"fee":{"type":"object","properties":{"amount":{"type":"string","description":"Fee amount as a string decimal (e.g. \"10.00\").","example":"10.00"},"currency":{"type":"string","description":"ISO 4217 currency code of the fee.","example":"USD"},"borne_by":{"type":"string","enum":["debtor","creditor","shared","other"],"description":"Who bears the charges under the payment charge agreement: debtor (OUR), creditor (BEN), shared (SHA), or other for any other agreement. New values may be added.","example":"shared"}},"required":["amount","currency","borne_by"],"additionalProperties":false,"description":"Fee deducted at this step. Null when none was reported.","nullable":true},"beneficiary_amount":{"type":"object","properties":{"amount":{"type":"string","description":"Credited amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","description":"ISO 4217 currency code of the credited amount.","example":"USD"}},"required":["amount","currency"],"additionalProperties":false,"description":"Amount credited to the beneficiary. Set only on a credited event, otherwise null.","nullable":true},"status_reason":{"type":"object","properties":{"code":{"type":"string","description":"Normalized reason code assigned by Augustus. New codes may be added.","example":"BENEFICIARY_ACCOUNT_CLOSED"},"description":{"type":"string","description":"Explanation of the reason code, written by Augustus.","example":"The beneficiary bank reported the account as closed."}},"required":["code","description"],"additionalProperties":false,"description":"Reason for the current state. Null when none applies.","nullable":true}},"required":["id","type","payout_id","sequence","milestone","scope","source","is_terminal","occurred_at","created_at","institution","network_status","fee","beneficiary_amount","status_reason"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true},"has_previous":{"type":"boolean"},"previous_cursor":{"type":"string","example":"eyJsYXN0X2lkIjoiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDA2In0","nullable":true}},"required":["data","has_more","next_cursor","has_previous","previous_cursor"],"additionalProperties":false},"PayoutTrackingEventResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the tracking event.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","description":"Resource type discriminator.","enum":["payout_tracking_event"]},"payout_id":{"type":"string","format":"uuid","description":"ID of the payout this event belongs to.","example":"550e8400-e29b-41d4-a716-446655440003"},"sequence":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"description":"Gap-free counter per payout, in the order Augustus recorded the events. A gap means you missed a recorded event, such as a dropped webhook. A sequence without gaps does not mean every network step was observed.","example":4,"minimum":0},"milestone":{"type":"string","enum":["initiated","submitted","sent","failed","returned","accepted","settled","forwarded","credited","rejected","returning","visibility_lost","other"],"description":"Normalized point in the payout journey. New values may be added.","example":"credited"},"scope":{"type":"string","enum":["network","end_to_end"],"description":"How far Augustus can follow the payout: end_to_end when the rail confirms the beneficiary credit, network when it only confirms settlement. New values may be added.","example":"end_to_end"},"source":{"type":"string","enum":["augustus","swift_gpi","other"],"description":"Where Augustus learned this step: augustus for steps Augustus records itself, swift_gpi for SWIFT gpi statuses, other for any other source. New values may be added.","example":"swift_gpi"},"is_terminal":{"type":"boolean","description":"Whether Augustus considers delivery finished. A later event, such as returned, can still follow."},"occurred_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the step happened. Null when the source has no timestamp. Can be out of order with sequence.","example":"2026-01-15T10:30:00Z","nullable":true},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when Augustus recorded the event.","example":"2026-01-15T10:35:00Z"},"institution":{"type":"object","properties":{"identifier":{"type":"object","properties":{"type":{"type":"string","description":"Identifier scheme. Only bic today.","enum":["bic"]},"value":{"type":"string","description":"ISO 9362 Bank Identifier Code (8 or 11 characters).","example":"CHASUS33XXX"}},"required":["type","value"],"additionalProperties":false,"description":"Identifier of the institution, typed by scheme."}},"required":["identifier"],"additionalProperties":false,"description":"Institution that acted on or reported this step. Null when unknown.","nullable":true},"network_status":{"type":"object","properties":{"code":{"type":"string","description":"Status code reported by the network, such as ACSP, ACSC, ACCC or RJCT.","example":"ACCC"},"reason_code":{"type":"string","description":"Reason code for the status, such as G000. Null when the network reports none.","example":"G000","nullable":true}},"required":["code","reason_code"],"additionalProperties":false,"description":"Raw network status. Null when the step has none.","nullable":true},"fee":{"type":"object","properties":{"amount":{"type":"string","description":"Fee amount as a string decimal (e.g. \"10.00\").","example":"10.00"},"currency":{"type":"string","description":"ISO 4217 currency code of the fee.","example":"USD"},"borne_by":{"type":"string","enum":["debtor","creditor","shared","other"],"description":"Who bears the charges under the payment charge agreement: debtor (OUR), creditor (BEN), shared (SHA), or other for any other agreement. New values may be added.","example":"shared"}},"required":["amount","currency","borne_by"],"additionalProperties":false,"description":"Fee deducted at this step. Null when none was reported.","nullable":true},"beneficiary_amount":{"type":"object","properties":{"amount":{"type":"string","description":"Credited amount as a string decimal (e.g. \"100.50\").","example":"100.50"},"currency":{"type":"string","description":"ISO 4217 currency code of the credited amount.","example":"USD"}},"required":["amount","currency"],"additionalProperties":false,"description":"Amount credited to the beneficiary. Set only on a credited event, otherwise null.","nullable":true},"status_reason":{"type":"object","properties":{"code":{"type":"string","description":"Normalized reason code assigned by Augustus. New codes may be added.","example":"BENEFICIARY_ACCOUNT_CLOSED"},"description":{"type":"string","description":"Explanation of the reason code, written by Augustus.","example":"The beneficiary bank reported the account as closed."}},"required":["code","description"],"additionalProperties":false,"description":"Reason for the current state. Null when none applies.","nullable":true}},"required":["id","type","payout_id","sequence","milestone","scope","source","is_terminal","occurred_at","created_at","institution","network_status","fee","beneficiary_amount","status_reason"],"additionalProperties":false}}},"security":[{"BearerAuth":[]}],"webhooks":{"payout.initiated":{"post":{"summary":"payout.initiated","x-mint":{"metadata":{"title":"payout.initiated","sidebarTitle":"payout.initiated"}},"description":"Sent when a payout is created and processing has started.","operationId":"webhook_payout_initiated","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["payout.initiated"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/PayoutResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"payout.submitted":{"post":{"summary":"payout.submitted","x-mint":{"metadata":{"title":"payout.submitted","sidebarTitle":"payout.submitted"}},"description":"Sent when a payout is submitted to the payment rail.","operationId":"webhook_payout_submitted","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["payout.submitted"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/PayoutResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"payout.sent":{"post":{"summary":"payout.sent","x-mint":{"metadata":{"title":"payout.sent","sidebarTitle":"payout.sent"}},"description":"Sent when a payout is accepted and sent on the payment rail.","operationId":"webhook_payout_sent","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["payout.sent"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/PayoutResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"payout.failed":{"post":{"summary":"payout.failed","x-mint":{"metadata":{"title":"payout.failed","sidebarTitle":"payout.failed"}},"description":"Sent when a payout has failed.","operationId":"webhook_payout_failed","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["payout.failed"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/PayoutResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"payout.returned":{"post":{"summary":"payout.returned","x-mint":{"metadata":{"title":"payout.returned","sidebarTitle":"payout.returned"}},"description":"Sent when a payout is returned after it was sent.","operationId":"webhook_payout_returned","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["payout.returned"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/PayoutResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"return.initiated":{"post":{"summary":"return.initiated","x-mint":{"metadata":{"title":"return.initiated","sidebarTitle":"return.initiated"}},"description":"Sent when a deposit return has been initiated.","operationId":"webhook_return_initiated","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["return.initiated"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ReturnResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"return.submitted":{"post":{"summary":"return.submitted","x-mint":{"metadata":{"title":"return.submitted","sidebarTitle":"return.submitted"}},"description":"Sent when a deposit return is submitted to the payment rail.","operationId":"webhook_return_submitted","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["return.submitted"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ReturnResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"return.sent":{"post":{"summary":"return.sent","x-mint":{"metadata":{"title":"return.sent","sidebarTitle":"return.sent"}},"description":"Sent when a deposit return has been sent.","operationId":"webhook_return_sent","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["return.sent"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ReturnResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"return.failed":{"post":{"summary":"return.failed","x-mint":{"metadata":{"title":"return.failed","sidebarTitle":"return.failed"}},"description":"Sent when a deposit return has failed.","operationId":"webhook_return_failed","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["return.failed"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ReturnResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"return.returned":{"post":{"summary":"return.returned","x-mint":{"metadata":{"title":"return.returned","sidebarTitle":"return.returned"}},"description":"Sent when a succeeded deposit return was reversed or returned.","operationId":"webhook_return_returned","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["return.returned"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ReturnResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"deposit.settled":{"post":{"summary":"deposit.settled","x-mint":{"metadata":{"title":"deposit.settled","sidebarTitle":"deposit.settled"}},"description":"Sent when a deposit is settled","operationId":"webhook_deposit_settled","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["deposit.settled"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/DepositResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"conversion.created":{"post":{"summary":"conversion.created","x-mint":{"metadata":{"title":"conversion.created","sidebarTitle":"conversion.created"}},"description":"Sent when a conversion is created and processing has started.","operationId":"webhook_conversion_created","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["conversion.created"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ConversionResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"conversion.completed":{"post":{"summary":"conversion.completed","x-mint":{"metadata":{"title":"conversion.completed","sidebarTitle":"conversion.completed"}},"description":"Sent when a conversion has completed successfully.","operationId":"webhook_conversion_completed","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["conversion.completed"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ConversionResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"conversion.failed":{"post":{"summary":"conversion.failed","x-mint":{"metadata":{"title":"conversion.failed","sidebarTitle":"conversion.failed"}},"description":"Sent when a conversion has failed.","operationId":"webhook_conversion_failed","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["conversion.failed"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/ConversionResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"account_holder.active":{"post":{"summary":"account_holder.active","x-mint":{"metadata":{"title":"account_holder.active","sidebarTitle":"account_holder.active"}},"description":"Sent when an account holder becomes active.","operationId":"webhook_account_holder_active","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["account_holder.active"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/AccountHolderResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"account_holder.closed":{"post":{"summary":"account_holder.closed","x-mint":{"metadata":{"title":"account_holder.closed","sidebarTitle":"account_holder.closed"}},"description":"Sent when an account holder is closed.","operationId":"webhook_account_holder_closed","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["account_holder.closed"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/AccountHolderResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"counterparty.pending":{"post":{"summary":"counterparty.pending","x-mint":{"metadata":{"title":"counterparty.pending","sidebarTitle":"counterparty.pending"}},"description":"Sent when a counterparty enters pending status.","operationId":"webhook_counterparty_pending","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["counterparty.pending"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/CounterpartyResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"counterparty.active":{"post":{"summary":"counterparty.active","x-mint":{"metadata":{"title":"counterparty.active","sidebarTitle":"counterparty.active"}},"description":"Sent when a counterparty becomes active.","operationId":"webhook_counterparty_active","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["counterparty.active"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/CounterpartyResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"counterparty.rejected":{"post":{"summary":"counterparty.rejected","x-mint":{"metadata":{"title":"counterparty.rejected","sidebarTitle":"counterparty.rejected"}},"description":"Sent when a counterparty verification is rejected.","operationId":"webhook_counterparty_rejected","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["counterparty.rejected"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/CounterpartyResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"counterparty.blocked":{"post":{"summary":"counterparty.blocked","x-mint":{"metadata":{"title":"counterparty.blocked","sidebarTitle":"counterparty.blocked"}},"description":"Sent when payments to and from a counterparty are blocked.","operationId":"webhook_counterparty_blocked","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["counterparty.blocked"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/CounterpartyResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"counterparty.unblocked":{"post":{"summary":"counterparty.unblocked","x-mint":{"metadata":{"title":"counterparty.unblocked","sidebarTitle":"counterparty.unblocked"}},"description":"Sent when a counterparty is unblocked.","operationId":"webhook_counterparty_unblocked","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["counterparty.unblocked"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/CounterpartyResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"counterparty.updated":{"post":{"summary":"counterparty.updated","x-mint":{"metadata":{"title":"counterparty.updated","sidebarTitle":"counterparty.updated"}},"description":"Sent when a counterparty's details are updated.","operationId":"webhook_counterparty_updated","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["counterparty.updated"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/CounterpartyResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"payout_tracking_event.created":{"post":{"summary":"payout_tracking_event.created","x-mint":{"metadata":{"title":"payout_tracking_event.created","sidebarTitle":"payout_tracking_event.created"}},"description":"Sent when a new tracking event is recorded for a payout.","operationId":"webhook_payout_tracking_event_created","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["payout_tracking_event.created"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/PayoutTrackingEventResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}},"ping.test":{"post":{"summary":"ping.test","x-mint":{"metadata":{"title":"ping.test","sidebarTitle":"ping.test"}},"description":"Sent when a merchant explicitly triggers a test delivery to one of their webhook subscriptions. Does not reflect any real business activity; handlers should short-circuit on this event type.","operationId":"webhook_ping_test","tags":["Webhook Events"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the event. Stable across retries.","example":"550e8400-e29b-41d4-a716-446655440008"},"type":{"type":"string","enum":["ping.test"],"description":"Event type in resource.action format."},"api_version":{"type":"string","description":"API version the payload was rendered at. Stable across retries and redeliveries.","example":"2026-05-01"},"payload":{"$ref":"#/components/schemas/PingResourceDto","description":"Full resource snapshot at the time of the event."},"date":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event was created.","example":"2026-01-15T10:30:00Z"}},"required":["id","type","api_version","payload","date"]}}}},"responses":{"200":{"description":"Event received successfully."}}}}}}