Outbound Transfers

Use OutboundTransfers to transfer funds from a FinancialAccount to a PaymentMethod belonging to the same entity. To send funds to a different party, use OutboundPayments instead. You can send funds over ACH rails or through a domestic wire transfer to a user’s own external bank account.

Simulate OutboundTransfer state changes with the /v1/test_helpers/treasury/outbound_transfers endpoints. These methods can only be called on test mode objects.

The OutboundTransfer object

Attributes

  • idstring

    Unique identifier for the object.

  • objectstring

    String representing the object’s type. Objects of the same type share the same value.

  • amountinteger

    Amount (in cents) transferred.

  • cancelableboolean

    Returns true if the object can be canceled, and false otherwise.

  • createdtimestamp

    Time at which the object was created. Measured in seconds since the Unix epoch.

  • currencyenum

    Three-letter ISO currency code, in lowercase. Must be a supported currency.

  • descriptionnullable string

    An arbitrary string attached to the object. Often useful for displaying to users.

  • destination_payment_methodnullable string

    The PaymentMethod used as the payment instrument for an OutboundTransfer.

  • destination_payment_method_detailsobject

    Details about the PaymentMethod for an OutboundTransfer

  • expected_arrival_datetimestamp

    The date when funds are expected to arrive in the destination account.

  • financial_accountstring

    The FinancialAccount that funds were pulled from.

  • hosted_regulatory_receipt_urlnullable string

    A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe’s money transmission licenses.

  • livemodeboolean

    Has the value true if the object exists in live mode or the value false if the object exists in test mode.

  • metadataobject

    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.

  • returned_detailsnullable object

    Details about a returned OutboundTransfer. Only set when the status is returned.

  • statement_descriptorstring

    Information about the OutboundTransfer to be sent to the recipient account.

  • statusenum

    Current status of the OutboundTransfer: processing, failed, canceled, posted, returned. An OutboundTransfer is processing if it has been created and is pending. The status changes to posted once the OutboundTransfer has been “confirmed” and funds have left the account, or to failed or canceled. If an OutboundTransfer fails to arrive at its destination, its status will change to returned.

  • status_transitionsobject

    Hash containing timestamps of when the object transitioned to a particular status.

  • transactionstringExpandable

    The Transaction associated with this object.

The OutboundTransfer object
{
"id": "obt_1Mtaaz2eZvKYlo2CUu1tWGAl",
"object": "treasury.outbound_transfer",
"amount": 500,
"cancelable": true,
"created": 1680717489,
"currency": "usd",
"description": "OutboundTransfer to my external bank account",
"destination_payment_method": "pm_1234567890",
"destination_payment_method_details": {
"billing_details": {
"address": {
"city": "San Francisco",
"country": "US",
"line1": "1234 Fake Street",
"line2": null,
"postal_code": "94102",
"state": "CA"
},
"email": null,
"name": "Jane Austen"
},
"type": "us_bank_account",
"us_bank_account": {
"account_holder_type": "company",
"account_type": "checking",
"bank_name": "STRIPE TEST BANK",
"fingerprint": "AP24Iso0btGp4N10",
"last4": "6789",
"network": "ach",
"routing_number": "110000000"
}
},
"expected_arrival_date": 1680825600,
"financial_account": "fa_1Mtaaz2eZvKYlo2CUf56sIA1",
"hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/CBQaFwoVYWNjdF8xMDMyRDgyZVp2S1lsbzJDKLHttqEGMgYCCwVOvUY6NpO8ArWrjrz6Hxk3d8tQ4d_RvOqMTOeq6js5eE94-f-7DwBzjjD1wxIUhOyub1KFYH8QKxj9oA",
"livemode": false,
"metadata": {},
"returned_details": null,
"statement_descriptor": "transfer",
"status": "processing",
"status_transitions": {
"canceled_at": null,
"failed_at": null,
"posted_at": null,
"returned_at": null
},
"transaction": "trxn_1Mtaaz2eZvKYlo2Cn9D12psR"
}

Create an OutboundTransfer

Creates an OutboundTransfer.

