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.
Offer details
The details returned for the different offer types are:
Coupons
coupon_type: string
—percentage
orfixed
amount_off: string
— The discount amount to apply, either in percentage forpercentage
type coupons or dollars forfixed
type couponsduration: string
—once
,forever
orrepeating
months: number | null
— Ifduration
isrepeating
, the number of months the coupon should be validplatform_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 toprorate: 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: string
—day
,week
,month
,indefinitely
orbilling_cycle
interval_count: number
— The number ofinterval
s to pause the subscription forpause_at: string
—immediately
orperiod_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.
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.