---
canonical_url: "https://docs.composio.dev/toolkits/finmo"
markdown_url: "https://docs.composio.dev/toolkits/finmo.md"
product: "platform"
version: null
last_updated: null
---

# Finmo

Finmo provides payment collection, payouts, wallets, foreign exchange, virtual accounts, and transaction management for businesses.

- **Category:** payment processing
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 19
- **Triggers:** 0
- **Slug:** `FINMO`
- **Version:** 00000000_00

## Tools

### Create Customer

**Slug:** `FINMO_CREATE_CUSTOMER`

Create a real production Finmo customer profile containing personal or company identity data. This stores PII, mutates production, and may start identity-verification or other compliance workflows, but does not itself move money. Confirm that the customer has authorized this processing and supply the organization-specific documented fields. Use a unique idempotency_key and reuse it only for an identical retry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("individual" | "company") | Yes | Customer profile type: individual or company. |
| `company` | object | No | Required when type is company and forbidden when type is individual. Company identity, registration, address, contact, and document data. Only name is always required; every other nested field, including authorized_user, is required only by the organization's KYC configuration, and Finmo holds a profile missing them in a pending state. |
| `metadata` | object | No | Merchant-defined metadata to retain with the customer. |
| `individual` | object | No | Required when type is individual and forbidden when type is company. Personal identity, address, contact, and document data. Only first_name and last_name are always required; every other nested field is required only by the organization's KYC configuration, and Finmo holds a profile missing them in a pending state. |
| `description` | string | No | Human-readable customer description. |
| `idempotency_key` | string | Yes | Unique key for this exact customer creation. Reuse it only for an identical retry; Finmo retains idempotency keys for 8 days. |
| `account_usage_purpose` | string | Yes | Declared purpose for the customer's account. |
| `organization_reference_id` | string | No | Merchant-side reference for the customer. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Payin

**Slug:** `FINMO_CREATE_PAYIN`

Create a real production payin that can collect money from a customer and credit a customer or merchant wallet. This has real financial effects. First call FINMO_LIST_PAYIN_METHODS and FINMO_GET_PAYIN_METHOD_REQUIREMENTS, then supply exactly the selected method's required parameters. Reuse the same idempotency_key only for an identical retry within 8 days. A 499 or 504 may mean Finmo already processed the payment: do not blindly retry; check the payin or transaction state with the same merchant reference, or contact Finmo.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | integer | Yes | Payin amount as a positive integer in the unit required by the selected method and currency. |
| `currency` | string | Yes | Three-letter ISO 4217 currency code supported by the selected method. |
| `metadata` | object | No | Merchant-defined metadata to retain with the payin. |
| `expire_at` | integer | No | Epoch timestamp at which the payin expires. |
| `payin_type` | string | No | Finmo payin type, such as DIRECT_PAYIN. |
| `customer_id` | string | No | Existing Finmo customer to associate with this payin. |
| `description` | string | No | Human-readable description of the payment. |
| `webhook_url` | string | No | Webhook destination for payin updates. If omitted, Finmo uses the dashboard-configured webhook. |
| `redirect_url` | string | No | Customer redirect URL for both success and failure. Use only when advanced_redirect_url is omitted. |
| `receipt_email` | string | No | Email address that should receive the payment receipt. |
| `fees_wallet_id` | string | No | Finmo fees wallet reference (wallet_*) used to collect payin fees. |
| `idempotency_key` | string | Yes | Unique key for this exact payin operation. Reuse it only when retrying an identical request; Finmo retains keys for 8 days. |
| `credit_wallet_id` | string | No | Wallet to credit. If omitted, Finmo uses the organization payin wallet where supported; a customer with multiple linked wallets may require it. |
| `payin_method_name` | string | Yes | Enabled method returned by FINMO_LIST_PAYIN_METHODS. |
| `payin_method_param` | object | Yes | Method-specific fields required by FINMO_GET_PAYIN_METHOD_REQUIREMENTS. Supply exactly the fields required for the selected method. |
| `advanced_redirect_url` | object | No | Outcome-specific redirect URLs. When supplied, provide all completed, cancelled, expired, and failed URLs. |
| `organization_reference_id` | string | No | Unique merchant-side reference used to identify this payment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Payout

