Consent required to save payment methods for subscriptions
Customers must now explicitly consent to save their payment method when completing checkout for a subscription.
What's new?
We've updated the Paddle platform so that when customers complete checkout for a subscription using Paddle Checkout, they must explicitly consent to save their payment method.
This only impacts workflows where you present customers with a list of saved payment method entities. It doesn't impact subscription renewals or other subscription-related transactions.
Existing saved payment method entities are still available to present.
How it works
Customers can save their payment method at checkout. These are stored as saved payment method entities. You can securely present customers with their saved payment methods to make purchases in the future using the same details.
Previously, when customers completed checkout for a subscription, Paddle automatically saved their payment method. Now, customers must check a box to save their payment method when completing checkout for a subscription.
A saved payment method entity is only created when the customer provides explicit consent to save their payment details by checking the box at checkout. This improves customer understanding by giving clear visibility over what information is being stored and why, and aligns with card scheme requirements for stored credentials.
Saved payment method entities created before this change aren't impacted and can still be presented.
Saved payment method entities aren't used for future charges, renewals, and upgrades and downgrades related to a subscription. They're only used for presenting saved payment methods to customers for future purchases, meaning Paddle can continue to charge customers for subscription-based purchases without impact.
Customers can still manage all subscription payment methods, whether they opted to save them for future purchases or not, using the customer portal or by updating their payment method details through Paddle.js.
Let customers save payment methods
You must opt in to show customers a checkbox at checkout to save their payment method. The option is off by default.
Go to Paddle > Checkout > Checkout settings.
On the General tab, check the Allow buyers to opt in to save their payment methods for future purchases box.
Click Save to apply.
Customer journey
If you opted in to allow customers to save their payment method, customers are presented with a checkbox to save their payment method. If they check the box, their payment method is saved and can be presented back to them in the future.
This is the same checkbox that's presented for one-time item purchases. The checkbox text now says "Save my card details for a faster checkout with [business name] next time" to be clearer for customers.
Summary of changes
Enum values
This is a summary of the changes to enum values in the Paddle API:
Field | Value | Change | Notes |
---|---|---|---|
payment_method.origin | subscription | Deprecated | Payment methods are no longer automatically saved. |
payment_method.origin | subscription_saved_during_purchase | New value | The customer chose to save the payment method when completing checkout for a subscription. |
Next steps
This change is available in version 1
of the Paddle API.
It's a non-breaking change. A customer's existing saved payment methods aren't impacted and remain available. It only impacts when payment methods are saved for new subscriptions.
Select the "Allow buyers to opt in to save their payment methods for future purchases" checkbox in Paddle > Checkout > Checkout settings to allow customers to save their payment methods, so you can present them for future purchases.
Check your implementation to make sure it doesn't assume payment methods are always provisioned for subscriptions, can handle cases where the payment method hasn't been saved, and handles payment_method.saved
as if it's not always sent when a subscription is created.
If your implementation relies on payments[].payment_method_id
from transactions, consider using payments[].method_details
instead, which contains the transaction's payment information even if the payment method hasn't been saved for future purchases.