Skip to main content

Custom subscription platform

How to integrate ProsperStack with a custom subscription platform

ProsperStack provides support for integrating with a custom subscription platform. If your app or service is not using one of the supported subscription platforms, you can still make use of ProsperStack's suite of retention features — you'll just need to process changes to customer subscriptions yourself.

Integrating the cancellation flow

Integrating the cancellation flow with a custom subscription platform is largely the same as with a supported subscription platform, but instead of supplying a subscription platform subscription ID, you'll provide ProsperStack with some basic details about the subscription being canceled.

See the flow embed documentation for details on the required properties.

Handling cancellations

When a cancellation flow is complete, the response from the ProsperStack library contains a status property to let you know what the result of the session was. You can use this property to apply changes to the subscription, by either canceling it or applying discounts or other offer types.

See the flow embed documentation for details on the response object.

Handling offers

When you create an offer, you'll specify details about the offer that will be returned as part of the flow response payload. You can use these details to process the offer and apply it to your customer's subscription.

Custom coupon details

Offer details

The details returned for the different offer types are:


  • coupon_type: stringpercentage or fixed
  • amount_off: string — The discount amount to apply, either in percentage for percentage type coupons or dollars for fixed type coupons
  • duration: stringonce, forever or repeating
  • months: number | null — If duration is repeating, the number of months the coupon should be valid
  • platform_coupon_id: string — The coupon's ID or code from your subscription platform, if provided

Change plan

  • platform_plan_id: string — The plan ID to switch the customer's subscription to
  • prorate: boolean — Whether or not to prorate charges or credits when changing plans

Trial extension

  • days: number — The number of days to extend the trial

Pause subscription

  • interval: stringday, week, month, indefinitely or billing_cycle
  • interval_count: number — The number of intervals to pause the subscription for
  • pause_at: stringimmediately or period_end

Offer metadata

In addition to the offer details, you can also specify metadata when creating or editing an offer. This metadata will be returned in the flow response payload along with the offer details.

Offer metadata

You can use offer metadata to pass any arbitrary data back to your application along with an accepted offer.

Complete integration example

For a complete example of handling the result from a cancellation flow with a custom billing integration, see the flow embed documentation.

API reference

For full details of the offer payload, see the API reference documentation.