**Slug:** `FINMO_CREATE_PAYOUT`

Send real production funds from a Finmo wallet to a beneficiary. This reserves and can irreversibly transfer money. First call FINMO_LIST_PAYOUT_METHODS and FINMO_GET_PAYOUT_METHOD_REQUIREMENTS, verify the beneficiary and available wallet balance, and obtain approval for the exact destination and amount. Use a unique idempotency_key and reuse it only for an identical retry within 8 days. Supply either stored tokens or the documented inline sender and beneficiary data. Cross-currency payouts require a matching Finmo fx_rate_id. A 499 or 504 may mean Finmo already processed the payout: never retry blindly; check payout or transaction state using the merchant reference, or contact Finmo.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `metadata` | object | No | Merchant-defined metadata to retain with the payout. |
| `fx_rate_id` | string | No | Finmo FX quote to apply. Required when sender_currency and beneficiary_currency differ. |
| `description` | string | No | Human-readable payout description. |
| `webhook_url` | string | No | Webhook destination for payout updates. If omitted, Finmo uses the dashboard-configured webhook. |
| `purpose_code` | string | No | Transaction purpose code required by the selected rail. |
| `receipt_email` | string | No | Email address to receive the payout receipt. |
| `sender_amount` | integer | No | Positive source amount. Supply this and/or beneficiary_amount exactly as required by the selected payout method. |
| `fees_wallet_id` | string | No | Wallet from which Finmo should charge payout fees. |
| `sender_country` | string | No | Two-letter country code for the payout sender. |
| `debit_wallet_id` | string | Yes | Funded Finmo wallet to debit for this payout. |
| `idempotency_key` | string | Yes | Unique key for this exact payout operation. Reuse it only for an identical retry within Finmo's 8-day idempotency window. |
| `payout_controls` | object | No | Optional beneficiary-name-match controls documented by Finmo. |
| `sender_currency` | string | No | Optional three-letter source currency required by some methods. For cross-currency payouts, provide the matching fx_rate_id. |
| `payout_reference` | string | No | Reference shown for the payout where supported. |
| `payout_sender_id` | string | No | Existing stored payout-sender token. Do not combine this with payout_sender_param. |
| `beneficiary_amount` | integer | No | Positive destination amount. Supply this and/or sender_amount exactly as required by the selected payout method. |
| `payout_method_name` | string | Yes | Enabled method returned by FINMO_LIST_PAYOUT_METHODS. Retrieve its current requirements before every payout. |
| `payout_method_param` | object | No | Dynamic rail-specific fields exactly as returned by FINMO_GET_PAYOUT_METHOD_REQUIREMENTS. |
| `payout_sender_param` | object | No | Inline sender fields exactly as returned by FINMO_GET_PAYOUT_METHOD_REQUIREMENTS, and only when that method requires them. Do not combine this with payout_sender_id. |
| `beneficiary_currency` | string | Yes | Three-letter destination currency supported by the selected method. |
| `payout_beneficiary_id` | string | No | Existing stored beneficiary token when available. A newly created beneficiary may require 24 hours before activation. |
| `payout_beneficiary_param` | object | No | Inline beneficiary fields exactly as named and required by FINMO_GET_PAYOUT_METHOD_REQUIREMENTS for the selected method. This object is deliberately dynamic; do not guess fields from another rail. |
| `organization_reference_id` | string | No | Unique merchant-side reference used to identify this payout. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Payout Beneficiary

**Slug:** `FINMO_CREATE_PAYOUT_BENEFICIARY`

