# Create an Outbound Transfer

Creates an OutboundTransfer.

## Request

```curl
curl -X POST https://api.stripe.com/v2/money_management/outbound_transfers \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-08-26.preview" \
  --json '{
    "from": {
        "financial_account": "fa_test_65NybHaQx7KJxDc22rZ16NybHIZ4SQ3LORe4rpuNGDIXEO",
        "currency": "usd"
    },
    "to": {
        "payout_method": "usba_test_61NyccB7UY8KzlWh916NybHIZ4SQ3LORe4rpuNGDIRWC",
        "currency": "usd"
    },
    "amount": {
        "value": 50,
        "currency": "usd"
    },
    "description": "Paying out Stripe earnings"
  }'
```

### Response

```json
{
  "id": "obt_test_65OAfYe4XKyMwZeHlcV16NybHIZ4SQ3LORe4rpuNGDIRZw",
  "object": "v2.money_management.outbound_transfer",
  "from": {
    "financial_account": "fa_test_65NybHaQx7KJxDc22rZ16NybHIZ4SQ3LORe4rpuNGDIXEO",
    "debited": {
      "value": 50,
      "currency": "usd"
    }
  },
  "to": {
    "credited": {
      "value": 50,
      "currency": "usd"
    },
    "payout_method": "usba_test_61NyccB7UY8KzlWh916NybHIZ4SQ3LORe4rpuNGDIRWC"
  },
  "delivery_options": {
    "bank_account": "automatic"
  },
  "amount": {
    "value": 50,
    "currency": "usd"
  },
  "statement_descriptor": "Stripe payout",
  "cancelable": true,
  "description": "Paying out Stripe earnings",
  "status": "processing",
  "status_transitions": {
    "canceled_at": null,
    "failed_at": null,
    "posted_at": null,
    "returned_at": null
  },
  "status_details": null,
  "created": "2023-04-26T23:18:16.777Z",
  "expected_arrival_date": "2023-04-28T00:00:00Z",
  "receipt_url": "https://payments.stripe.com/transaction_receipt/CCMaIwohd2tzcF90ZXN0XzZOeWJISVo0U1EzTE9SZTRycHVOR0RJKLjipqIGMgYk_Zatd6o6SJTkdgTDenznPtxy9kHSWhpBX0QEYqbR8_OPno6qVa79eu4rNCFiXFjzwfzKlMF16O028YAwyJ2T1sRMDLkbsqtVSR5r4dV-nw",
  "livemode": false
}
```

## Parameters

