I know Commerce allows you to just authorize and pay later but the 'pay later' scenario requires re-entering the credit card details. We have a flow that requires the admin to be able to charge a user later without having the credit card details. As such, we would use Stripe's API to create a customer to save the token for future use, as follows:

  1. User places order, providing credit card info to Stripe.
  2. Authorize with Stripe and create a customer in Stripe so as to save the token for later use (ie. do not charge the card right away).
  3. Allow the admin to go into the Craft CP at a later point and charge the customer's card (by making use of the token saved at Stripe). Do this via a status change perhaps?

We're a little lost conceptually how to proceed with this with Craft Commerce. Do we need to write our own custom gateway to do this?

We considered using the built-in Stripe gateway and setting it to "Credit Card Payment Type: Authorize Only" but that means we get the "Make Payment" button on the Order Detail screen and it also isn't doing anything to create the customer on the Stripe end with a saved token.

1 Answer 1


Late answer but this is currently possible (Aug 2018). Make sure you do have your Stripe payment method set to 'Authorize Only (Manually Capture)'.

Go to your order, and you'll find a Capture button in the Transactions box at the bottom. Just hit that button anytime to charge the card.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.