Create a ReservePlan Preview

Create a ReservePlan for a given account of a given type.

Parameters

  • percentintegerRequired

    The percentage of each Charge to reserve.

  • typeenumRequired

    The type of the ReservePlan.

    Possible enum values
    fixed_release

    The ReservePlan releases funds after a fixed duration.

    rolling_release

    The ReservePlan releases funds on a rolling basis.

  • currencyenum

    Three-letter ISO currency code, in lowercase. Must be a supported currency. Leave unset to create a ReservePlan for all currencies.

  • fixed_releaseobject

    Configuration specifying when all funds will be released when the ReservePlan is configured for fixed release.

  • 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.

  • rolling_releaseobject

    Configuration specifying how long reserves will be held when the ReservePlan is configured for rolling release.

Returns

Returns a ReservePlan object.

POST /v1/reserve/plans
cURL
curl https://api.stripe.com/v1/reserve/plans \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \
-d type=rolling_release \
-d percent=15 \
-d currency=usd \
-d "rolling_release[days_after_charge]"=30 \
-d "rolling_release[expires_on]"=1755972438
Response
{
"id": "resplan_61SxrVOzQu6XIJSCx41Q8rCFhzAUW",
"object": "reserve.plan",
"created": 1753380438,
"created_by": "application",
"currency": "usd",
"disabled_at": null,
"livemode": false,
"metadata": {},
"percent": 15,
"rolling_release": {
"days_after_charge": 30,
"expires_on": 1755972438
},
"status": "active",
"type": "rolling_release"
}

Update a ReservePlan Preview

Update a ReservePlan’s configuration, percentage, or metadata.

Parameters

  • idstringRequired

    The identifier of the ReservePlan to update.

  • fixed_releaseobject

    Configuration specifying when all funds will be released when the ReservePlan is configured for fixed release.

  • 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.

  • percentinteger

    The percentage of each Charge to reserve.

  • rolling_releaseobject

    Configuration specifying how long reserves will be held when the ReservePlan is configured for rolling release.

Returns

Returns the updated ReservePlan object.

POST /v1/reserve/plans/:id
cURL
curl https://api.stripe.com/v1/reserve/plans/resplan_61SxxwCbZ70gJfcoy41Q8rCFhzAUW \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \
-d percent=20 \
-d "rolling_release[days_after_charge]"=40 \
-d "rolling_release[expires_on]"=1755997558 \
-d "metadata[test_key]"=test_value
Response
{
"id": "resplan_61SxxwCbZ70gJfcoy41Q8rCFhzAUW",
"object": "reserve.plan",
"created": 1753405164,
"created_by": "application",
"currency": "usd",
"disabled_at": null,
"livemode": false,
"metadata": {
"test_key": "test_value"
},
"percent": 20,
"rolling_release": {
"days_after_charge": 40,
"expires_on": 1755997675
},
"status": "active",
"type": "rolling_release"
}

Retrieve a ReservePlan Preview

Retrieve a ReservePlan.

Parameters

  • idstringRequired

    The identifier of the ReservePlan to retrieve.

Returns

Returns a ReservePlan object.

GET /v1/reserve/plans/:id
cURL
curl https://api.stripe.com/v1/reserve/plans/resplan_61SxrVOzQu6XIJSCx41Q8rCFhzAUW \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}"
Response
{
"id": "resplan_61SxrVOzQu6XIJSCx41Q8rCFhzAUW",
"object": "reserve.plan",
"created": 1753380438,
"created_by": "application",
"currency": "usd",
"disabled_at": null,
"livemode": false,
"metadata": {},
"percent": 15,
"rolling_release": {
"days_after_charge": 30,
"expires_on": 1755972438
},
"status": "active",
"type": "rolling_release"
}

List ReservePlans Preview

Returns a list of ReservePlans previously created. The ReservePlans are returned in sorted order, with the most recent ReservePlans appearing first.

Parameters

No parameters.

More parameters

  • ending_beforestring

  • limitinteger

  • starting_afterstring

Returns

A dictionary with a data property that contains an array of up to limit ReservePlans, starting after ReservePlan starting_after and ending before ReservePlan ending_before. Each entry in the array is a separate ReservePlan object. If no more ReservePlans are available, the resulting array will be empty.

GET /v1/reserve/plans
cURL
curl https://api.stripe.com/v1/reserve/plans \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}"
Response
{
"object": "list",
"data": [
{
"id": "resplan_61SxxwCbZ70gJfcoy41Q8rCFhzAUW",
"object": "reserve.plan",
"created": 1753405164,
"created_by": "application",
"currency": "usd",
"disabled_at": null,
"livemode": false,
"metadata": {},
"percent": 15,
"rolling_release": {
"days_after_charge": 30,
"expires_on": 1755997163
},
"status": "active",
"type": "rolling_release"
},
{
"id": "resplan_61SxrVOzQu6XIJSCx41Q8rCFhzAUW",
"object": "reserve.plan",
"created": 1753380438,
"created_by": "application",
"currency": "usd",
"disabled_at": 1753405108,
"livemode": false,
"metadata": {},
"percent": 15,
"rolling_release": {
"days_after_charge": 30,
"expires_on": 1755972438
},
"status": "disabled",
"type": "rolling_release"
}
],
"has_more": false,
"url": "/v1/reserve/plans"
}

Disable a ReservePlan Preview

Disables a ReservePlan by transitioning it to a disabling state.

All associated ReserveHolds will be asynchronously released, after which the plan will automatically transition to disabled state.

Note: This action is irreversible - a disabled ReservePlan cannot be re-enabled.

Parameters

  • idstringRequired

    The identifier of the ReservePlan to disable.

Returns

Returns the updated ReservePlan object.

POST /v1/reserve/plans/:id/disable
cURL
curl -X POST https://api.stripe.com/v1/reserve/plans/resplan_61SxrVOzQu6XIJSCx41Q8rCFhzAUW/disable \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}"
Response
{
"id": "resplan_61SxrVOzQu6XIJSCx41Q8rCFhzAUW",
"object": "reserve.plan",
"created": 1753380438,
"created_by": "application",
"currency": "usd",
"disabled_at": null,
"livemode": false,
"metadata": {},
"percent": 15,
"rolling_release": {
"days_after_charge": 30,
"expires_on": 1755972438
},
"status": "disabling",
"type": "rolling_release"
}