What is a Payment Hold?
A payment hold:- Ensures that the customer has enough funds to cover the cost of the order.
- Holds the funds for a certain period of time, to ensure they’re available to complete the payment.
- Allows you to verify necessary information before actually charging the customer.
Important Limitations
Common Use Case: Prescription Approval
A common use case for payment holds is when you need to verify a prescription before charging the customer. Here’s how this typically works:- At checkout, place a hold on a one-time payment for the first month’s cost.
- When the prescription is approved, release the hold to charge the customer.
- At the same time, set up a subscription that’s delayed by 30 days.
- The customer isn’t charged until their prescription is approved.
- The subscription doesn’t start charging until 30 days after the prescription is approved.
- The one-time payment effectively replaces the first month of the subscription.
Implementation Steps
Set up the one-time payment hold
- In your Stripe component, select “Payment” as the Checkout mode.
- Enable the “Place a hold on the customer’s card” option.
- Use a one-time payment price ID (not a subscription price ID).
Handle the prescription approval
- When the prescription is approved, release the hold on the payment.
- Create a new subscription for the customer with a 30-day delay.
- The subscription should hopefully use the same payment method that was used for the hold, but you will need to verify this as it’s outside of Embeddables’ control.
Best Practices
-
Clear Communication:
- Clearly communicate to customers that their payment method is being held but not charged.
- Explain when they can expect to be charged.
- Provide information about the subscription that will start after the first payment.
-
Error Handling:
- Have a process in place for handling declined payments when releasing the hold.
- Consider what happens if the prescription is not approved.
-
Subscription Management:
- Ensure your backend system can handle the creation of delayed subscriptions.
- Consider how you’ll manage the transition from the one-time payment to the subscription.
Frequently Asked Questions
Can't I just place a hold on the subscription itself?
Can't I just place a hold on the subscription itself?
Why not cancel the on-hold payment and replace it with a subscription that starts straight away?
Why not cancel the on-hold payment and replace it with a subscription that starts straight away?
What if I just collect card details at checkout?
What if I just collect card details at checkout?
Can Embeddables handle the release of funds when we're ready to take the payment?
Can Embeddables handle the release of funds when we're ready to take the payment?
Can Embeddables handle setting up the subscription for me?
Can Embeddables handle setting up the subscription for me?
Do I need to collect the customer's payment details again when setting up the subscription?
Do I need to collect the customer's payment details again when setting up the subscription?
What happens if the prescription is not approved?
What happens if the prescription is not approved?
Can I use this approach for other types of verification, not just prescriptions?
Can I use this approach for other types of verification, not just prescriptions?
Why use a delayed subscription instead of a free trial?
Why use a delayed subscription instead of a free trial?
- It creates a clearer invoice history for the customer, showing their first payment followed by regular subscription charges.
- It avoids potential confusion that can arise from seeing “free trial” followed by a charge.
- It better matches the actual business logic (you’re not giving away a free month, you’re just delaying the start of the subscription).
billing_cycle_anchor
parameter, which lets you set a future date for the first full invoice. This can be combined with prorations if needed.