Parameters

  • amountintegerRequired

    Amount (in cents) to be transferred.

  • currencyenumRequired

    Three-letter ISO currency code, in lowercase. Must be a supported currency.

  • financial_accountstringRequired

    The FinancialAccount to pull funds from.

  • descriptionstring

    An arbitrary string attached to the object. Often useful for displaying to users.

  • destination_payment_methodstring

    The PaymentMethod to use as the payment instrument for the OutboundTransfer.

  • destination_payment_method_optionsobject

    Hash describing payment method configuration details.

  • metadataobject

    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.

  • statement_descriptorstring

    Statement descriptor to be shown on the receiving end of an OutboundTransfer. Maximum 10 characters for ach transfers or 140 characters for us_domestic_wire transfers. The default value is “transfer”.

Returns

Returns an OutboundTransfer object if there were no issues with OutboundTransfer creation. The status of the created OutboundTransfer object is initially marked as processing.

POST /v1/treasury/outbound_transfers
curl https://api.stripe.com/v1/treasury/outbound_transfers \
-u "sk_test_4eC39Hq...arjtT1zdp7dcsk_test_4eC39HqLyjWDarjtT1zdp7dc:" \
-d financial_account=fa_1Mtaaz2eZvKYlo2CUf56sIA1 \
-d destination_payment_method=pm_1234567890 \
-d amount=500 \
-d currency=usd \
-d description="OutboundTransfer to my external bank account"
Response
{
"id": "obt_1Mtaaz2eZvKYlo2CUu1tWGAl",
"object": "treasury.outbound_transfer",
"amount": 500,
"cancelable": true,
"created": 1680717489,
"currency": "usd",
"description": "OutboundTransfer to my external bank account",
"destination_payment_method": "pm_1234567890",
"destination_payment_method_details": {
"billing_details": {
"address": {
"city": "San Francisco",
"country": "US",
"line1": "1234 Fake Street",
"line2": null,
"postal_code": "94102",
"state": "CA"
},
"email": null,
"name": "Jane Austen"
},
"type": "us_bank_account",
"us_bank_account": {
"account_holder_type": "company",
"account_type": "checking",
"bank_name": "STRIPE TEST BANK",
"fingerprint": "AP24Iso0btGp4N10",
"last4": "6789",
"network": "ach",
"routing_number": "110000000"
}
},
"expected_arrival_date": 1680825600,
"financial_account": "fa_1Mtaaz2eZvKYlo2CUf56sIA1",
"hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/CBQaFwoVYWNjdF8xMDMyRDgyZVp2S1lsbzJDKLHttqEGMgYCCwVOvUY6NpO8ArWrjrz6Hxk3d8tQ4d_RvOqMTOeq6js5eE94-f-7DwBzjjD1wxIUhOyub1KFYH8QKxj9oA",
"livemode": false,
"metadata": {},
"returned_details": null,
"statement_descriptor": "transfer",
"status": "processing",
"status_transitions": {
"canceled_at": null,
"failed_at": null,
"posted_at": null,
"returned_at": null
},
"transaction": "trxn_1Mtaaz2eZvKYlo2Cn9D12psR"
}

Retrieve an OutboundTransfer

Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list.

Parameters

No parameters.

Returns

Returns an OutboundTransfer object if a valid identifier was provided. Otherwise, returns an error.