Create a real payout beneficiary in the connected Finmo production account. This does not move money, but Finmo stores the supplied sensitive bank, proxy, identity, and contact data and the record can enable later payouts. First call FINMO_LIST_PAYOUT_METHODS and FINMO_GET_PAYOUT_METHOD_REQUIREMENTS, then provide only the selected method's required destination and identity fields. A newly created beneficiary may take 24 hours to activate. Reuse idempotency_key only for an identical retry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("individual" | "company") | Yes | Beneficiary type: individual or company. |
| `company` | object | No | Required when type is company and forbidden when type is individual. Provide the identity and contact details required by the selected payout method. Finmo stores this sensitive production data. |
| `metadata` | object | No | Merchant-defined metadata to retain with the beneficiary. |
| `individual` | object | No | Required when type is individual and forbidden when type is company. Provide the identity and contact details required by the selected payout method. Finmo stores this sensitive production data. |
| `description` | string | No | Human-readable beneficiary description. |
| `destination` | object | Yes | Method-specific bank or proxy destination. Supply only fields required by FINMO_GET_PAYOUT_METHOD_REQUIREMENTS. Finmo stores these sensitive destination details in production. |
| `idempotency_key` | string | Yes | Unique key for this exact creation request. Reuse it only for an identical retry; Finmo retains idempotency keys for 8 days. |
| `beneficiary_name` | string | Yes | Display or legal name of the beneficiary. |
| `organization_reference_id` | string | No | Unique alphanumeric merchant-side reference for this beneficiary. |
| `payout_beneficiary_controls` | object | No | Controls Finmo's checks during beneficiary creation. Omit this object to leave the behavior unspecified; Finmo does not document a default. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Refund

**Slug:** `FINMO_CREATE_REFUND`

Issue a real production full refund for a completed Finmo payin. This moves real money, debits or holds funds in the payin wallet, may incur fees, and may be irreversible. Before calling, verify the payin is refundable and that the full refund is intended. Use a unique idempotency_key and reuse it only for an identical retry within 8 days.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `payin_id` | string | Yes | Refundable completed Finmo payin reference beginning payin_. This request creates the provider-default full refund. |
| `idempotency_key` | string | Yes | Unique key for this refund operation. Reuse it only for an identical retry; Finmo retains idempotency keys for 8 days. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Payin Method Requirements

**Slug:** `FINMO_GET_PAYIN_METHOD_REQUIREMENTS`

Return the dynamic required fields, validation regexes, limits, instructions, and capabilities for one Finmo payin method. Call this immediately before constructing a payin request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `payin_method_name` | string | Yes | Exact method name returned by FINMO_LIST_PAYIN_METHODS, such as au_bank_npp. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Payment

**Slug:** `FINMO_GET_PAYMENT`

Get one payin, payout, or refund by its Finmo reference ID. Use this after an ambiguous timeout before retrying a money-moving request with the same idempotency key.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `payment_id` | string | Yes | Matching Finmo reference beginning payin_, payout_, or refund_. |
| `payment_type` | string ("payin" | "payout" | "refund") | Yes | Resource type to retrieve: payin, payout, or refund. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Payout Method Requirements

**Slug:** `FINMO_GET_PAYOUT_METHOD_REQUIREMENTS`

Return the dynamic payout, beneficiary, and sender field requirements for one Finmo payout method. Use it before creating a beneficiary or moving money.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `payout_method_name` | string | Yes | Exact payout method name returned by FINMO_LIST_PAYOUT_METHODS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Wallet

**Slug:** `FINMO_GET_WALLET`

Get one wallet and its currency accounts, including actual and available balances. Reading balances is sensitive but does not move funds.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `wallet_id` | string | Yes | Finmo wallet reference beginning with wallet_. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Customers

**Slug:** `FINMO_LIST_CUSTOMERS`

List one page of individual or company customer profiles and wallet-readiness state. Returns a continuation cursor when more customers are available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("individual" | "company") | No | Customer type to match: individual or company. |
| `limit` | integer | No | Maximum customers to return in this page. Must be at least 1. |
| `end_time` | integer | No | Inclusive end of the creation-time range as epoch seconds. |
| `created_at` | string | No | UTC creation date in YYYY-MM-DD format. |
| `start_time` | integer | No | Inclusive start of the creation-time range as epoch seconds. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |
| `include_deleted` | boolean | No | Whether to include deleted customers. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payin Methods

**Slug:** `FINMO_LIST_PAYIN_METHODS`

