szulbix
szulbix

Reputation: 165

Stripe default card in checkout

Is there a way to fill fields in a Stripe checkout page when customer comes back? I've tried to set default payment method for customer with webhooks (payment_method.attached) but this default credit card won't show up during checkout. Instead Stripe creates new payment method for the customer every time he pays. It's strange to have dozen of exactly the same credit cards in a Stripe dashboard. Here is my current code:

const checkout = await stripe.checkout.sessions.create({
    cancel_url,
    success_url,
    payment_method_types: ["card"],
    mode: "payment",
    customer: stripeCustomer,
    client_reference_id: stripeCustomer,
    metadata: {
        //...
    },
    line_items: [{
        price_data: {
            currency: 'usd',
            product_data: {
            name: packetDisplayName,
            },
            unit_amount: packetPrice,
        },
        quantity: 1
    }]
})

I later use session id to redirect to checkout then perform few operations in a webhook endpoint

Thanks for taking the time to read my question, cheers

Upvotes: 2

Views: 3603

Answers (2)

manoj patel
manoj patel

Reputation: 1240

try its work for me in Node.JS

For add card in node js

let card = await stripe.customers.createSource(customerid, {
        source: token
    });

Make card as default card

let updatecard = await stripe.customers.update(customerid, {
        default_source: card.id
      });

you can replace card.id if you just want update card only

Upvotes: -2

Nolan H
Nolan H

Reputation: 7459

Checkout does not currently support using Payment Methods already attached to the provided Customer.

More broadly, there is not a concept "default" payment method for one-time payments for a customer, only for invoices.

If you already have a known Customer and an attached payment method, you also have the option of creating the payment yourself, directly, using those details.

Upvotes: 2

Related Questions