GET /v1/treasury/outbound_transfers/:id
curl https://api.stripe.com/v1/treasury/outbound_transfers/obt_1Mtaaz2eZvKYlo2CUu1tWGAl \
-u "sk_test_4eC39Hq...arjtT1zdp7dcsk_test_4eC39HqLyjWDarjtT1zdp7dc:"
Response
{
"id": "obt_1Mtaaz2eZvKYlo2CUu1tWGAl",
"object": "treasury.outbound_transfer",
"amount": 500,
"cancelable": true,
"created": 1680717489,
"currency": "usd",
"description": "OutboundTransfer to my external bank account",
"destination_payment_method": "pm_1234567890",
"destination_payment_method_details": {
"billing_details": {
"address": {
"city": "San Francisco",
"country": "US",
"line1": "1234 Fake Street",
"line2": null,
"postal_code": "94102",
"state": "CA"
},
"email": null,
"name": "Jane Austen"
},
"type": "us_bank_account",
"us_bank_account": {
"account_holder_type": "company",
"account_type": "checking",
"bank_name": "STRIPE TEST BANK",
"fingerprint": "AP24Iso0btGp4N10",
"last4": "6789",
"network": "ach",
"routing_number": "110000000"
}
},
"expected_arrival_date": 1680825600,
"financial_account": "fa_1Mtaaz2eZvKYlo2CUf56sIA1",
"hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/CBQaFwoVYWNjdF8xMDMyRDgyZVp2S1lsbzJDKLHttqEGMgYCCwVOvUY6NpO8ArWrjrz6Hxk3d8tQ4d_RvOqMTOeq6js5eE94-f-7DwBzjjD1wxIUhOyub1KFYH8QKxj9oA",
"livemode": false,
"metadata": {},
"returned_details": null,
"statement_descriptor": "transfer",
"status": "processing",
"status_transitions": {
"canceled_at": null,
"failed_at": null,
"posted_at": null,
"returned_at": null
},
"transaction": "trxn_1Mtaaz2eZvKYlo2Cn9D12psR"
}

List all OutboundTransfers

Returns a list of OutboundTransfers sent from the specified FinancialAccount.

Parameters

  • financial_accountstringRequired

    Returns objects associated with this FinancialAccount.

  • statusenum

    Only return OutboundTransfers that have the given status: processing, canceled, failed, posted, or returned.

More parameters

  • ending_beforestring

  • limitinteger

  • starting_afterstring

Returns

A dictionary with a data property that contains an array of up to limit OutboundTransfers, starting after OutboundTransfer starting_after. Each entry in the array is a separate OutboundTransfer object. If no more OutboundTransfers are available, the resulting array is empty.

GET /v1/treasury/outbound_transfers
curl -G https://api.stripe.com/v1/treasury/outbound_transfers \
-u "sk_test_4eC39Hq...arjtT1zdp7dcsk_test_4eC39HqLyjWDarjtT1zdp7dc:" \
-d limit=3 \
-d financial_account=fa_1Mtaaz2eZvKYlo2CUf56sIA1
Response
{
"object": "list",
"url": "/v1/treasury/outbound_transfers",
"has_more": false,
"data": [
{
"id": "obt_1Mtaaz2eZvKYlo2CUu1tWGAl",
"object": "treasury.outbound_transfer",
"amount": 500,
"cancelable": true,
"created": 1680717489,
"currency": "usd",
"description": "OutboundTransfer to my external bank account",
"destination_payment_method": "pm_1234567890",
"destination_payment_method_details": {
"billing_details": {
"address": {
"city": "San Francisco",
"country": "US",
"line1": "1234 Fake Street",
"line2": null,
"postal_code": "94102",
"state": "CA"
},
"email": null,
"name": "Jane Austen"
},
"type": "us_bank_account",
"us_bank_account": {
"account_holder_type": "company",
"account_type": "checking",
"bank_name": "STRIPE TEST BANK",
"fingerprint": "AP24Iso0btGp4N10",
"last4": "6789",
"network": "ach",
"routing_number": "110000000"
}
},
"expected_arrival_date": 1680825600,
"financial_account": "fa_1Mtaaz2eZvKYlo2CUf56sIA1",
"hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/CBQaFwoVYWNjdF8xMDMyRDgyZVp2S1lsbzJDKLHttqEGMgYCCwVOvUY6NpO8ArWrjrz6Hxk3d8tQ4d_RvOqMTOeq6js5eE94-f-7DwBzjjD1wxIUhOyub1KFYH8QKxj9oA",
"livemode": false,
"metadata": {},
"returned_details": null,
"statement_descriptor": "transfer",
"status": "processing",
"status_transitions": {
"canceled_at": null,
"failed_at": null,
"posted_at": null,
"returned_at": null
},
"transaction": "trxn_1Mtaaz2eZvKYlo2Cn9D12psR"
}
{...}
{...}
],
}
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Log in to your Stripe account and press Control + Backtick (`) on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g., )
The Stripe Shell is best experienced on desktop.
$