Charging Annual pricing (one-time payment)


So im using stripe.js and i have 2 types of billing terms: Monthly and Annual. For monthly, i use subscription so it charges monthly automatically. However for Annual term, i cannot use subscriptions for this even if they have a “one-time” payment mode (which is what i need).

What i did instead is create a paymentintent to charge uses that opt for Annual term option. My problem now is, after multiple tests you cannot cancel intents unless its based on one of the status mentioned in Stripe’s doc.

From my understanding, i cant cancel a payment intent at all. That said, what would be the best possible solution for this? Im just stuck at Annual payment term and i need the “cancel subscription” feature to work with this as well. TIA

Why do you want to cancel the annual payment if it is a one-time thing that the person has agreed to?

We do the same thing in our app - Stripe’s subscription system for monthly payments, and just normal Payment Intents for people paying for a whole year at once.

Not sure I understand the issue.

1 Like

Your argument does make sense actually… Well, ive gotten so used to our system wherein you can cancel said subscription but for Annual, i guess it really cant be cancelled since what you said is why the User went for that payment term.

So does this mean cancelling a paymentintent really cannot be done?

Well, if the payment has already been taken then it’s more of a refund than a cancellation. You can refund partial amounts so if the person “cancelled” after 6 months you’d actually be doing a partial refund for 50% of whatever the original charge was.

I think this makes more sense and would be the best step. That said, how do i go about doing this with stripejs?

If you’re using the CoPilot Stripe.js2 plugin there is an action called “Stripe.js - Refund - Create”.

1 Like

Yes, thats the same plugin i use. Okay il test this out. What does reverse transfer mean? Im not sure i understand this correctly.

That’s there if you’re using Stripe Connect, and the money has already been sent to a different account.

So if you were operating a subscription service on behalf of someone else, and had already sent the money to them, having that option checked would take the money back from their Stripe Connect account. If it’s unchecked, it just comes out of your account.

Again, if you’re not using Stripe Connect it should just be no.

1 Like

Okay, i understand now. And no, we dont use Stripe Connect.

Thank you so much for sharing btw! Definitely got me out of this hole.