Skip to content

Stripe: Update a transfer

Stripe transfers.postTransfersTransfer: arguments, response, policy and SDK examples.

← Transfers operations · Get started

Operation stripe.posttransferstransfer

Provider route: POST /v1/transfers/{transfer}. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/stripe with npm, or alter-sdk-stripe with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { StripeIntegration } from "@alter-ai/stripe";
async function execute(input: Parameters<StripeIntegration["transfers"]["postTransfersTransfer"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new StripeIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.transfers.postTransfersTransfer(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_stripe import StripeIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = StripeIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.transfers.post_transfers_transfer(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.transferstringRequired within parentMaximum length: 5000
headersobjectOptionalAdditional keys: not allowed
headers.Idempotency-KeystringOptionalMinimum length: 1
Maximum length: 255
bodyModelOptionalExpand Update a top-up — request body — body

Referenced models: Update a top-up — request body — body

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Create a transfer — response body

Referenced models: Create a transfer — response body

704 more schemas are linked from the tables above, on the schema pages.

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 top-up — request body — body
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
descriptionstringOptionalAn arbitrary string attached to the object. Often useful for displaying to users.
Maximum length: 5000
expandarrayOptionalSpecifies which fields in the response should be expanded.
expand[]stringEach itemMaximum length: 5000
metadataJSONOptionalSet 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`.
metadata (anyOf 1)objectAlternativeAdditional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keys
metadata (anyOf 2)stringAlternativeOne of:
Create an account — response body — groups The groups associated with the account payments pricing
FieldTypePresenceDescription and constraints
$objectRoot
payments_pricingJSONOptional
payments_pricing (anyOf 1)stringAlternativeThe group the account is in to determine their payments pricing, and null if the account is on customized pricing. [See the Platform pricing tool documentation](https://docs.stripe.com/connect/platform-pricing-tools) for details.
Maximum length: 5000
payments_pricing (anyOf 2)nullAlternative
Create an account — response body — tos acceptance
FieldTypePresenceDescription and constraints
$objectRoot
dateJSONOptional
date (anyOf 1)JSONAlternative
date (anyOf 1) (anyOf 1)integerAlternativeThe Unix timestamp marking when the account representative accepted their service agreement
Format: unix-time
date (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
date (anyOf 2)nullAlternative
ipJSONOptional
ip (anyOf 1)stringAlternativeThe IP address from which the account representative accepted their service agreement
Maximum length: 5000
ip (anyOf 2)nullAlternative
service_agreementstringOptionalThe user's service agreement type
Maximum length: 5000
user_agentJSONOptional
user_agent (anyOf 1)stringAlternativeThe user agent of the browser from which the account representative accepted their service agreement
Maximum length: 5000
user_agent (anyOf 2)nullAlternative
PostApplicationFeesIdRefund — response body — application / object: application
FieldTypePresenceDescription and constraints
$objectRoot
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
nameJSONOptional
name (anyOf 1)stringAlternativeThe name of the application.
Maximum length: 5000
name (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: application
Create a charge — response body — radar options
FieldTypePresenceDescription and constraints
$objectRootOptions to configure Radar. See [Radar Session](https://docs.stripe.com/radar/radar-session) for more information.
sessionstringOptionalA [Radar Session](https://docs.stripe.com/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
Maximum length: 5000

SDK function policy ID: stripe.posttransferstransfer. Catalog operation: PostTransfersTransfer. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Pinned headers: {"Stripe-Version": "2026-09-30.endive"}

Official provider source

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.