- [`amount`](https://docs.stripe.com/api/v2/money-management/outbound-transfers/create.md?query=amount&api-version=2026-08-26.preview) (object, required)
  The “presentment amount” for the OutboundPayment.

- [`from`](https://docs.stripe.com/api/v2/money-management/outbound-transfers/create.md?query=from&api-version=2026-08-26.preview) (object, required)
  The FinancialAccount to pull funds from.

- [`to`](https://docs.stripe.com/api/v2/money-management/outbound-transfers/create.md?query=to&api-version=2026-08-26.preview) (object, required)
  To which payout method to send the OutboundTransfer.

- [`delivery_options`](https://docs.stripe.com/api/v2/money-management/outbound-transfers/create.md?query=delivery_options&api-version=2026-08-26.preview) (object, optional)
  Delivery options to be used to send the OutboundTransfer.

- `description` (string, optional)
  An arbitrary string attached to the OutboundTransfer. Often useful for displaying to users.

- `metadata` (map, optional)
  Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

- `statement_descriptor` (string, optional)
  The description that appears on the receiving end for an OutboundTransfer (for example, on a bank statement). Must be between 3 and 22 characters long for most destinations (500 for FinancialAccount destinations), and not contain profanity.

## Returns

Returns an [Outbound Transfer object](https://docs.stripe.com/api/v2/money-management/outbound-transfers/object.md?api-version=2026-08-26.preview).

## Error Codes

| HTTP status code | Code | Description |
| --- | --- | --- |
| 400 | amount_too_large_for_preferred_networks | Error returned when the amount is too large for the requested preferred_networks. |
| 400 | amount_too_large_for_selected_delivery_option | Error returned when user selected a delivery option but the specified amount exceeds the method limits. |
| 400 | card_payout_method_not_supported | Error returned when the provided Card payout method is not eligible for outbound payment or outbound transfer. |
| 400 | cop_not_accepted | Error returned when the Confirmation of Payee is not accepted. |
| 400 | delivery_option_not_supported | Error returned when the selected delivery option is not supported for the payout method. |
| 400 | financial_account_capability_not_enabled | Error thrown when attempting to add currencies that require capabilities that are not enabled. |
| 400 | financial_account_capability_restricted | Error thrown when attempting to add currencies that require capabilities that are restricted. |
| 400 | financial_account_operation_unsupported_for_type | Operation not supported on Financial Accounts with this type. |
| 400 | financial_address_creation_required | Error returned when there is no active financial address required for GB and EU OBPs or OBTs. |
| 400 | from_balance_unsupported_currency | Error returned when the balance type in the OutboundPayment/OutboundTransfer request does not support the provided currency. |
| 400 | insufficient_funds | Error returned when the balance of provided financial account and balance type in the OutboundPayment/OutboundTransfer request does not have enough funds. |
| 400 | invalid_outbound_flow | Error returned when the outbound flow is invalid. |
| 400 | invalid_payout_method_country | Error returned when the payout method country does not match the recipient account country. |
| 400 | network_not_supported_for_payout_method | Error returned when the requested networks are not supported for the provided payout method. |
| 400 | no_suitable_delivery_options_for_large_amount | Error returned when user does not specify the delivery option or provides automatic, and the amount exceeds all the possible delivery options for this payout method. |
| 400 | outbound_flow_from_closed_financial_account_unsupported | The user attempts to create an outbound flow from a closed Financial Account. |
| 400 | outbound_flow_unsupported_country | Error returned when the payout method country is not supported for the outbound payment. |
| 400 | outbound_transfer_cannot_be_processed | Error returned when the OutboundTransfer cannot be processed due to a Stripe review rejection. |
| 400 | outbound_transfer_not_allowed | Error returned when the user is not allowed to make this OutboundTransfer request. |
| 400 | outbound_transfer_recipient_verification_already_consumed | Error returned when the provided recipient verification has been used for another payment. |
| 400 | outbound_transfer_recipient_verification_awaiting_acknowledgement | Error returned when provided recipient verification has not been acknowledged. |
| 400 | outbound_transfer_recipient_verification_expired | Error returned when provided recipient verification is expired. |
| 400 | outbound_transfer_recipient_verification_missing | Error returned when recipient verification is missing for OBTs which requires recipient verification prior to OBT initiation. |
| 400 | outbound_transfer_recipient_verification_payout_method_mismatch | Error returned when payout method on recipient verification creation request don’t match outbound transfer creation request. |
| 400 | outbound_transfer_recipient_verification_recipient_mismatch | Error returned when recipient on recipient verification creation request don’t match outbound transfer creation request. |
| 400 | outbound_transfer_recipient_verification_recipient_name_outdated | Error returned when the recipient account name of the recipient verification no longer matches the verified name. |
| 400 | payout_method_archived | Error returned when the payout method in the OutboundPayment/OutboundTransfer request is archived and invalid. |
| 400 | payout_method_disabled | Error returned when the payout method in the OutboundPayment/OutboundTransfer request is disabled and needs to be enabled via OutboundSetupIntent. |
| 400 | payout_method_must_differ_from_financial_account | Error returned when the same v2 Financial Account is provided in both to.payout_method and from.financial_account fields. |
| 400 | payout_method_unsupported_currency | Error returned when the payout method does not support the request’s payout method currency. |
| 400 | pending_financial_account | Error returned when the source financial account is in a pending state and not yet active. |
| 400 | preferred_networks_not_available | Error returned when the requested network is temporarily unavailable. |
| 400 | storer_capability_missing | The required storer capabilities are missing. |
| 400 | storer_capability_not_active | The required storer capabilities are not active. |
| 400 | submission_not_supported | Error returned when an unsupported ACH submission value is provided. |
| 400 | unsupported_currency | The currency is not supported for Financial Accounts. |
| 400 | unsupported_operation_with_managed_financial_account | Creation of an object is not allowed with a managed account. |
| 400 | unsupported_parameter_delivery_options | Error returned when delivery_options and payout_method_options are both specified (mutually exclusive). |
| 404 | from_balance_type_not_found | Deprecated. Error returned when balance type of provided financial account in the OutboundPayment/OutboundTransfer request cannot be identified. |
| 404 | from_financial_account_not_found | Error returned when financial account in the OutboundPayment/OutboundTransfer request cannot be identified. |
| 404 | outbound_transfer_recipient_verification_not_found | Error returned when the provided recipient verification cannot be identified. |
| 404 | payout_method_invalid | Error returned when the payout method in the OutboundPayment/OutboundTransfer request cannot be identified. |
| 409 | idempotency_conflict | An idempotent retry results in resource conflicts. |
| 409 | idempotency_error | An idempotent retry occurred with different request parameters. |
