I’m working on an app for a client where they can create promos that will then be sent out by influencers. Once an influencer sends out a promo it is desired to pay them for their work. My question comes before all that. The client wants to validate a credit card when a promo is created, before any charge is initiated. I’m using the Stripe.js 2 plugin by copilot to handle all of this, and I’m relatively new to working with it. I’ve looked around Stripe API reference and their documents and I can’t really find an answer. Has anyone figured out if this is even possible?
Use a card number 42424242… with any exp date and cvc code. This while you are in dev mode with Stripe. This will allow you to test without being charged at all.
If I’m not mistaken, I think the OP is asking how to validate a card before actually running a live charge on it.
Correct, we need to validate a card every time a data type of promo is created.
Short answers…
Just save the card against the customer, which will validate the card (but not check a balance etc).
If you have the Stripe customer (cu_xxxxxxx) and a payment method (pm_xxxxx)…
then you can use the Stripe API to create a Payment Intent for a nominal amount, which you then never Capture - just like a hotel takes a hold on your card,
Or do the classic … take 1p and then refund it.
The latter 2 you will need agreement from the card holder.
Thank you for the help. This is the method I was looking for!
When you say agreement, do you mean something like accepting terms of service?
Yeah 
Telling them that you will take 1p and return it, or whatever you are going to do!
Just to expound on @NigelG’s spot-on response, you’ll need to set the capture_method parameter of the Create a PaymentIntent call to “manual”. (I’m not intimately familiar with Stripe.js 2, though, so I can’t provide details on working with that specific plugin.)
-Steve
Ok thanks, just making sure. I’ll get back to my team and hopefully they accept the solution.
And just one more follow-up, does this method need to be done with a payment intent, or could this also be accomplished with a charge?
Placing a “hold” on a card (hotel check-in) you just create a Payment Intent as above.
The Charge is when you take the money (up to the Intent Amount).
If you wanted to take a small amount, then you just charge as normal. You could take a nominal amount and then take that off the final total.
Okay thank you for answering.