To send funds from your Stripe account to a connected account, you create a new transfer object. Your Stripe balance must be able to cover the transfer amount, or you’ll receive an “Insufficient Funds” error.
Parameters
- currencyenumRequired
Three-letter ISO code for currency in lowercase. Must be a supported currency.
- destinationstringRequired
The ID of a connected Stripe account. See the Connect documentation for details.
- amountintegerRequired
A positive integer in cents representing how much to transfer.
- descriptionstring
An arbitrary string attached to the object. Often useful for displaying to users.
- 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
.
More parameters
- source_
transactionstring - source_
typestring - transfer_
groupstring
Returns
Returns a transfer object if there were no initial errors with the transfer creation (e.g., insufficient funds).
{ "id": "tr_1MiN3gLkdIwHu7ixNCZvFdgA", "object": "transfer", "amount": 400, "amount_reversed": 0, "balance_transaction": "txn_1MiN3gLkdIwHu7ixxapQrznl", "created": 1678043844, "currency": "usd", "description": null, "destination": "acct_1MTfjCQ9PRzxEwkZ", "destination_payment": "py_1MiN3gQ9PRzxEwkZWTPGNq9o", "livemode": false, "metadata": {}, "reversals": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/transfers/tr_1MiN3gLkdIwHu7ixNCZvFdgA/reversals" }, "reversed": false, "source_transaction": null, "source_type": "card", "transfer_group": "ORDER_95"}
Updates the specified transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
This request accepts only metadata as an argument.
Parameters
- descriptionstring
An arbitrary string attached to the object. Often useful for displaying to users.
- 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
.
Returns
Returns the transfer object if the update succeeded. This call will raise an error if update parameters are invalid.
{ "id": "tr_1MiN3gLkdIwHu7ixNCZvFdgA", "object": "transfer", "amount": 400, "amount_reversed": 0, "balance_transaction": "txn_1MiN3gLkdIwHu7ixxapQrznl", "created": 1678043844, "currency": "usd", "description": null, "destination": "acct_1MTfjCQ9PRzxEwkZ", "destination_payment": "py_1MiN3gQ9PRzxEwkZWTPGNq9o", "livemode": false, "metadata": { "order_id": "6735" }, "reversals": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/transfers/tr_1MiN3gLkdIwHu7ixNCZvFdgA/reversals" }, "reversed": false, "source_transaction": null, "source_type": "card", "transfer_group": "ORDER_95"}
Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information.
Parameters
No parameters.
Returns
Returns a transfer object if a valid identifier was provided, and raises an error otherwise.
{ "id": "tr_1MiN3gLkdIwHu7ixNCZvFdgA", "object": "transfer", "amount": 400, "amount_reversed": 0, "balance_transaction": "txn_1MiN3gLkdIwHu7ixxapQrznl", "created": 1678043844, "currency": "usd", "description": null, "destination": "acct_1MTfjCQ9PRzxEwkZ", "destination_payment": "py_1MiN3gQ9PRzxEwkZWTPGNq9o", "livemode": false, "metadata": {}, "reversals": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/transfers/tr_1MiN3gLkdIwHu7ixNCZvFdgA/reversals" }, "reversed": false, "source_transaction": null, "source_type": "card", "transfer_group": "ORDER_95"}
Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first.
Parameters
- destinationstring
Only return transfers for the destination specified by this account ID.
More parameters
- createdobject
- ending_
beforestring - limitinteger
- starting_
afterstring - transfer_
groupstring
Returns
A dictionary with a data
property that contains an array of up to limit
transfers, starting after transfer starting_
. Each entry in the array is a separate transfer object. If no more transfers are available, the resulting array will be empty.
{ "object": "list", "url": "/v1/transfers", "has_more": false, "data": [ { "id": "tr_1MiN3gLkdIwHu7ixNCZvFdgA", "object": "transfer", "amount": 400, "amount_reversed": 0, "balance_transaction": "txn_1MiN3gLkdIwHu7ixxapQrznl", "created": 1678043844, "currency": "usd", "description": null, "destination": "acct_1MTfjCQ9PRzxEwkZ", "destination_payment": "py_1MiN3gQ9PRzxEwkZWTPGNq9o", "livemode": false, "metadata": {}, "reversals": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/transfers/tr_1MiN3gLkdIwHu7ixNCZvFdgA/reversals" }, "reversed": false, "source_transaction": null, "source_type": "card", "transfer_group": "ORDER_95" } ]}
Stripe Connect platforms can reverse transfers made to a connected account, either entirely or partially, and can also specify whether to refund any related application fees. Transfer reversals add to the platform’s balance and subtract from the destination account’s balance.
Reversing a transfer that was made for a destination charge is allowed only up to the amount of the charge. It is possible to reverse a transfer_group transfer only if the destination account has enough balance to cover the reversal.
Related guide: Reverse transfers