Skip to content

Stripe Billing errorStripe: “This customer has no attached payment source or default payment method”

A subscription renews, for example at the end of a trial, and the invoice fails with This customer has no attached payment source or default payment method. Here’s where Stripe looks for a payment method when it bills, in its own words, and how to point it at the card, or hand it over at a fixed price.

Short answer

For a subscription invoice, Stripe uses the subscription’s default_payment_method; if that isn’t set, it uses the customer’s invoice_settings.default_payment_method or default_source. The error means none of them gave it a payment method to charge. Set the card as the customer’s invoice_settings.default_payment_method, and for new subscriptions set payment_settings.save_default_payment_method to on_subscription.

Where Stripe looks, and the fix

  1. 01

    No default on the subscription or the customer

    “This takes precedence over default_source. If neither are set, invoices will use the customer’s invoice_settings.default_payment_method or default_source.” Stripe, Create a subscription

    Stripe checks the subscription’s default payment method first, then the customer’s invoice settings. A card can be attached to the customer without being the default in either place, so we check both in the Dashboard or with the API for the customer whose invoice failed.

  2. 02

    Set the customer’s default payment method

    “ID of a payment method that’s attached to the customer, to be used as the customer’s default payment method for subscriptions and invoices.” Stripe, The Customer object

    Update the customer with invoice_settings.default_payment_method set to the card’s payment method ID; the payment method has to be attached to that customer. Then we retry the failed invoice.

  3. 03

    New subscriptions don’t save the card

    “Stripe sets subscription.default_payment_method when a subscription payment succeeds.” Stripe, Create a subscription

    When you create subscriptions, set payment_settings.save_default_payment_method to on_subscription. Stripe’s default is off, so a successful first payment doesn’t set the subscription’s default payment method on its own.

Checked against the vendor’s docs on : Stripe API: Create a subscription; Stripe API: The Customer object.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Related: Stripe subscription incomplete, requires action · Stripe card declined: generic decline · Stripe canceled, but app access is wrong · Stripe no such customer

Questions

More on this error

Which payment method wins if both are set?

The subscription’s. Stripe says the subscription’s default_payment_method takes precedence over default_source, and the customer’s invoice settings are used only if neither is set on the subscription.

What about customers who started a trial without a card?

Then there is no card to set as the default when the trial ends. We collect a payment method before the trial ends, or at sign-up, and set it as the default.

Can you fix it for me?

Yes, through the App Fix Ticket: you send the rejection message and access to the app, Simon writes a diagnosis of what App Review hit and how to fix it, then fixes the code so you can resubmit. Each step has a fixed price, paid upfront. Approval stays Apple’s decision; the ticket covers the fix.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; we reply by email, usually within one business day.