# Infinia API Documentation
> Documentation for Infinia API
## Guides: Documentation
- [Testing in Sandbox](https://docs.infiniaweb.com/docs/sandbox-testing.md): Use magic values in the sandbox to simulate deposits, successful payouts, failures and other scenarios without moving real funds.
- [Postman Collections](https://docs.infiniaweb.com/docs/postman-collections.md): Explore and test every Infinia API product with ready-to-use Postman collections.
- [Products Overview](https://docs.infiniaweb.com/docs/products-overview.md): Explore Infinia's money movement and compliance products, and find the one that fits each part of your flow.
- [Virtual Accounts](https://docs.infiniaweb.com/docs/virtual-accounts-1.md): Learn what you need to open virtual accounts through Infinia: the account structure, the account owner behind each account, and the requirements of each country.
- [Integration Model](https://docs.infiniaweb.com/docs/integration-model.md): Understand the company, sub-company and account hierarchy, and choose the right structure for your integration.
- [Account Capabilities](https://docs.infiniaweb.com/docs/account-capabilities.md): Learn which account owners can open an account in each currency, and which payin and payout types are available to them.
- [Transaction Limits](https://docs.infiniaweb.com/docs/transaction-limits.md): Learn the default monthly transaction limits per currency and account owner type, how to check an account's usage, and how to request a limit increase.
- [Fund Flows](https://docs.infiniaweb.com/docs/fund-flows.md): Learn which fund flow patterns Infinia supports for on-ramp and off-ramp operations, with self-use and third-party accounts.
- [Operation IDs and Movements](https://docs.infiniaweb.com/docs/operation-ids-and-movements.md): Learn which IDs Infinia returns for each operation and how to match an operation to the movement on your account statement.
- [Account Owners](https://docs.infiniaweb.com/docs/account-owner.md): Learn how to create the account owner behind a named account with each KYC mode, and how to upload supporting documents.
- [KYC Requirements by Country](https://docs.infiniaweb.com/docs/kyc-requirements-by-country.md): Learn which account owner data and documents you need to open a virtual account in each currency, and how to provide them with each KYC mode.
- [Account Statuses](https://docs.infiniaweb.com/docs/account-statuses.md): Learn what each account status means, how an account moves between them, and which operations are available in each status.
- [Payins](https://docs.infiniaweb.com/docs/payins.md): Collect one-time payments with a fixed amount and expiration time through dynamic funding instructions.
- [Payouts](https://docs.infiniaweb.com/docs/payouts.md): Send one-time transfers from a virtual account to external bank accounts or crypto wallets.
- [Internal Transfers](https://docs.infiniaweb.com/docs/internal-transfers.md): Move funds between Infinia virtual accounts, in the same currency or across currencies with FX quotes and rate locking.
- [Bank Account Validation](https://docs.infiniaweb.com/docs/bank-account-validation.md): Validate that a bank account is active and verify its ownership before moving funds.
- [Identity Validation](https://docs.infiniaweb.com/docs/identity-validation.md): Verify the identity of individuals and businesses against official sources for compliance and fraud prevention.
- [Onboarding](https://docs.infiniaweb.com/docs/onboarding.md): Programmatically onboard your customers into the Infinia platform, run KYB, and request product access on their behalf.
- [Geographies and Currencies](https://docs.infiniaweb.com/docs/geographies-and-currencies.md): See where Infinia virtual accounts are available, which stablecoins and networks Infinia supports, and which currencies you can convert between.
- [Fiat Virtual Accounts](https://docs.infiniaweb.com/docs/virtual-accounts.md): See the countries, currencies and payment rails where Infinia virtual accounts are available, and the funding instructions payers receive for each.
- [Stablecoins](https://docs.infiniaweb.com/docs/cryptocurrencies.md): See the stablecoins Infinia supports, the networks and contract addresses for each, and the currency code that identifies them in the API.
- [Supported Currency & Stablecoin Pairs](https://docs.infiniaweb.com/docs/supported-currency-stablecoin-pairs.md): Find the currency pairs you can convert between, across fiat currencies and stablecoins, in both directions (for example, MXN ↔ USDC_POL).
- [Argentina: Credit & Debit Tax](https://docs.infiniaweb.com/docs/argentina-credit-debit-tax.md): Learn how Argentina's tax on credits and debits applies to payins and payouts, depending on who sends and who receives the funds.
## Guides: MCP Server
- [MCP](https://docs.infiniaweb.com/docs/mcp.md): Connect AI code editors and assistants to the Infinia API with the Infinia MCP server.
## API Reference: Getting started
- [📩 Webhooks](https://docs.infiniaweb.com/reference/getting-started-webhooks.md): Receive signed notifications when your operations change, verify them, and handle retries and duplicate deliveries.
- [📘 Developer Handbook](https://docs.infiniaweb.com/reference/introduction.md): Learn the conventions that apply across every Infinia API: asynchronous operations, webhooks, idempotency and pagination.
- [🔐 Authentication](https://docs.infiniaweb.com/reference/authentication.md): Authenticate API requests with HTTP Basic authentication and act on behalf of your child companies.
- [📄 Pagination](https://docs.infiniaweb.com/reference/pagination.md): Page through list endpoints with cursor-based pagination, using the limit and cursor parameters.
- [🔁 Handling Failures and Recovering Transactions](https://docs.infiniaweb.com/reference/handling-failures.md): Retry requests safely with idempotency keys and recover operations whose outcome you don't know, without duplicates or data loss.
## API Reference: Payins
- Payins
- [Create Payment](https://docs.infiniaweb.com/reference/v1_create_payment__post.md): Create a one-time payment instruction with a fixed amount and expiration. To test different scenarios for each market and payment rail, please refer to the Examples tab on the right side of the…
- [List Payments](https://docs.infiniaweb.com/reference/v1_list_payments__get.md): Retrieve a paginated list of payins.
- [Get Payment Details](https://docs.infiniaweb.com/reference/v1_get_payment__id___get.md): Retrieve details of a payin.
- [Refund Payment](https://docs.infiniaweb.com/reference/v1_6_refund_payment.md): Create a refund for a payin. Only completed payins are eligible for refunds. A refund may still fail after being initially marked as `SUCCESS`; in such cases, you'll receive a callback with `status…
- [List Payment Refunds](https://docs.infiniaweb.com/reference/v1_7_list_payin_refunds.md): Retrieve a list of payin refunds.
- Webhooks
- [Payin updated](https://docs.infiniaweb.com/reference/v1_webhook_payin_updated.md): Sent when a payin changes status (`AWAITING` → `COMPLETED`, `ERROR`, `EXPIRED`, etc.). Set the destination URL using `callbackUrl` when creating the payment. The body is identical to the [Get…
- [Payin refund updated](https://docs.infiniaweb.com/reference/v1_webhook_payin_refund_updated.md): Sent when a payin refund changes status. The body is identical to the [List Payin Refunds](ref:v1_7_list_payin_refunds) item response.
## API Reference: Payouts
- Payouts
- [Create Payout](https://docs.infiniaweb.com/reference/v2_create_payout__post.md): Create a new payout. To test different scenarios for each market, please refer to the Examples tab on the right side of the screen. Each market has a dedicated example. Use the following amounts…
- [List Payouts](https://docs.infiniaweb.com/reference/v2_list_payouts__get.md): Retrieve a paginated list of payouts.
- [Get Payout Details](https://docs.infiniaweb.com/reference/v2_get_payout__payout_id___get.md): Retrieve details of a payout.
- Webhooks
- [Payout updated](https://docs.infiniaweb.com/reference/v2_webhook_payout_updated.md): Sent when a payout changes status (`IN_PROGRESS` → `COMPLETED`, `FAILED`, etc.). Set the destination URL using `callbackUrl` when creating the payout. The body is identical to the [Get…
## API Reference: Accounts
- Accounts
- [Create Account](https://docs.infiniaweb.com/reference/v1_0_create_account_.md): Create a new account. ### Account status and lifecycle The `status` field reflects where the account is in its lifecycle. Possible values are: - `PROVISIONING`: the account is being set up and is…
- [List Accounts](https://docs.infiniaweb.com/reference/v1_1_list_accounts_.md): Retrieves a paginated list of accounts.
- [Get Account Details](https://docs.infiniaweb.com/reference/v1_2_get_account_.md): Retrieve details of an account.
- [Update Account](https://docs.infiniaweb.com/reference/v1_4_update_account__.md): Partially update an existing account. Only the fields provided in the request body will be modified; all other fields will remain unchanged.
- [Get Account Limits & Usage](https://docs.infiniaweb.com/reference/v1_5_get_account_limits_.md): Returns the current monthly volume used and configured limit for the account.
- [List Account Movements](https://docs.infiniaweb.com/reference/v1_6_get_movements_.md): Retrieves a paginated list of debit/credit movements.
- [[Sandbox] Create Deposit](https://docs.infiniaweb.com/reference/v1_7_create_deposit_.md): Create a deposit. This endpoint is only for testing purposes and works only in the sandbox environment.
- [Refund Deposit](https://docs.infiniaweb.com/reference/v1_8_refund_deposit_.md): Create a refund for a deposit. Only deposit movements with `operation_type = CREDIT` are eligible. A refund may still fail after being initially marked as `SUCCESS`; in such cases, you'll receive a…
- [List Deposit Refunds](https://docs.infiniaweb.com/reference/v1_9_list_deposit_refunds_.md): Retrieve a list of deposit refunds.
- Internal Transfers
- [List Internal Transfers](https://docs.infiniaweb.com/reference/v1_9_list_internal_transfer.md): Retrieves a list of internal transfers.
- [Request FX Quote for Internal Transfer](https://docs.infiniaweb.com/reference/v1_7_create_quote.md): Create a quote for an internal transfer between different currencies. The quote will be valid for a limited time. You can then use the quote ID to execute the internal transfer.
- [Make Internal Transfer](https://docs.infiniaweb.com/reference/v1_10_create_internal_transfer.md): Make an internal transfer between accounts of the same family of companies. An internal transfer can have the following statuses: * PENDING: The transfer has been created. * PROCESSING: The transfer…
- [Get Internal Transfer Details](https://docs.infiniaweb.com/reference/v1_11_get_internal_transfer.md): Retrieve details of an internal transfer.
- Account Owners
- [Create Account Owner](https://docs.infiniaweb.com/reference/v1_1_create_account_owner.md): Create a new account owner for KYC purposes.
- [List Account Owners](https://docs.infiniaweb.com/reference/v1_2_list_account_owners.md): Retrieves a paginated list of account owners with optional filters.
- [Get Account Owner](https://docs.infiniaweb.com/reference/v1_3_get_account_owner_by_id.md): Retrieves a specific account owner by its UUID.
- [Update Account Owner](https://docs.infiniaweb.com/reference/v1_5_update_account_owner.md): Update an existing account owner. Every data field can be updated except tax_id. Documents can be added or replaced: a replaced document is kept and marked superseded, never modified or deleted.…
- [Initiate Document Upload](https://docs.infiniaweb.com/reference/v1_4_initiate_document_upload.md): Generate pre-signed URLs for uploading account owner documents.One of 'individual', 'organization', or 'external' is required depending on 'type' and 'kyc_mode'.
- Webhooks
- [Internal transfer updated](https://docs.infiniaweb.com/reference/v1_webhook_internal_transfer_updated.md): Sent when an internal transfer changes status (`PENDING` → `PROCESSING` → `COMPLETED`, `FAILED`, etc.). Set the destination URL using `callback_url` when creating the transfer. The body is identical…
- [Movement created](https://docs.infiniaweb.com/reference/v1_webhook_movement_created.md): Sent when a new movement (credit or debit) is recorded on an account. The body is identical to an item from the [Get Movements](ref:v1_5_get_movements) response.
- [Deposit refund updated](https://docs.infiniaweb.com/reference/v1_webhook_deposit_refund_updated.md): Sent when a deposit refund changes status. The body is identical to an item from the [List Deposit Refunds](ref:v1_7_list_deposit_refunds) response.
- [FX quote updated](https://docs.infiniaweb.com/reference/v1_webhook_fx_quote_updated.md): Sent when an FX quote changes status (`ACTIVE` → `COMPLETED`, `FAILED`, `EXPIRED`, etc.). Set the destination URL using `callback_url` when creating the quote. The body is identical to the [Get FX…
- [Account status updated](https://docs.infiniaweb.com/reference/v1_webhook_account_status_updated.md): Sent when an account changes status (e.g. `PROVISIONING` → `ACTIVE`, `ACTIVE` → `SUSPENDED`, `CLOSED`, `REJECTED`). No notification is sent when the status does not change. Set the destination URL…
## API Reference: Webhooks
- Webhooks
- [List Webhooks](https://docs.infiniaweb.com/reference/v1_list_webhooks__get.md): Retrieve a paginated list of webhooks.
- [Update Webhook](https://docs.infiniaweb.com/reference/v1_update_webhook__webhook_id___patch.md): Updates an existing webhook's configuration or status. If the webhook is currently in an ERROR state, you can trigger a resend by updating its status to PENDING.
## API Reference: Bank Account Validation
- Local Bank Account Validation
- [Create Bank Account Validation](https://docs.infiniaweb.com/reference/v1_create_account_identity__post.md): Create a bank account validation request. The response will contain the validation request ID which you can use later to retrieve the result. The validation process may take a few seconds.
If…
- [List Bank Account Validations](https://docs.infiniaweb.com/reference/v1_list_account_identity__get.md): Retrieve a paginated list of bank account validation requests.
- [Get Bank Account Validation Details](https://docs.infiniaweb.com/reference/v1_get_account_identity__id___get.md): Retrieve the validation information using the validation request ID previously obtained from the Create Bank Account Validation endpoint.
- Webhooks
- [Bank account validation updated](https://docs.infiniaweb.com/reference/v1_webhook_bank_account_validation_updated.md): Sent when a bank account validation changes status (`IN_PROGRESS` → `SUCCESSFUL`, `ERROR`, `TEMPORARY_FAILURE`, etc.). Set the destination URL using `callback_url` when creating the validation. The…
## API Reference: Identity Validation
- Identity Validation
- [Create Identity Validation](https://docs.infiniaweb.com/reference/v1_create_identity_validation__post.md): Create an identity validation request to verify the identity of a user. The response carries the full validation; when the result is not available yet, the status is IN_PROGRESS and the country data…
- [List Identity Validation Requests](https://docs.infiniaweb.com/reference/v1_list_identity_validations__get.md): Retrieve a paginated list of identity validation requests.
- [Get Identity Validation Details](https://docs.infiniaweb.com/reference/v1_get_identity_validation__id___get.md): Retrieve an identity validation information using the validation request ID previously obtained from the Create Identity Validation endpoint.
- Webhooks
- [Identity validation updated](https://docs.infiniaweb.com/reference/v1_webhook_identity_validation_updated.md): Sent when an identity validation changes status (`IN_PROGRESS` → `SUCCESSFUL`, `FAILED`, `TEMPORARY_FAILURE`, etc.). Set the destination URL using `callback_url` when creating the validation. The…
## API Reference: Onboarding
- Onboarding
- [Create Subcompany](https://docs.infiniaweb.com/reference/v1_create_company_endpoint_company__post.md): Create a subcompany.
- [List Companies](https://docs.infiniaweb.com/reference/v1_list_accounts_company__get.md): Retrieve a list of companies and child companies.
- [Get Company Details](https://docs.infiniaweb.com/reference/v1_get_company_endpoint_company__company_id___get.md): Retrieve the details of a company.
- [Enable Product and Geography](https://docs.infiniaweb.com/reference/v1_enable_product_company__company_id__product__post.md): Request enablement of a product and geography for a company. This action is required for all companies created via the Create Subcompany endpoint. Products and geographies for primary companies…
- [Get Company Products](https://docs.infiniaweb.com/reference/v1_get_products_endpoint_company__company_id__product__get.md): Retrieve enabled products for a company. In Sandbox, primary companies have all products and geographies enabled by default, so the full catalog is returned as APPROVED.
- Webhooks
- [Product updated](https://docs.infiniaweb.com/reference/v1_webhook_product_updated.md): Sent when a product request changes status (e.g. `PENDING` → `APPROVED`). Set the destination URL using `callback_url` when enabling a product. The body is identical to an item from the [Get Company…
## API Reference: Cases
- Cases
- [List Cases](https://docs.infiniaweb.com/reference/v1_1_list_cases.md): Returns a paginated list of your cases, newest first. `status` tells you who has to act next; use `reference_url` to open the support ticket and answer.
- [Get Case Details](https://docs.infiniaweb.com/reference/v1_2_get_case.md): Retrieve details of a case.
## API Reference: Audits
- Audits
- [List User Audits](https://docs.infiniaweb.com/reference/v1_1_list_user_audits_.md): Retrieve a list of user audits.
## API Reference: Troubleshooting
- Troubleshooting
- [Trace a deposit by rail reference](https://docs.infiniaweb.com/reference/v1_0_lookup_deposit_.md): Traces an incoming deposit to one of your virtual accounts by the reference on the payer's receipt, and tells you what happened to it: credited, still pending, rejected, expired, or settled on the…
- [List rejected deposits](https://docs.infiniaweb.com/reference/v1_1_list_rejected_deposits_.md): Lists the incoming deposits to your virtual accounts that the payment rail rejected. A rejected deposit is never credited and its funds are returned to the payer, so it does not appear among your…
## API Reference: Claims
- Claims
- [List Claims](https://docs.infiniaweb.com/reference/v1_2_list_claims.md): Returns a paginated list of claims.
- [Get Claim Details](https://docs.infiniaweb.com/reference/v1_3_get_claim.md): Retrieve details of a claim.
## Pages
- [BO Bank Branchs](https://docs.infiniaweb.com/page/bo-bank-branchs.md)
- [BO Bank Codes](https://docs.infiniaweb.com/page/bo-bank-codes.md)
- [BR Account Types](https://docs.infiniaweb.com/page/br-account-types.md)
- [BR Bank Codes](https://docs.infiniaweb.com/page/br-bank-codes.md)
- [CO Bank Codes](https://docs.infiniaweb.com/page/co-bank-codes.md)
- [PE Bank Codes](https://docs.infiniaweb.com/page/pe-bank-codes.md)
- [PK Bank Codes](https://docs.infiniaweb.com/page/pk-bank-codes.md)
- [PY Bank Codes](https://docs.infiniaweb.com/page/py-bank-codes.md)
- [UY Bank Codes](https://docs.infiniaweb.com/page/uy-bank-codes.md)