Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

christian_H's avatar

No credit card required with coupon

Hey everyone, I'm trying to set up registration and subscription a certain way and can't seem to figure out how, or if its even possible without a lot of custom code in Spark. My application has multiple plans that require up-front payment and no free plans, so I need the noCardUpFront functionality disabled by default. However, I have coupons that entitle a user to a free year subscription. Basically what I want to do is not require any billing information if a user has one of these coupon codes. So, if a user registered normally they would have to enter their credit card, etc at sign-up. But if a user has a coupon, they would be able to register without filling out the payment info.

Has anyone else attempted a similar set-up, and if so, what did you have to do in order to get this to work? I can't seem to figure out how to disable the billing info requirement in certain cases. Any advice would be very appreciated!

0 likes
3 replies
jonnyv's avatar

I'm in a similar situation. Did you ever find a solution for this?

jekinney's avatar

When you do the validation check on the coupon then assign a specific plan to the user. Similar to the free plan. Just don't send the code to stripe. Do it on your end.

christian_H's avatar

@jonnyv I've got a temporary solution until I have time to come up with something better. You can pass the coupon as a query parameter on the registration page. I have some logic in the controller that checks the coupon and passes a value to the view telling it whether or not to require billing info. Calling Spark::noCardUpFront() on the registration page will let you set that. We use an email campaign to deliver the coupons that contain a link to register that includes the coupon. It is not perfect though because if you just enter the code on the registration page normally it still requires the billing info. I'll be coming back to this at some point, will update when I do

Please or to participate in this conversation.