Skip to content

Create an OutboundPayment

Creates an OutboundPayment.

Returns

Returns an OutboundPayment object if there were no issues with OutboundPayment creation.

Parameters

  • amount (integer, required) Amount (in cents) to be transferred.

  • currency (enum, required) Three-letter ISO currency code, in lowercase. Must be a supported currency.

  • financial_account (string, required) The FinancialAccount to pull funds from.

  • customer (string, optional) ID of the customer to whom the OutboundPayment is sent. Must match the Customer attached to the destination_payment_method passed in.

  • description (string, optional) An arbitrary string attached to the object. Often useful for displaying to users.

  • destination_payment_method (string, optional) The PaymentMethod to use as the payment instrument for the OutboundPayment. Exclusive with destination_payment_method_data.

  • destination_payment_method_data (object, optional) Hash used to generate the PaymentMethod to be used for this OutboundPayment. Exclusive with destination_payment_method.

    • destination_payment_method_data.type (enum, required) The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. Possible enum values:

      • financial_account
      • us_bank_account
    • destination_payment_method_data.billing_details (object, optional) Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.

      • destination_payment_method_data.billing_details.address (object, optional) Billing address.

        • destination_payment_method_data.billing_details.address.city (string, optional) City, district, suburb, town, or village.

        • destination_payment_method_data.billing_details.address.country (string, optional) Two-letter country code (ISO 3166-1 alpha-2).

        • destination_payment_method_data.billing_details.address.line1 (string, optional) Address line 1, such as the street, PO Box, or company name.

        • destination_payment_method_data.billing_details.address.line2 (string, optional) Address line 2, such as the apartment, suite, unit, or building.

        • destination_payment_method_data.billing_details.address.postal_code (string, optional) ZIP or postal code.

        • destination_payment_method_data.billing_details.address.state (string, optional) State, county, province, or region (ISO 3166-2).

      • destination_payment_method_data.billing_details.email (string, optional) Email address.

        The maximum length is 800 characters.

      • destination_payment_method_data.billing_details.name (string, optional) Full name.

      • destination_payment_method_data.billing_details.phone (string, optional) Billing phone number (including extension).

    • destination_payment_method_data.financial_account (string, optional) Required if type is set to financial_account. The FinancialAccount ID to send funds to.

    • destination_payment_method_data.metadata (object, 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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

    • destination_payment_method_data.us_bank_account (object, optional) Required hash if type is set to us_bank_account.

      • destination_payment_method_data.us_bank_account.account_holder_type (enum, optional) Account holder type: individual or company. Possible enum values:

        • company Account belongs to a company

        • individual Account belongs to an individual

      • destination_payment_method_data.us_bank_account.account_number (string, optional) Account number of the bank account.

      • destination_payment_method_data.us_bank_account.account_type (enum, optional) Account type: checkings or savings. Defaults to checking if omitted. Possible enum values:

        • checking Bank account type is checking

        • savings Bank account type is savings

      • destination_payment_method_data.us_bank_account.financial_connections_account (string, optional) The ID of a Financial Connections Account to use as a payment method.

      • destination_payment_method_data.us_bank_account.routing_number (string, optional) Routing number of the bank account.

  • destination_payment_method_options (object, optional) Payment method-specific configuration for this OutboundPayment.

    • destination_payment_method_options.us_bank_account (object, optional) Optional fields for us_bank_account.

      • destination_payment_method_options.us_bank_account.network (enum, optional) Specifies the network rails to be used. If not set, will default to the PaymentMethod’s preferred network. See the docs to learn more about money movement timelines for each network type. Possible enum values:
        • ach ACH network

        • us_domestic_wire US domestic wire network

  • end_user_details (object, optional) End user details.

    • end_user_details.present (boolean, required) True if the OutboundPayment creation request is being made on behalf of an end user by a platform. Otherwise, false.

    • end_user_details.ip_address (string, optional) IP address of the user initiating the OutboundPayment. Must be supplied if present is set to true.

  • metadata (object, 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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

  • purpose (enum, optional) The purpose of the OutboundPayment, if applicable. This list is not exhaustive, do not specify this parameter if your purpose does not match any that are provided. Possible enum values:

    • payroll
  • statement_descriptor (string, optional) The description that appears on the receiving end for this OutboundPayment (for example, bank statement for external bank transfer). Maximum 10 characters for ach payments, 140 characters for us_domestic_wire payments, or 500 characters for stripe network transfers. Can only include -#.$&*, spaces, and alphanumeric characters. The default value is “payment”.

curl
curl https://api.stripe.com/v1/treasury/outbound_payments \
  -u "<<YOUR_SECRET_KEY>>" \
  -d financial_account={{FINANCIAL_ACCOUNT_ID}} \
  -d amount=10000 \
  -d currency=usd \
  -d customer={{CUSTOMER_ID}} \
  -d destination_payment_method={{PAYMENT_METHOD_ID}} \
  -d "description=OutboundPayment to a 3rd party"

Response

json
{
  "id": "obp_1MtaD72eZvKYlo2Cu5d5S1kX",
  "object": "treasury.outbound_payment",
  "amount": 10000,
  "cancelable": false,
  "created": 1680716009,
  "currency": "usd",
  "customer": "cus_4QFOF3xrvBT2nU",
  "description": "OutboundPayment to a 3rd party",
  "destination_payment_method": "pm_1MtaD82eZvKYlo2CtGr4OxTt",
  "destination_payment_method_details": {
    "type": "us_bank_account",
    "destination": "ba_1MtaD62eZvKYlo2C8vwjm7bc"
  },
  "end_user_details": {
    "ip_address": null,
    "present": false
  },
  "expected_arrival_date": 1680716009,
  "financial_account": "fa_1MtaD72eZvKYlo2CYKM3DnUI",
  "hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/CBQaFwoVYWNjdF8xMDMyRDgyZVp2S1lsbzJDKOrhtqEGMgYgdA-GrKk6NZNsf-FXPEqqbHm44fwJ57pNybbkweviYUDJGYFOw4f9cAqpfvPKQZ6y0S2C5DYyRwmDs_36",
  "livemode": false,
  "metadata": {},
  "returned_details": null,
  "statement_descriptor": "payment",
  "status": "processing",
  "status_transitions": {
    "canceled_at": null,
    "failed_at": null,
    "posted_at": null,
    "returned_at": null
  },
  "transaction": "trxn_1MtaD72eZvKYlo2CmUu4Vs5c"
}

Stripe API Reference - Self-contained docs reference, refreshed 2026-05-18