Update Payment Method
Update the payment method for an existing subscription. You can either add a new payment method or use an existing one from the customer’s saved payment methods.
on_hold state.
on_hold state, updating the payment method automatically creates a charge for remaining dues, generates an invoice, and reactivates the subscription to active state upon successful payment.Use Cases
- Active subscriptions: Update payment method when a card expires or customer wants to use a different payment method
- On hold subscriptions: Reactivate subscriptions that went on hold due to failed payments by updating the payment method
- Payment method management: Switch between saved payment methods or add new ones
type: "existing" to update a subscription’s payment method.Behavior for Active Subscriptions
When updating the payment method for an active subscription:- The payment method is updated immediately
- No charge is created
- The subscription remains active
- Future renewals will use the new payment method
Behavior for On Hold Subscriptions
When updating the payment method for a subscription inon_hold state:
- A charge is automatically created for remaining dues
- An invoice is generated for the charge
- The payment is processed using the new payment method
- Upon successful payment, the subscription is reactivated to
activestate - You’ll receive webhook events:
payment.succeededfollowed bysubscription.active
Webhook Events
When updating a payment method for anon_hold subscription, you’ll receive the following webhook events:
payment.succeeded- The charge for remaining dues was successfulsubscription.active- The subscription has been reactivated
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Subscription Id
Body
- New
- Existing
new List of payment methods allowed during checkout.
Customers will never see payment methods that are not in this list. However, adding a method here does not guarantee customers will see it. Availability still depends on other factors (e.g., customer location, merchant settings).
All supported payment method types.
Used for disabled-payment-methods filtering and validation.
ach, affirm, afterpay_clearpay, alfamart, ali_pay, ali_pay_hk, alma, amazon_pay, apple_pay, atome, bacs, bancontact_card, becs, benefit, bizum, blik, boleto, bca_bank_transfer, bni_va, bri_va, card_redirect, cimb_va, classic, credit, crypto_currency, cashapp, dana, danamon_va, debit, duit_now, efecty, eft, eps, fps, evoucher, giropay, givex, google_pay, go_pay, gcash, ideal, interac, indomaret, klarna, kakao_pay, local_bank_redirect, mandiri_va, knet, mb_way, mobile_pay, momo, momo_atm, multibanco, online_banking_thailand, online_banking_czech_republic, online_banking_finland, online_banking_fpx, online_banking_poland, online_banking_slovakia, oxxo, pago_efectivo, permata_bank_transfer, open_banking_uk, pay_bright, paypal, paze, pix, pay_safe_card, przelewy24, prompt_pay, pse, red_compra, red_pagos, samsung_pay, sepa, sepa_bank_transfer, sofort, sunbit, swish, touch_n_go, trustly, twint, upi_collect, upi_intent, vipps, viet_qr, venmo, walley, we_chat_pay, seven_eleven, lawson, mini_stop, family_mart, seicomart, pay_easy, local_bank_transfer, mifinity, open_banking_pis, direct_carrier_billing, instant_bank_transfer, billie, zip, revolut_pay, naver_pay, payco, satispay