Creates an OutboundTransfer.
Learn more about calling API v2 endpoints.Parameters
- amountobjectRequiredThe “presentment amount” for the OutboundPayment. - amount.currencystringRequired A lowercase alpha3 currency code like “usd”. 
- amount.valueintegerRequired In minor units like 123 for 1.23 USD. 
 
- fromobjectRequiredThe FinancialAccount to pull funds from. - from.currencystringRequired Describes the FinancialAmount’s currency drawn from. 
- from.financial_ accountstringRequired The FinancialAccount that funds were pulled from. 
 
- toobjectRequiredTo which payout method to send the OutboundTransfer. - to.currencystring Describes the currency to send to the recipient. If included, this currency must match a currency supported by the destination. Can be omitted in the following cases: - destination only supports one currency
- destination supports multiple currencies and one of the currencies matches the FA currency
- destination supports multiple currencies and one of the currencies matches the presentment currency Note - when both FA currency and presentment currency are supported, we pick the FA currency to minimize FX.
 
- to.payout_ methodstringRequired The payout method which the OutboundTransfer uses to send payout. 
 
- delivery_optionsobject Delivery options to be used to send the OutboundTransfer. - delivery_options.bank_ accountenum Method for bank account. Possible enum valuesautomaticMethod automatically selected by Stripe. localThe group of local bank-transfer networks in the bank account’s country. wireThe group of wire transfer networks in the bank account’s country. 
 
- descriptionstringAn arbitrary string attached to the OutboundTransfer. Often useful for displaying to users. 
- metadatamapSet 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. 
Returns
Response attributes
- idstringUnique identifier for the OutboundTransfer. 
- objectstring, value is "v2.money_management.outbound_transfer"String representing the object’s type. Objects of the same type share the same value of the object field. 
- amountobjectThe “presentment amount” for the OutboundTransfer. - amount.currencystring A lowercase alpha3 currency code like “usd”. 
- amount.valueinteger In minor units like 123 for 1.23 USD. 
 
- cancelablebooleanReturns true if the OutboundTransfer can be canceled, and false otherwise. 
- createdtimestampTime at which the OutboundTransfer was created. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z. 
- delivery_optionsnullable object Delivery options to be used to send the OutboundTransfer. - delivery_options.bank_ accountnullable enum Method for bank account. Possible enum valuesautomaticMethod automatically selected by Stripe. localThe group of local bank-transfer networks in the bank account’s country. wireThe group of wire transfer networks in the bank account’s country. 
 
- descriptionnullable stringAn arbitrary string attached to the OutboundTransfer. Often useful for displaying to users. 
- expected_arrival_ datenullable timestamp The date when funds are expected to arrive in the payout method. This field is not set if the payout method is in a failed,canceled, orreturnedstate. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.
- fromobjectThe FinancialAccount that funds were pulled from. - from.debitedobject The monetary amount debited from the sender, only set on responses. - from.debited. currencystring A lowercase alpha3 currency code like “usd”. 
- from.debited. valueinteger In minor units like 123 for 1.23 USD. 
 
- from.financial_ accountstring The FinancialAccount that funds were pulled from. 
 
- livemodebooleanHas the value trueif the object exists in live mode or the valuefalseif the object exists in test mode.
- metadatanullable mapSet 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. 
- receipt_urlnullable string A link to the Stripe-hosted receipt for this OutboundTransfer. The receipt link remains active for 60 days from the OutboundTransfer creation date. After this period, the link will expire and the receipt url value will be null. 
- statement_descriptorstring The description that appears on the receiving end for an OutboundTransfer (for example, bank statement for external bank transfer). It will default to STRIPEif not set on the account settings.
- statusenumCurrent status of the OutboundTransfer: processing,failed,posted,returned,canceled. An OutboundTransfer isprocessingif it has been created and is processing. The status changes topostedonce the OutboundTransfer has been “confirmed” and funds have left the account, or tofailedorcanceled. If an OutboundTransfer fails to arrive at its payout method, its status will change toreturned.Possible enum valuescanceledA user canceled the OutboundTransfer before posting. Stripe returns the funds to the user by voiding the pending Transaction. failedThe OutboundTransfer failed to confirm. Stripe returns the funds to the user by voiding the pending Transaction. postedThe OutboundTransfer posted and funds have left the account. The underlying Transaction posts. processingThe OutboundTransfer starting state. Funds are “held” by a pending Transaction (but are still part of the current balance). The OutboundTransfer might be cancelable by the user, depending on the value of the cancelable field. returnedThe OutboundTransfer failed to successfully arrive at the destination. Funds return to the user with a second posted Transaction attached to the same flow. 
- status_detailsnullable object Status details for an OutboundTransfer in a failedorreturnedstate.- status_details.failednullable object The failedstatus reason.- status_details.failed. reasonenum The failedstatus reason.Possible enum valuespayout_method_ declined The outbound flow to this payout method was declined. payout_method_ does_ not_ exist Payout method used for this outbound flow does not exist. payout_method_ expired Payout method used for this outbound flow expired. payout_method_ unsupported Payout method used for this outbound flow is unsupported. payout_method_ usage_ frequency_ limit_ exceeded The usage frequency limit for this payout method was exceeded. unknown_failure Unknown failure. 
 
