Yes you can implement 30 days (or X days) money back guarantee using stripe in your system. You need to let the customer use all the features available in your system. And, if they want to cancel the subscription prior 31st day of the subscription then you need to have logic to handle such scenario.
In such case you need to manually calculate the prorated refund amount and make a manual refund. Stripe does not automatically make refunds on your behalf.
Well, If you would like to cancel the subscription immediately, but keep the subscription active until the end of the billing period (e.g., through the time the customer has already paid for), provide an
at_period_end value of true:
customer = Stripe::Customer.retrieve("cus_3R1W8PG2DmsmM9") customer.subscriptions.retrieve("sub_3R3PlB2YlJe84a").delete(:at_period_end => true)
- Stripe sends out a
customer.subscription.deletedevent when a customer’s subscription is canceled immediately.
customer.subscription.updatedevent is immediately triggered if you cancel a subscription at the end of the billing period instead, reflecting the change in the subscription’s
cancel_at_period_endvalue. When the subscription is actually canceled at the end of the period, a
customer.subscription.deletedevent will occur.
- Note: No refunds will be made; if any refund is applicable you need to manually catch the charge_object and call
- When you refund, refunds field in the charge object will be updated
- If you see in stripe-dashboard; you will see the missing amount will be declared as transaction and processing fees.
- Status:Partially Refunded