POST
/v1/treasury/outbound_paymentsCreate an outbound payment
Creates a new OutboundPayment from a FinancialAccount to another party's external bank account or FinancialAccount. Supply amount, currency, and financial_account, then provide either an existing destination_payment_method or destination_payment_method_data to specify the payment instrument.
- RetriesRetries up to 2×, 500ms backoff, 30s timeout.
- IdempotentThe SDK sends
Idempotency-Key, so a retried request is only applied once.
OutboundPayment creation details for sending funds from a FinancialAccount.
amountintegerrequired
Amount (in cents) to be transferred.
currencystringrequired
Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
customerstringoptional
ID of the customer to whom the OutboundPayment is sent. Must match the Customer attached to the `destination_payment_method` passed in.
descriptionstringoptional
An arbitrary string attached to the object. Often useful for displaying to users.
destination_payment_methodstringoptional
The PaymentMethod to use as the payment instrument for the OutboundPayment. Exclusive with `destination_payment_method_data`.
destination_payment_method_dataobjectoptional
Hash used to generate the PaymentMethod to be used for this OutboundPayment. Exclusive with `destination_payment_method`.
destination_payment_method_optionsobjectoptional
Payment method-specific configuration for this OutboundPayment.
end_user_detailsobjectoptional
End user details.
expandarray<string>optional
Specifies which fields in the response should be expanded.
financial_accountstringrequired
The FinancialAccount to pull funds from.
metadataobjectoptional
Set of [key-value pairs](https://docs.stripe.com/api/metadata) 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`.
statement_descriptorstringoptional
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".
200Returns the created OutboundPayment, including its amount, currency, source FinancialAccount, destination payment method, expected arrival date, status, and transaction details.
amountintegerrequired
Amount (in cents) transferred.
cancelablebooleanrequired
Returns `true` if the object can be canceled, and `false` otherwise.
createdintegerrequired
Time at which the object was created. Measured in seconds since the Unix epoch.
currencystringrequired
Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
customerstringoptional
ID of the [customer](https://docs.stripe.com/api/customers) to whom an OutboundPayment is sent.
descriptionstringoptional
An arbitrary string attached to the object. Often useful for displaying to users.
destination_payment_methodstringoptional
The PaymentMethod via which an OutboundPayment is sent. This field can be empty if the OutboundPayment was created using `destination_payment_method_data`.
destination_payment_method_detailsobjectoptional
Details about the PaymentMethod for an OutboundPayment.
end_user_detailsobjectoptional
Details about the end user.
expected_arrival_dateintegerrequired
The date when funds are expected to arrive in the destination account.
financial_accountstringrequired
The FinancialAccount that funds were pulled from.
hosted_regulatory_receipt_urlstringoptional
A [hosted transaction receipt](https://docs.stripe.com/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
idstringrequired
Unique identifier for the object.
livemodebooleanrequired
If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
metadataobjectrequired
Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
objectstringrequired
String representing the object's type. Objects of the same type share the same value.
returned_detailsobjectoptional
Details about a returned OutboundPayment. Only set when the status is `returned`.
statement_descriptorstringrequired
The description that appears on the receiving end for an OutboundPayment (for example, bank statement for external bank transfer).
statusstringrequired
Current status of the OutboundPayment: `processing`, `failed`, `posted`, `returned`, `canceled`. An OutboundPayment is `processing` if it has been created and is pending. The status changes to `posted` once the OutboundPayment has been "confirmed" and funds have left the account, or to `failed` or `canceled`. If an OutboundPayment fails to arrive at its destination, its status will change to `returned`.
status_transitionsobjectrequired
tracking_detailsobjectoptional
Details about network-specific tracking information if available.
transactionstringrequired
The Transaction associated with this object.
defaultError response.
errorobjectrequired
Error handling
amount, currency, and financial_account are required. destination_payment_method and destination_payment_method_data are mutually exclusive; when using destination_payment_method_data, its type must be financial_account or us_bank_account, and end_user_details.present is required when that object is provided.