List one page of enabled ways to collect money for a country and currency, with a continuation cursor when more results exist. Use FINMO_GET_PAYIN_METHOD_REQUIREMENTS before creating a payin because required fields vary by method.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Requested page size, minimum 1. Finmo may ignore this value for payin-method discovery. |
| `country` | string | Yes | Two-letter ISO 3166-1 country code. |
| `currency` | string | Yes | Three-letter ISO 4217 currency code. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a prior call; omit for the first page. |
| `is_va_allowed` | boolean | No | Only return methods usable for virtual accounts when true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payins

**Slug:** `FINMO_LIST_PAYINS`

List inbound payment attempts with status, method, customer, wallet, and time filters. Returns one page and a continuation cursor.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum payins to return in this page. Must be at least 1. |
| `status` | string ("PENDING" | "COMPLETED" | "EXPIRED" | "CANCELLED" | "CREATED" | "FAILED") | No | Payin status to match: PENDING, COMPLETED, EXPIRED, CANCELLED, CREATED, or FAILED. |
| `end_time` | integer | No | End of the creation-time range as epoch seconds. |
| `created_at` | string | No | UTC creation date in YYYY-MM-DD format. |
| `start_time` | integer | No | Start of the creation-time range as epoch seconds. |
| `customer_id` | string | No | Return only payins associated with this Finmo customer reference. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |
| `credit_wallet_id` | string | No | Return only payins that credit this Finmo wallet reference. |
| `payin_method_name` | string | No | Return only payins created with this payin method. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payout Beneficiaries

**Slug:** `FINMO_LIST_PAYOUT_BENEFICIARIES`

List one page of stored payout beneficiaries and their destination details. Returns a continuation cursor when more beneficiaries are available; use payout method discovery to assess rail suitability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("individual" | "company") | No | Beneficiary type to match: individual or company. |
| `limit` | integer | No | Maximum beneficiaries to return in this page. Must be at least 1. |
| `end_time` | integer | No | End of the creation-time range as epoch seconds. |
| `created_at` | string | No | UTC beneficiary creation date in YYYY-MM-DD format. |
| `start_time` | integer | No | Start of the creation-time range as epoch seconds. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payout Methods

**Slug:** `FINMO_LIST_PAYOUT_METHODS`

List one page of enabled payout rails for a sender and beneficiary country/currency pair. Results may use wildcard sender values. Inspect the returned beneficiary requirements, then call FINMO_GET_PAYOUT_METHOD_REQUIREMENTS for current beneficiary and sender fields before creating a payout or beneficiary. Returns a continuation cursor when more methods are available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Requested page size. Must be at least 1. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |
| `sender_country` | string | No | Two-letter sender country code. Required for the first page; omit only when supplying next_cursor. |
| `sender_currency` | string | No | Three-letter sender currency code. Required for the first page; omit only when supplying next_cursor. |
| `beneficiary_country` | string | No | Two-letter beneficiary country code. Required for the first page; omit only when supplying next_cursor. |
| `payout_method_class` | string ("DOMESTIC" | "GCA") | No | Optional payout method class: DOMESTIC or GCA. |
| `beneficiary_currency` | string | No | Three-letter beneficiary currency code. Required for the first page; omit only when supplying next_cursor. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payouts

**Slug:** `FINMO_LIST_PAYOUTS`

List one page of outbound payments with status, payout method, and time filters. Returns a continuation cursor when more payouts are available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum payouts to return in this page. Must be at least 1. |
| `status` | string ("PENDING" | "COMPLETED" | "FAILED") | No | Payout status to match: PENDING, COMPLETED, or FAILED. |
| `end_time` | integer | No | End of the creation-time range as epoch seconds. |
| `created_at` | string | No | UTC creation date in YYYY-MM-DD format. |
| `start_time` | integer | No | Start of the creation-time range as epoch seconds. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |
| `payout_method_name` | string | No | Return only payouts using this Finmo payout method. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Refunds

**Slug:** `FINMO_LIST_REFUNDS`