- status_details.returnednullable object The returnedstatus reason.- status_details.returned. reasonenum The returnedstatus reason.Possible enum valuespayout_method_ canceled_ by_ customer The outbound flow to this payout method was canceled by customer. payout_method_ closed Payout method account used for this outbound flow is closed. payout_method_ currency_ unsupported Currency is not supported by the payout method account. payout_method_ does_ not_ exist Payout method account used for this outbound flow does not exist. payout_method_ holder_ address_ incorrect Address on the payout method account is incorrect. payout_method_ holder_ details_ incorrect The payout method account holder’s details are incorrect. payout_method_ holder_ name_ incorrect Name on the payout method account is incorrect. payout_method_ invalid_ account_ number The outbound flow to this payout method has an invalid account number. payout_method_ restricted Payout method account used for this outbound flow is restricted. recalledThe outbound flow to this payout method was recalled. Show 1 more 
 
 
- status_transitionsnullable object Hash containing timestamps of when the object transitioned to a particular status. - status_transitions.canceled_ atnullable timestamp Timestamp describing when an OutboundTransfer changed status to canceled. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.
- status_transitions.failed_ atnullable timestamp Timestamp describing when an OutboundTransfer changed status to failed. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.
- status_transitions.posted_ atnullable timestamp Timestamp describing when an OutboundTransfer changed status to posted. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.
- status_transitions.returned_ atnullable timestamp Timestamp describing when an OutboundTransfer changed status to returned. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.
 
- toobjectTo which payout method the OutboundTransfer was sent. - to.creditedobject The monetary amount being credited to the destination. - to.credited. currencystring A lowercase alpha3 currency code like “usd”. 
- to.credited. valueinteger In minor units like 123 for 1.23 USD. 
 
- to.payout_ methodstring The payout method which the OutboundTransfer uses to send payout. 
 
- trace_idobjectPreview feature A unique identifier that can be used to track this OutboundTransfer with recipient bank. Banks might call this a “reference number” or something similar. - trace_id.statusenum Possible values are pending,supported, andunsupported. Initially set topending, it changes tosupportedwhen the recipient bank provides a trace ID, orunsupportedif the recipient bank doesn’t support it. Note that this status may not align with the OutboundPayment or OutboundTransfer status and can remainpendingeven after the payment or transfer is posted.Possible enum valuespendingPending to receive TraceId information from recipient bank. supportedTraceId is supported by the recipient bank. unsupportedTraceId is not supported by the recipient bank. 
- trace_id.valuenullable string The trace ID value if trace_isid. status supported, otherwise empty.
 
Error returned when user selected a delivery option but the specified amount exceeds the method limits.
Error returned when the provided Card payout method is not eligible for outbound payment or outbound transfer.
Error returned when the Confirmation of Payee is not accepted.
Error returned when the selected delivery option is not supported for the payout method.
Error returned when there is no active financial address required for GB OBPs or OBTs.
Error returned when the balance type in the OutboundPayment/OutboundTransfer request does not support the provided currency.
Error returned when the balance of provided financial account and balance type in the OutboundPayment/OutboundTransfer request does not have enough funds.
Error returned when the payout method country does not match the recipient account country.
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.
The user attempts to create an outbound flow from a closed Financial Account.
Error returned when the user is not allowed to make this OutboundTransfer request.
Error returned when the provided recipient verification has been used for another payment.
Error returned when provided recipient verification has not been acknowledged.
Error returned when provided recipient verification is expired.
Error returned when recipient verification is missing for OBTs which requires recipient verification prior to OBT initiation.
Error returned when payout method on recipient verification creation request don’t match outbound transfer creation request.
Error returned when recipient on recipient verification creation request don’t match outbound transfer creation request.
Error returned when the recipient account name of the recipient verification no longer matches the verified name.
Error returned when the payout method does not support the request’s payout method currency.
The required storer capabilities are missing.
The required storer capabilities are not active.
The currency is not supported for Financial Accounts.
Creation of an object is not allowed with a managed account.
Deprecated. Error returned when balance type of provided financial account in the OutboundPayment/OutboundTransfer request cannot be identified.
Error returned when financial account in the OutboundPayment/OutboundTransfer request cannot be identified.
Error returned when the provided recipient verification cannot be identified.
Error returned when the payout method in the OutboundPayment/OutboundTransfer request cannot be identified.
An idempotent retry occurred with different request parameters.
{  "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}