Skip to content

Stripe: Transfers schemas

2 Stripe schemas with complete fields and constraints.

← Transfers operations · All schemas

Create a transfer — response body

FieldTypePresenceDescription and constraints
$objectRootA `Transfer` object is created when you move funds between Stripe accounts as
part of Connect.

Before April 6, 2017, transfers also represented movement of funds from a
Stripe account to a card or bank account. This behavior has since been split
out into a [Payout](https://docs.stripe.com/api#payout_object) object, with corresponding payout endpoints. For more
information, read about the
[transfer/payout split](https://docs.stripe.com/transfer-payout-split).

Related guide: [Creating separate charges and transfers](https://docs.stripe.com/connect/separate-charges-and-transfers)
amountJSONRequired within parent
amount (anyOf 1)integerAlternativeAmount in cents (or local equivalent) to be transferred.
amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount_reversedJSONRequired within parent
amount_reversed (anyOf 1)integerAlternativeAmount in cents (or local equivalent) reversed (can be less than the amount attribute on the transfer if a partial reversal was issued).
amount_reversed (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
balance_transactionJSONOptional
balance_transaction (anyOf 1)JSONAlternativeBalance transaction that describes the impact of this transfer on your account balance.
balance_transaction (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
balance_transaction (anyOf 1) (anyOf 2)ModelAlternativeExpand Retrieve a balance transaction — balance get Balance History Id — response body
balance_transaction (anyOf 2)nullAlternative
createdJSONRequired within parent
created (anyOf 1)integerAlternativeTime that this record of the transfer was first created.
Format: unix-time
created (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
currencystringRequired within parentThree-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).
Format: currency
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the object. Often useful for displaying to users.
Maximum length: 5000
description (anyOf 2)nullAlternative
destinationJSONOptional
destination (anyOf 1)JSONAlternativeID of the Stripe account the transfer was sent to.
destination (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
destination (anyOf 1) (anyOf 2)ModelAlternativeExpand Create an account — response body
destination (anyOf 2)nullAlternative
destination_paymentJSONOptionalIf the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.
destination_payment (anyOf 1)stringAlternativeMaximum length: 5000
destination_payment (anyOf 2)ModelAlternativeExpand Create a charge — response body
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
metadataobjectRequired within parentSet 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.
Additional keys: see wildcard field
metadata.*stringAdditional keysMaximum length: 500
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: transfer
reversalsobjectRequired within parentA list of reversals that have been applied to the transfer.
reversals.dataarrayRequired within parentDetails about each object.
reversals.data[]ModelEach itemExpand Update a reversal — response body
reversals.has_morebooleanRequired within parentTrue if this list has another page of items after this one that can be fetched.
reversals.objectstringRequired within parentString representing the object's type. Objects of the same type share the same value. Always has the value `list`.
Known values: list
reversals.urlstringRequired within parentThe URL where this list can be accessed.
Maximum length: 5000
reversedbooleanRequired within parentWhether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.
source_transactionJSONOptional
source_transaction (anyOf 1)JSONAlternativeID of the charge that was used to fund the transfer. If null, the transfer was funded from the available balance.
source_transaction (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
source_transaction (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a charge — response body
source_transaction (anyOf 2)nullAlternative
source_typestringOptionalThe source balance this transfer came from. One of `card`, `fpx`, or `bank_account`.
Maximum length: 5000
transfer_groupJSONOptional
transfer_group (anyOf 1)stringAlternativeA string that identifies this transaction as part of a group. See the [Connect documentation](https://docs.stripe.com/connect/separate-charges-and-transfers#transfer-options) for details.
Maximum length: 5000
transfer_group (anyOf 2)nullAlternative

Referenced models: Create an account — response body, Retrieve a balance transaction — balance get Balance History Id — response body, Create a charge — response body, Update a reversal — response body

Update a reversal — response body

FieldTypePresenceDescription and constraints
$objectRoot[Stripe Connect](https://docs.stripe.com/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](/docs/connect/destination-charges) is allowed only up to the amount of
the charge. It is possible to reverse a
[transfer_group](https://docs.stripe.com/connect/separate-charges-and-transfers#transfer-options)
transfer only if the destination account has enough balance to cover the
reversal.

Related guide: [Reverse transfers](https://docs.stripe.com/connect/separate-charges-and-transfers#reverse-transfers)
amountJSONRequired within parent
amount (anyOf 1)integerAlternativeAmount, in cents (or local equivalent).
amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
balance_transactionJSONOptional
balance_transaction (anyOf 1)JSONAlternativeBalance transaction that describes the impact on your account balance.
balance_transaction (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
balance_transaction (anyOf 1) (anyOf 2)ModelAlternativeExpand Retrieve a balance transaction — balance get Balance History Id — response body
balance_transaction (anyOf 2)nullAlternative
createdJSONRequired within parent
created (anyOf 1)integerAlternativeTime at which the object was created. Measured in seconds since the Unix epoch.
Format: unix-time
created (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
currencystringRequired within parentThree-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).
Format: currency
destination_payment_refundJSONOptional
destination_payment_refund (anyOf 1)JSONAlternativeLinked payment refund for the transfer reversal.
destination_payment_refund (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
destination_payment_refund (anyOf 1) (anyOf 2)ModelAlternativeExpand Cancel a refund — response body
destination_payment_refund (anyOf 2)nullAlternative
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet 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.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: transfer_reversal
source_refundJSONOptional
source_refund (anyOf 1)JSONAlternativeID of the refund responsible for the transfer reversal.
source_refund (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
source_refund (anyOf 1) (anyOf 2)ModelAlternativeExpand Cancel a refund — response body
source_refund (anyOf 2)nullAlternative
transferJSONRequired within parentID of the transfer that was reversed.
transfer (anyOf 1)stringAlternativeMaximum length: 5000
transfer (anyOf 2)ModelAlternativeExpand Create a transfer — response body

Referenced models: Retrieve a balance transaction — balance get Balance History Id — response body, Cancel a refund — response body, Create a transfer — response body

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.