List one page of refunds with status, originating payin, amount, and time filters. Returns a continuation cursor when more refunds are available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum refunds to return in this page. Must be at least 1. |
| `amount` | integer | No | Return only refunds matching this integer amount. |
| `status` | string ("PENDING" | "COMPLETED" | "FAILED") | No | Refund status to match: PENDING, COMPLETED, or FAILED. |
| `end_time` | integer | No | End of the creation-time range as epoch seconds. |
| `payin_id` | string | No | Return only refunds for this originating Finmo payin reference. |
| `created_at` | string | No | UTC creation date in YYYY-MM-DD format. |
| `start_time` | integer | No | Start of the creation-time range as epoch seconds. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Transactions

**Slug:** `FINMO_LIST_TRANSACTIONS`

List organization-level financial transactions for reconciliation, filtered by customer, event type, settlement, reconciliation, or time. Returns one page and a continuation cursor.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum transactions to return in this page. Must be at least 1. |
| `end_time` | integer | No | End of the creation-time range as epoch seconds. |
| `created_at` | string | No | UTC creation date in YYYY-MM-DD format. |
| `event_type` | string | No | Event type to match, such as PAYIN, PAYOUT, REFUND, or VA_PAYIN. |
| `is_settled` | boolean | No | Filter transactions by settlement state. |
| `start_time` | integer | No | Start of the creation-time range as epoch seconds. |
| `customer_id` | string | No | Return only transactions associated with this Finmo customer reference. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |
| `is_reconciled` | boolean | No | Filter transactions by Finmo reconciliation state. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Wallets

**Slug:** `FINMO_LIST_WALLETS`

List one page of Finmo wallets available to the connected organization or a customer. Returns a continuation cursor when more wallets are available. Summaries exclude balances; use FINMO_GET_WALLET for wallet accounts and balances.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum wallets to return in this page. Must be at least 1. |
| `category` | string ("PAYIN" | "PAYOUT" | "FEES" | "GENERAL" | "GCA") | No | Wallet category to match: PAYIN, PAYOUT, FEES, GENERAL, or GCA. |
| `end_time` | integer | No | Inclusive end of the creation-time range as epoch seconds. |
| `created_at` | string | No | UTC creation date in YYYY-MM-DD format. |
| `start_time` | integer | No | Inclusive start of the creation-time range as epoch seconds. |
| `customer_id` | string | No | Return only wallets belonging to this Finmo customer reference. |
| `next_cursor` | string | No | Opaque continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Transfer Wallet Funds

**Slug:** `FINMO_TRANSFER_WALLET_FUNDS`

Move real production funds immediately between two Finmo wallets. This money-moving operation may be irreversible. Before calling, use FINMO_GET_WALLET on both wallets to verify the exact destination, active currency accounts, and sufficient source available balance for the amount and currency. Use a unique idempotency_key and reuse it only for an identical retry within 8 days. After an ambiguous failure, check transfer and transaction state before retrying.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | string | Yes | Positive transfer amount in major currency units. Use the number of decimal places defined for the selected currency by ISO 4217. |
| `currency` | string | Yes | Three-letter ISO 4217 currency code verified against both wallets' currency accounts. |
| `metadata` | object | No | Merchant-defined metadata to retain with the transfer. |
| `description` | string | No | Human-readable purpose of the wallet transfer. |
| `webhook_url` | string | No | Webhook URL for transfer updates. If omitted, Finmo uses the URL configured in the dashboard. |
| `debit_wallet_id` | string | Yes | Source Finmo wallet to debit. Before calling, use FINMO_GET_WALLET to verify it is active and has sufficient available balance in currency. |
| `idempotency_key` | string | Yes | Unique key for this exact transfer. Reuse it only for an identical retry; Finmo retains idempotency keys for 8 days. |
| `credit_wallet_id` | string | Yes | Destination Finmo wallet to credit. Before calling, verify this exact wallet is active, intended, and supports currency. |
| `credit_wallet_alias_id` | string | No | Optional alias reference of the destination wallet to credit. |
| `organization_reference_id` | string | No | Unique merchant-side reference used to identify the transfer. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
