# Infinite Documentation > ## Agent Instructions > If you are an AI assistant operating Infinite for a user, read the skill first: https://docs.infinite.dev/agent-skill.md (setup per host, tool reference, rules for moving money, journeys). > When operating Infinite for a user, use the MCP server. Sign in at https://bot.api.infinite.dev/mcp (production, acts as the user) or send `Authorization: Bearer ` to https://bot.api.infinite.dev/mcp/sse. Prefer its tools over raw HTTP; use REST only for steps no tool covers, and check `get_endpoint_schema` before guessing a request shape. > Net-new Infinite Connect (org_connect) is operator-assisted: do not grant end users shared org_connect Auth Kit membership or the shared platform org API key — those credentials are org-wide on /v1. BYO org keys onboard under that customer's org id. Operator sessions should show org_connect in get_organization_info. > The key decides the tools. Every organization key (`sk_sandbox_…` / `sk_live_…`) gets docs, onboarding, `get_account_balance`, and request logs for your own organization. BYO organizations add payees an agent will pay with `create_payee` (payable once ACTIVE). Platform Connect sessions instead get bound-customer payment lookups (`get_quote`, `get_transfer`, `list_transfers`, `list_account_balances`), payee drafts (`create_payee_draft` / `get_payee_draft`; screening only, never payable), and transfer drafts that wait for Infinite approval (`create_transfer_draft` / `get_transfer_draft`; never POST /v1/transfers). Where offered, platform `create_transfer` files a real transfer that Infinite holds in review before funding; it cannot be submitted from DRAFT. > An agent key (`sk_sandbox_agent_…` / `sk_live_agent_…`) moves money within that agent's limits: `create_transfer` → `submit_transfer` → `wait_for_transfer`. > On sandbox organization-key sessions, `sandbox_approve_customer` (makes the capabilities you pass READY, and related ones may turn READY too; `request_capabilities` is not needed), `sandbox_fund_account`, and `sandbox_complete_transfer` stand in for verification, funding, and settlement, so a whole flow runs from MCP. BYO keys can pass `customerId` on each call without binding; platform sessions must bind a customer first (`create_business_customer` auto-binds, or send `X-Infinite-On-Behalf-Of`). > When searching documentation without a key, use the docs MCP at https://docs.infinite.dev/mcp. > Start in sandbox (https://sandbox.api.infinite.dev). Do not use production unless the user explicitly asks. > Confirm amount, currency, and payee with the user before any payment is submitted. Pass the invoice number as `reference` on `create_transfer`; the summary says what the payee will see. > REST amounts are integer minor units (`"4000"` = 40.00 USD). MCP payment tools take exact decimal strings (`"40.00"`). Never mix them. > Agent denials return `403 { denial: { code, message, window, limit, used, remaining, attemptedAmount, currency }, hint }` with decimal amounts; per-transfer denials omit `used` and `remaining`. Report them to the user; do not work around them. - [Welcome](https://docs.infinite.dev/welcome.md) - [Introduction](https://docs.infinite.dev/introduction.md) - [Quickstart](https://docs.infinite.dev/quickstart.md) - [Authentication](https://docs.infinite.dev/authentication.md) - [Agents](https://docs.infinite.dev/concepts/agents.md): Give an AI agent its own spending identity — a funded account, hard limits, an allowlist, and a key - [Customers](https://docs.infinite.dev/concepts/customers.md) - [Accounts](https://docs.infinite.dev/concepts/accounts.md): Infinite wallets (inw_ mailbox vs treasury vault), external wallets (ewa_ guards), virtual bank accounts, and why vwa_ is not a crypto deposit wallet - [Verification](https://docs.infinite.dev/concepts/verification.md) - [Transfers](https://docs.infinite.dev/concepts/transfers.md): One-off payments, shared deposit instructions, and when to use a unique fixed route - [Fixed Routes](https://docs.infinite.dev/concepts/fixed-routes.md): Standing deposit mailboxes that auto-sweep. Unique virtual bank accounts, USD balance credits, and crypto deposit wallets, plus sandbox simulate-deposit - [Cards (Coming Soon)](https://docs.infinite.dev/concepts/cards.md): Learn about our upcoming card issuing capabilities - [Quotes and Transfers](https://docs.infinite.dev/guides/quotes-and-transfers.md): Learn how to get currency conversion quotes and execute transfers - [Same-asset bridging](https://docs.infinite.dev/guides/same-asset-bridging.md): Move USDC or USDT between chains at par with a crypto-to-crypto transfer - [SWIFT Payouts](https://docs.infinite.dev/guides/swift-payouts.md): Accept crypto deposits and send fiat via SWIFT wire transfers - [Balance Accounts](https://docs.infinite.dev/guides/balance-accounts.md): Hold a USD balance: fund it by bank transfer, pay out to banks or convert to stablecoins - [Webhooks](https://docs.infinite.dev/guides/webhooks.md): Learn how to receive real-time notifications about events in your Infinite account - [MCP Server](https://docs.infinite.dev/guides/mcp.md): Connect AI assistants to the Infinite API using the Model Context Protocol - [Infinite skill for AI assistants](https://docs.infinite.dev/agent-skill.md): AI assistants read this first — setup per host, which key gets which tools, rules for moving money, and step-by-step journeys for operating Infinite for a user - [Idempotency](https://docs.infinite.dev/guides/idempotency.md): Safely retry API requests without duplicating actions - [Error handling](https://docs.infinite.dev/guides/error-handling.md) - [Overview](https://docs.infinite.dev/coverage/overview.md): Global coverage for payments, compliance, and identity verification - [Payments](https://docs.infinite.dev/coverage/payments.md): Global payment rails and stablecoin network coverage - [Identity Verification](https://docs.infinite.dev/coverage/identity.md): DocV and database verification coverage by region - [Compliance Services](https://docs.infinite.dev/coverage/compliance.md): eKYC, eKYB, sanctions screening, and regulatory compliance - [Introduction](https://docs.infinite.dev/api-reference/introduction.md) - [Create an agent](https://docs.infinite.dev/api-reference/agents/create-an-agent.md): Create an agent bound to an ACTIVE customer and one funding account. The agent has no credential until you issue a key. Requires a console session or an unconstrained organization key. - [Get an agent](https://docs.infinite.dev/api-reference/agents/get-an-agent.md) - [List agents](https://docs.infinite.dev/api-reference/agents/list-agents.md): Agents in your organization. An agent key sees only itself. - [Update an agent](https://docs.infinite.dev/api-reference/agents/update-an-agent.md): Change name, description, limits, destination allowlist, or pause / resume. customerId, sourceAccountId, and limits.currency are immutable — create a new agent to change them. Limit changes apply to the next transfer; active keys pick up allowlist changes immediately. - [Revoke an agent](https://docs.infinite.dev/api-reference/agents/revoke-an-agent.md): Sets status to REVOKED and revokes every key on the agent. Irreversible. Submitted transfers continue; new writes with its keys are denied. - [Get agent spend](https://docs.infinite.dev/api-reference/agents/get-agent-spend.md): Amount submitted in each limit window and what remains. Windows are UTC calendar day and month; DRAFT, FAILED, CANCELLED, and REVERSED transfers are excluded. - [Create an agent key](https://docs.infinite.dev/api-reference/agents/create-an-agent-key.md): Issue a credential that authenticates as this agent. The secret is returned once. Agent keys carry fixed scopes (transfers read/write, accounts read, customers read) and cannot manage agents or keys. - [List agent keys](https://docs.infinite.dev/api-reference/agents/list-agent-keys.md): Key metadata for this agent, never the secret. Agent keys cannot call this. - [Revoke an agent key](https://docs.infinite.dev/api-reference/agents/revoke-an-agent-key.md) - [Get all customers](https://docs.infinite.dev/api-reference/customers/get-all-customers.md) - [Get customer by ID](https://docs.infinite.dev/api-reference/customers/get-customer-by-id.md): Retrieve a customer by ID with optional expansion of related resources. - [Update customer details](https://docs.infinite.dev/api-reference/customers/update-customer-details.md) - [Get customer transfers](https://docs.infinite.dev/api-reference/customers/get-customer-transfers.md): Retrieve all transfers for a specific customer (as source or destination) - [Get customer treasury balances](https://docs.infinite.dev/api-reference/customers/get-customer-treasury-balances.md): Retrieve treasury balances grouped by treasury and wallet. Ideal for portfolio views showing accounts and sub-accounts. Transaction wallets are excluded. - [Get customer compliance requirements](https://docs.infinite.dev/api-reference/customers/get-customer-compliance-requirements.md): Verify that you have passed all required compliance information for a customer. Returns a merged list of missing requirements plus any active overlays. Use this endpoint to check what information is still needed before submitting verification. - [List unmatched deposits](https://docs.infinite.dev/api-reference/customers/list-unmatched-deposits.md): Returns pending deposits that could not be automatically matched to a transfer. These deposits are typically due to: wrong amount sent, multiple partial payments, or deposits to a wallet with no pending transfer. Treasury and transaction wallet deposits are excluded. Contact support to reconcile the… - [Create a new individual customer](https://docs.infinite.dev/api-reference/customers/create-a-new-individual-customer.md): Create an individual customer record without sending a polymorphic customer type in the request body. Use this endpoint to create INDIVIDUAL customers. - [Save individual customer verification](https://docs.infinite.dev/api-reference/customers/save-individual-customer-verification.md): Save complete individual verification data for an INDIVIDUAL customer. - [Submit customer for verification](https://docs.infinite.dev/api-reference/customers/submit-customer-for-verification.md): Submit a DRAFT customer for verification review. - [Create a new business customer](https://docs.infinite.dev/api-reference/customers/create-a-new-business-customer.md): Create a business customer record without sending a polymorphic customer type in the request body. Use this endpoint to create BUSINESS customers. - [Save business customer verification](https://docs.infinite.dev/api-reference/customers/save-business-customer-verification.md): Save complete business verification data for a BUSINESS customer. - [Create a new associated individual](https://docs.infinite.dev/api-reference/customers/create-a-new-associated-individual.md): Create an individual associated entity for a business customer using a flat request body. Use this endpoint for UBOs, control persons, and signers. - [Create a new associated business](https://docs.infinite.dev/api-reference/customers/create-a-new-associated-business.md): Create a business associated entity for a business customer using a flat request body. Use this endpoint for intermediate business owners in a nested ownership tree. After creating the business, create its child owners using the associated entity endpoints and set parentEntityId to the returned asso… - [Update an associated individual](https://docs.infinite.dev/api-reference/customers/update-an-associated-individual.md): Update an individual associated entity for a customer without sending polymorphic nested detail objects. - [Update an associated business](https://docs.infinite.dev/api-reference/customers/update-an-associated-business.md): Update a business associated entity for a customer without sending polymorphic nested detail objects. - [Generate verification link for associated entity](https://docs.infinite.dev/api-reference/customers/generate-verification-link-for-associated-entity.md): Generate a KYC verification link for an existing individual associated entity. If the entity already has an active verification session, the existing link is returned. If the session has expired, the expiry is reset and the refreshed link is returned. Only individual associated entities are supporte… - [Submit customer for verification](https://docs.infinite.dev/api-reference/customers/submit-customer-for-verification.md): Submit a DRAFT customer for verification review. - [Archive customer](https://docs.infinite.dev/api-reference/customers/archive-customer.md) - [Get customer capabilities](https://docs.infinite.dev/api-reference/customers/get-customer-capabilities.md): Returns the capabilities currently available, in review, or unavailable for a customer. IN_REVIEW and ACTIVE customers use the same capability mapping; READY is only published when the customer is ACTIVE. Provider-gated capabilities with no active provider path are omitted unless the customer reques… - [Get an associated entity by id and customer](https://docs.infinite.dev/api-reference/customers/get-an-associated-entity-by-id-and-customer.md): Retrieve details of a specific associated entity for a customer. If the entity has an active verification session, the `verificationLink` field will be populated. - [Delete an associated entity](https://docs.infinite.dev/api-reference/customers/delete-an-associated-entity.md): Remove an associated entity from a customer. - [Get all counterparties](https://docs.infinite.dev/api-reference/counterparties/get-all-counterparties.md): Lists counterparties for the organization. Counterparties are organization-scoped and may be linked to many customers through external accounts (many-to-many): the same counterparty can be paid by more than one customer. Use customerId to return only counterparties linked to that customer via an acc… - [Get counterparty by ID](https://docs.infinite.dev/api-reference/counterparties/get-counterparty-by-id.md) - [Create a counterparty](https://docs.infinite.dev/api-reference/counterparties/create-a-counterparty.md) - [Update a counterparty](https://docs.infinite.dev/api-reference/counterparties/update-a-counterparty.md) - [Delete a counterparty](https://docs.infinite.dev/api-reference/counterparties/delete-a-counterparty.md) - [Initiate ToS acceptance](https://docs.infinite.dev/api-reference/terms-of-service/initiate-tos-acceptance.md): Creates a ToS acceptance record with the agreement fields set to false or null. Returns an ID that must be used with the accept endpoint to complete the acceptance. This is the first step in a two-step process: first call initiate to get an ID, then call accept with that ID when the user actually ac… - [Accept Terms of Service](https://docs.infinite.dev/api-reference/terms-of-service/accept-terms-of-service.md): Updates an existing ToS acceptance record with the agreement acceptance fields and acceptance timestamp. This is the second step in the two-step process: you must first call initiate to get an ID, then call this endpoint with that ID when the user accepts the agreements. This endpoint captures IP ad… - [Get ToS acceptance status](https://docs.infinite.dev/api-reference/terms-of-service/get-tos-acceptance-status.md): Retrieves the status of a ToS acceptance record. - [Create a new webhook endpoint](https://docs.infinite.dev/api-reference/webhooks/create-a-new-webhook-endpoint.md): Create a new webhook endpoint to receive events. - [Get all webhook endpoints](https://docs.infinite.dev/api-reference/webhooks/get-all-webhook-endpoints.md): Retrieve all webhook endpoints configured for the organization. - [Update a webhook endpoint](https://docs.infinite.dev/api-reference/webhooks/update-a-webhook-endpoint.md): Update an existing webhook endpoint configuration. - [Delete a webhook endpoint](https://docs.infinite.dev/api-reference/webhooks/delete-a-webhook-endpoint.md): Delete a webhook endpoint. This action cannot be undone. - [Get webhook endpoint signing secret](https://docs.infinite.dev/api-reference/webhooks/get-webhook-endpoint-signing-secret.md): Returns the signing secret used to verify webhook signatures for this endpoint. - [Rotate webhook endpoint signing secret](https://docs.infinite.dev/api-reference/webhooks/rotate-webhook-endpoint-signing-secret.md): Generates a new signing secret for the endpoint. The previous secret stays valid for 24 hours so receivers can roll over without dropping deliveries. - [Get a webhook message](https://docs.infinite.dev/api-reference/webhooks/get-a-webhook-message.md): Returns a webhook message with its payload and per-endpoint delivery attempts. The message ID matches the webhook-id header on the delivery. - [List webhook messages](https://docs.infinite.dev/api-reference/webhooks/list-webhook-messages.md): Returns webhook messages sent to the organization, newest first. Scope to an endpoint with endpointId for per-endpoint delivery status and status filtering. Paginate with the iterator cursor returned by the previous page. Message history is retained for 90 days. - [Replay failed webhook deliveries](https://docs.infinite.dev/api-reference/webhooks/replay-failed-webhook-deliveries.md): Redelivers every failed delivery to the endpoint since a timestamp. Useful after an outage on your receiver. Runs asynchronously in the background. - [Resend a webhook message](https://docs.infinite.dev/api-reference/webhooks/resend-a-webhook-message.md): Redelivers an existing webhook message with its original payload. Defaults to every enabled endpoint subscribed to the event type; pass endpointId to target a single endpoint. - [Get all accounts](https://docs.infinite.dev/api-reference/accounts/get-all-accounts.md): Returns all accounts across all customers in the organization. Use holdsBalance=true to list balance accounts. - [Get accounts by customer](https://docs.infinite.dev/api-reference/accounts/get-accounts-by-customer.md): Returns all accounts for a specific customer. Use holdsBalance=true to list balance accounts. - [Get account by ID](https://docs.infinite.dev/api-reference/accounts/get-account-by-id.md): Retrieve an account by ID with optional expansion of related resources. - [Get virtual accounts by account](https://docs.infinite.dev/api-reference/accounts/get-virtual-accounts-by-account.md): Returns all virtual accounts (virtual bank accounts or virtual wallets) that sweep to the specified account. This endpoint returns virtual accounts where the specified account is the sweep target. - [Get account transfer history](https://docs.infinite.dev/api-reference/accounts/get-account-transfer-history.md): Retrieves transfers where this account is the source, the destination, or the account credited when a settled payout was returned. Returned payouts are ordered by the return time. - [Get account balance](https://docs.infinite.dev/api-reference/accounts/get-account-balance.md): Returns the balance of a balance account: funds available to pay out and funds committed to in-flight payouts. Only available for accounts with holdsBalance=true. - [Get balance transactions](https://docs.infinite.dev/api-reference/accounts/get-balance-transactions.md): Returns the transaction history of a balance account: deposit credits, payout debits, and reversals, newest-first with cursor pagination. - [Get monthly account statement](https://docs.infinite.dev/api-reference/accounts/get-monthly-account-statement.md): Returns monthly activity for balance accounts, virtual accounts, and virtual addresses. Balance accounts are ledger-backed. Virtual accounts and addresses are pass-through: each completed transfer appears as an in-leg and an out-leg. - [Get monthly non-balance account statement](https://docs.infinite.dev/api-reference/accounts/get-monthly-non-balance-account-statement.md): Returns a combined monthly statement for a customer's virtual accounts and virtual addresses. Each completed transfer appears as an in-leg and an out-leg. Balance accounts are excluded — use GET /v1/accounts/{id}/statement for those. - [Create an external account](https://docs.infinite.dev/api-reference/external-bank-accounts/create-an-external-account.md): Create an external account for bank transfers or proxy-based payments. - [Update an external account](https://docs.infinite.dev/api-reference/external-bank-accounts/update-an-external-account.md): Update mutable fields on an existing external bank account. - [Validate and enrich bank code](https://docs.infinite.dev/api-reference/external-bank-accounts/validate-and-enrich-bank-code.md): Validate a bank code for a specific payment network and retrieve enriched bank information. - [Close an external account](https://docs.infinite.dev/api-reference/external-bank-accounts/close-an-external-account.md): Closes an active external account. Accounts still in review cannot be closed. The account can no longer be used as a transfer or FX destination, and linked fixed routes are disabled. Creating an external account later with the same bank details or proxy alias reopens this account with the same ID. D… - [Create an external wallet](https://docs.infinite.dev/api-reference/external-wallets/create-an-external-wallet.md): Create an external wallet for a customer. This is an asynchronous flow. - [Update an external wallet](https://docs.infinite.dev/api-reference/external-wallets/update-an-external-wallet.md) - [List documents](https://docs.infinite.dev/api-reference/documents/list-documents.md): Get all documents for the organization, optionally filtered by customer or transfer. - [Create document upload request](https://docs.infinite.dev/api-reference/documents/create-document-upload-request.md): Create an upload request for a document. Returns a signed URL for direct upload to storage. - [Confirm document upload](https://docs.infinite.dev/api-reference/documents/confirm-document-upload.md): Confirm that a document has been uploaded to the signed URL. - [Get document by ID](https://docs.infinite.dev/api-reference/documents/get-document-by-id.md): Get a specific document with its details and download URL. - [Archive document](https://docs.infinite.dev/api-reference/documents/archive-document.md): Archive a document. Archived documents are not returned in list queries. - [Create a quote](https://docs.infinite.dev/api-reference/quotes/create-a-quote.md): Create a quote. Use the Idempotency-Key header to prevent duplicate creation. - [Get a quote by ID](https://docs.infinite.dev/api-reference/quotes/get-a-quote-by-id.md) - [Initiate a new verification](https://docs.infinite.dev/api-reference/verification/initiate-a-new-verification.md): Creates a new verification session. - [Get session configuration](https://docs.infinite.dev/api-reference/verification/get-session-configuration.md) - [Get customer verification status](https://docs.infinite.dev/api-reference/verification/get-customer-verification-status.md) - [List fixed routes for a customer](https://docs.infinite.dev/api-reference/customers/list-fixed-routes-for-a-customer.md): Returns all fixed routes (virtual bank accounts and virtual wallets) configured for a customer. - [Get a fixed route by ID](https://docs.infinite.dev/api-reference/fixed-routes/get-a-fixed-route-by-id.md): Returns details of a specific fixed route. - [Validate if a fixed route can be created](https://docs.infinite.dev/api-reference/fixed-routes/validate-if-a-fixed-route-can-be-created.md): Checks if a fixed route configuration is valid before creating it. Returns validation result with any errors. - [Create a virtual bank account fixed route](https://docs.infinite.dev/api-reference/fixed-routes/create-a-virtual-bank-account-fixed-route.md): Creates a virtual bank account that automatically sweeps fiat deposits. Route type (FIAT_TO_CRYPTO, FIAT_TO_FIAT, or FIAT_TO_CRYPTO_TO_FIAT) is inferred from the sweep target account type. Set depositMatching to DEDICATED for a unique account number, or REFERENCE for a shared account number plus a p… - [Create a virtual wallet fixed route](https://docs.infinite.dev/api-reference/fixed-routes/create-a-virtual-wallet-fixed-route.md): Creates an Infinite Wallet (`inw_`, wallet type VIRTUAL) that automatically sweeps crypto deposits. This is a dedicated deposit mailbox, not a treasury vault and not a `vwa_` virtual wallet. Route type (CRYPTO_TO_FIAT or CRYPTO_TO_CRYPTO) is inferred from the sweep target. Use the Idempotency-Key he… - [Update a fixed route](https://docs.infinite.dev/api-reference/fixed-routes/update-a-fixed-route.md): Updates a fixed route configuration. Supports updating fees, refund address, enabled status, metadata, and the sweep target account. Changing the sweep target keeps the same deposit address; the change is rejected while the route has transfers in flight, and transfers already created keep the destin… - [List transfers](https://docs.infinite.dev/api-reference/transfers/list-transfers.md) - [Create a new transfer](https://docs.infinite.dev/api-reference/transfers/create-a-new-transfer.md): Create a new transfer. Use the Idempotency-Key header to prevent duplicate creation. - [Get transfer by ID](https://docs.infinite.dev/api-reference/transfers/get-transfer-by-id.md): Retrieve a transfer by ID with optional expansion of related resources. - [Request transfer cancellation](https://docs.infinite.dev/api-reference/transfers/request-transfer-cancellation.md): Cancel a transfer. If it has not received funds, it becomes CANCELLED. If the transfer is already in review, crypto has been received, and the payout has not been sent, it becomes CANCELLED (funds stay on the deposit wallet) or REVERSED (crypto is sent to the configured refund address). If funds are… - [Fund transfer from Infinite Wallet balance](https://docs.infinite.dev/api-reference/transfers/fund-transfer-from-infinite-wallet-balance.md): Fund a pending transfer from an Infinite Wallet balance. The funding customer does NOT need to be the transfer source customer, as long as they belong to the same organization. This allows for scenarios where one customer funds a transfer on behalf of another (e.g., treasury account funding on behal… - [Submit transfer for processing](https://docs.infinite.dev/api-reference/transfers/submit-transfer-for-processing.md): Submit a DRAFT transfer for processing. - [Update transfer details](https://docs.infinite.dev/api-reference/transfers/update-transfer-details.md): Update a DRAFT transfer's details before submission. - [List transfer documents](https://docs.infinite.dev/api-reference/transfers/list-transfer-documents.md): List customer-visible supporting documents attached to a transfer. - [Confirm a transfer quote](https://docs.infinite.dev/api-reference/transfers/confirm-a-transfer-quote.md) - [Quote a transfer intent](https://docs.infinite.dev/api-reference/transfers/quote-a-transfer-intent.md): Creates a canonical transfer quote. Locked quotes include an opaque confirmation reference. - [Confirm an unlocked transfer intent](https://docs.infinite.dev/api-reference/transfers/confirm-an-unlocked-transfer-intent.md): Creates a transfer from a previewed corridor that cannot lock a firm quote. - [Approve or decline an agent payment](https://docs.infinite.dev/api-reference/transfers/approve-or-decline-an-agent-payment.md): Decide on an agent's draft that went over its spend limits. Only agents created with `overLimitAction: REQUEST_APPROVAL` produce these: the agent's submit returns `403 agent_approval_required` and the draft waits with `agentApprovalStatus: PENDING` (list them with `GET /v1/transfers?agentApprovalSta… - [Get current organization details](https://docs.infinite.dev/api-reference/organizations/get-current-organization-details.md) - [Update current organization details](https://docs.infinite.dev/api-reference/organizations/update-current-organization-details.md) - [Get configuration for current organization](https://docs.infinite.dev/api-reference/organizations/get-configuration-for-current-organization.md): Returns the organization configuration including per-network addresses for fee payouts and refunds. Each address includes an isDefault flag indicating if it uses the treasury wallet. - [Update configuration for current organization](https://docs.infinite.dev/api-reference/organizations/update-configuration-for-current-organization.md): Update per-network fee payout addresses and/or refund account IDs. Set a refund account to null or empty string to fall back to the organization treasury wallet. - [Create a child organization](https://docs.infinite.dev/api-reference/organizations/create-a-child-organization.md): Creates a one-level child under a top-level parent. Requires the child-organizations feature flag. Does not add the creator as a member. - [List organizations in the caller data-access scope](https://docs.infinite.dev/api-reference/organizations/list-organizations-in-the-caller-data-access-scope.md): Paginated, searchable list of organizations the caller can access (self, own subtree, or delegated oversight). Parent orgs use this instead of admin directory endpoints. - [Health check](https://docs.infinite.dev/api-reference/health/health-check.md): Reports whether the platform is currently serving traffic, so callers can route payments elsewhere while we are impaired. Safe to poll — checks are cached for a few seconds and require no authentication. Failover on `status` rather than the HTTP code alone: a `degraded` response is still `200` becau… - [Set customer verification status](https://docs.infinite.dev/api-reference/sandbox/set-customer-verification-status.md): Set the verification status of a customer to any status for testing purposes. This endpoint is only available in the sandbox environment and allows you to simulate different verification states. - [Set transfer leg status](https://docs.infinite.dev/api-reference/sandbox/set-transfer-leg-status.md): Simulate a transfer leg completing, failing, or progressing. The parent transfer status will automatically update based on leg states. This is useful for testing webhook integrations and transfer state transitions. - [Simulate transfer lifecycle](https://docs.infinite.dev/api-reference/sandbox/simulate-transfer-lifecycle.md): Advance a sandbox transfer through realistic flow stages, creating legs, updating transfer status, and emitting webhooks/events. Completing the simulation also posts the corresponding balance movements for balance-backed accounts: the source balance is debited and a stablecoin balance destination is… - [Simulate account funding](https://docs.infinite.dev/api-reference/sandbox/simulate-account-funding.md): Simulate inbound funding for a sandbox funding-method account (`vba_` for virtual bank accounts, including USD balance accounts; `vwa_` for virtual wallets; `pba_` for stablecoin balance accounts) using a requested rail. - [Simulate a fixed-route source deposit](https://docs.infinite.dev/api-reference/sandbox/simulate-a-fixed-route-source-deposit.md): Sandbox-only: triggers the fixed-route sweep without on-chain funds or provider webhooks. Works for fiat (`vba_`) and crypto (`inw_`) source routes. Does not use account fund-in -- Infinite wallets cannot be credited that way. When the sweep target is a treasury Infinite wallet and the destination i… - [Simulate customer capabilities](https://docs.infinite.dev/api-reference/sandbox/simulate-customer-capabilities.md): Make the requested capabilities READY for a sandbox customer by simulating the underlying approvals, without running real onboarding. The customer must already be ACTIVE (see the customer status endpoint). Emits the same capability webhooks as production. Simulating USD_BALANCE also approves externa… - [Release a sandbox fixed-route account number](https://docs.infinite.dev/api-reference/sandbox/release-a-sandbox-fixed-route-account-number.md): Sandbox only. Disables the fixed route if it is still enabled, then parks its bank account number so the next pay-in for this customer reuses it instead of issuing a new one. In-flight transfers must finish or be cancelled first. Disabling the route alone does not free the account-number quota. - [Get customer RFI](https://docs.infinite.dev/api-reference/rfis/get-customer-rfi.md) - [List customer RFIs](https://docs.infinite.dev/api-reference/rfis/list-customer-rfis.md) - [List RFIs](https://docs.infinite.dev/api-reference/rfis/list-rfis.md) - [Confirm customer RFI document upload](https://docs.infinite.dev/api-reference/rfis/confirm-customer-rfi-document-upload.md): Authenticated confirm after PUT to the signed upload URL for a Case RFI document. - [Create customer RFI document upload request](https://docs.infinite.dev/api-reference/rfis/create-customer-rfi-document-upload-request.md): Authenticated customer-scoped upload request for Case RFI documents. Verifies the RFI belongs to the customer, then returns a signed upload URL. - [Submit customer RFI response](https://docs.infinite.dev/api-reference/rfis/submit-customer-rfi-response.md): Authenticated submit for a Case RFI after field answers and/or document uploads. - [Create a firm FX quote](https://docs.infinite.dev/api-reference/fx/create-a-firm-fx-quote.md): Always firm — consumes one vendor quote and persists a Quote row. Pass an `Idempotency-Key` header to make retries safe (returns the original response on replay). - [Accept a firm FX quote and create a trade](https://docs.infinite.dev/api-reference/fx/accept-a-firm-fx-quote-and-create-a-trade.md) - [Get an indicative FX rate for a pair](https://docs.infinite.dev/api-reference/fx/get-an-indicative-fx-rate-for-a-pair.md): Returns an indicative (cached, ~30s-fresh) mid-market reference rate with the calling organization’s spread applied. Use this for browse/UX surfaces. This endpoint takes no amount — per-corridor amount limits apply only when committing to a firm price via `POST /v1/fx/quotes`. - [Read an FX trade](https://docs.infinite.dev/api-reference/fx/read-an-fx-trade.md) - [List FX pairs enabled for the organization](https://docs.infinite.dev/api-reference/fx/list-fx-pairs-enabled-for-the-organization.md): Returns the currency pairs the calling organization can quote on. Backs customer-facing pickers so they only offer corridors the org has configured. The response is cached server-side for ~30s. - [Simulate the deposit for an FX trade (sandbox only)](https://docs.infinite.dev/api-reference/fx/simulate-the-deposit-for-an-fx-trade-sandbox-only.md): Sandbox only — always returns 403 in production. Simulates the deposit arriving for a trade in `AWAITING_DEPOSIT`, standing in for the on-chain transfer (crypto-source) or the bank wire (fiat-source, which cannot be sent in sandbox). The trade then advances through its normal lifecycle asynchronousl… - [Simulate the payout for an FX trade (sandbox only)](https://docs.infinite.dev/api-reference/fx/simulate-the-payout-for-an-fx-trade-sandbox-only.md): Sandbox only — always returns 403 in production. Simulates the payout completing for a trade in `PROCESSING` (deposit already settled), driving it to `COMPLETED` through its normal lifecycle asynchronously: poll `GET /v1/fx/trades/{tradeId}` or subscribe to FX trade webhooks to observe the transitio… - [Create a balance account](https://docs.infinite.dev/api-reference/balance-accounts/create-a-balance-account.md): Creates a USD account that holds a balance. Use product STANDARD (default) for a fiat hold funded by bank transfer, or YIELD for a reserve-backed hold that can earn configurable yield. Pay out by creating a transfer sourced from this account. Requires the matching customer capability (USD_BALANCE or… - [Close a balance account](https://docs.infinite.dev/api-reference/balance-accounts/close-a-balance-account.md): Closes a balance account. The available balance must be zero and no payouts may be in flight — pay out any remaining funds first. After closing, the account no longer accepts deposits and (for STANDARD accounts that shared deposit coordinates) the customer can be issued bank pay-in fixed routes agai… - [Create a stablecoin balance account](https://docs.infinite.dev/api-reference/balance-accounts/create-a-stablecoin-balance-account.md): Creates a provider-held stablecoin balance account. Supports USDT and USDC across their available networks. Use this account as the destination of an eligible fiat-to-crypto fixed route and as the funding source for Global Payouts. - [Cancel a global payout batch](https://docs.infinite.dev/api-reference/global-payout-batches/cancel-a-global-payout-batch.md): Cancel a DRAFT or PENDING_APPROVAL global payout batch. No child transfers are created after cancellation. - [Confirm a global payout batch](https://docs.infinite.dev/api-reference/global-payout-batches/confirm-a-global-payout-batch.md): Move a DRAFT global payout batch to PENDING_APPROVAL for review. - [Create a global payout batch](https://docs.infinite.dev/api-reference/global-payout-batches/create-a-global-payout-batch.md): Create a global payout batch. Supports USDT and USDC across their available networks (USDT on Ethereum, Arbitrum, Polygon, Solana, Tron; USDC on Ethereum, Base, Arbitrum, Polygon, Solana). Defaults to DRAFT unless `confirm` is true (PENDING_APPROVAL). Use Idempotency-Key to prevent duplicates. - [Get a global payout batch](https://docs.infinite.dev/api-reference/global-payout-batches/get-a-global-payout-batch.md) - [List global payout batches](https://docs.infinite.dev/api-reference/global-payout-batches/list-global-payout-batches.md) - [Draw USDC credit into Solana treasury](https://docs.infinite.dev/api-reference/liquidity/draw-usdc-credit-into-solana-treasury.md): Draws into the configured payout treasury. Requires `Idempotency-Key` so retries cannot double-borrow. - [Get a credit line position](https://docs.infinite.dev/api-reference/liquidity/get-a-credit-line-position.md) - [Get credit line facility](https://docs.infinite.dev/api-reference/liquidity/get-credit-line-facility.md) - [List credit line positions](https://docs.infinite.dev/api-reference/liquidity/list-credit-line-positions.md) - [Pay back a credit line position](https://docs.infinite.dev/api-reference/liquidity/pay-back-a-credit-line-position.md) - [Update credit line payout treasury](https://docs.infinite.dev/api-reference/liquidity/update-credit-line-payout-treasury.md) - [Create a payment outcome intent](https://docs.infinite.dev/api-reference/payment-outcome-intents/create-a-payment-outcome-intent.md): Record the business outcome (e.g. run payroll) separate from payee/transfer drafts. Outcome text and requester are immutable. - [Get a payment outcome intent](https://docs.infinite.dev/api-reference/payment-outcome-intents/get-a-payment-outcome-intent.md) - [Link a Lane A draft to an intent](https://docs.infinite.dev/api-reference/payment-outcome-intents/link-a-lane-a-draft-to-an-intent.md): Associate Lane A drafts while the intent is OPEN. Payee drafts (`eba_…`) are verified via account ownership. Transfer drafts (`tdraft_…`) require the MCP claim snapshot from `get_transfer_draft` (not AccountsService lookup). - [Get a transfer draft approval record](https://docs.infinite.dev/api-reference/transfer-drafts/get-a-transfer-draft-approval-record.md): Returns the platform approval status for a registered MCP transfer draft owned by the caller organization. - [Register a transfer draft for platform approval](https://docs.infinite.dev/api-reference/transfer-drafts/register-a-transfer-draft-for-platform-approval.md): Registers an MCP transfer draft (`tdraft_…`) as pending platform approval. Customer must belong to the caller organization. Idempotent for the same draftId + draftHash. Does not move money. - [Evaluate a mandate against a sealed plan or draft proposal](https://docs.infinite.dev/api-reference/mandates/evaluate-a-mandate-against-a-sealed-plan-or-draft-proposal.md): Fail-closed spend-policy check. Prefer sealedPlan from an APPROVED payment outcome intent. Draft proposals support pre-approve mocks (ENG-2007 wires draft create). Does not move money and does not auto-execute. - [Get a mandate](https://docs.infinite.dev/api-reference/mandates/get-a-mandate.md) - [List mandates for a customer](https://docs.infinite.dev/api-reference/mandates/list-mandates-for-a-customer.md): Returns spend-policy mandates scoped to the Connect customer. Lane A mocks against this list + evaluate. - [Generate hosted ToS acceptance link](https://docs.infinite.dev/api-reference/terms-of-service/generate-hosted-tos-acceptance-link.md): Creates a ToS acceptance record for the customer and returns a hosted verify URL for a human to complete agreements. The agent or API integration must not call the accept endpoint on the human’s behalf. - [Get hosted ToS page context](https://docs.infinite.dev/api-reference/terms-of-service/get-hosted-tos-page-context.md): Returns non-PII context for the verify-web hosted ToS acceptance page. ## OpenAPI Specs - [openapi](/api-reference/openapi.json) ## Optional - [Console](https://console.infinite.dev)