PaymentIntent transfer_data accepts destination payment_data description and metadata
Introduced 2026-05-27 · score 0.94
HOW TO USE IT
When creating a PaymentIntent with a destination payment, include `transfer_data[payment_data]` to set the destination payment’s description and/or metadata. Use the `2026-05-27.dahlia` API version; description is limited to 5,000 characters and metadata values to 500 characters each.
curl https://api.stripe.com/v1/payment_intents \
-u "<YOUR_SECRET_KEY>" \
-H "Stripe-Version: 2026-05-27.dahlia" \
-d amount=2000 \
-d currency=usd \
-d "transfer_data[destination]=<CONNECTED_ACCOUNT_ID>" \
-d "transfer_data[payment_data][description]=<DESTINATION_PAYMENT_DESCRIPTION>" \
-d "transfer_data[payment_data][metadata][<KEY>]=<VALUE>"WHY THIS HELPS
When creating a PaymentIntent with a destination payment, attach a description or payment-specific metadata to that destination payment.
BEFORE THIS CHANGE
Previously, description and metadata could be set on the transfer, but not on the destination payment created as part of the transfer process.
REQUIREMENTS AND LIMITATIONS
- amount (required): Amount to collect in the smallest currency unit.
- currency (required): Lowercase three-letter ISO currency code.
- transfer_data[destination] (required): Connected account that receives the destination payment; the reference marks destination required within transfer_data.
- transfer_data[payment_data][description]: Description for the destination payment; up to 5,000 characters.
- transfer_data[payment_data][metadata][<KEY>]: Standard key-value metadata for the destination payment; each value can be up to 500 characters.
- Prerequisite: Authenticate using a Stripe secret API key. The release documents this feature for API version 2026-05-27.dahlia; requests can specify it with the Stripe-Version header.
- Prerequisite: After creating the PaymentIntent, attach a payment method and confirm it to continue the payment.
- Applies to destination payments when creating transfers through `transfer_data` on PaymentIntent and Charge objects.
- The `payment_data` hash sets properties for the destination payment, separate from the transfer itself.
- Description limit is 5,000 characters.
- Metadata values can be up to 500 characters each and use Stripe’s standard key-value pair format.
- Maintains full backward compatibility with existing integrations.
FIRST-PARTY EVIDENCE
- https://docs.stripe.com/changelog/dahlia/2026-05-27/transfer-data-destination-payment-description-and-metadata
- https://docs.stripe.com/api/payment_intents/create?api-version=2026-05-27.dahlia
- https://docs.stripe.com/api/payment_intents/create?api-version=2026-05-27.dahlia#create_payment_intent-transfer_data
Check the installed version and the source before using it. Entry JSON