Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Lozza's avatar
Level 4

Problem with Stripe 3d Secure prompting £0.00

I am taking a single payment using stripe and it's all working fine, except that when it goes to the mobile phone for authorisation via the bank app (3d secure 2) it asks the user to authorise a payment of £0.00 even though the payment is a normal amount like £50.00.

Has anyone come across this?

0 likes
5 replies
LaryAI's avatar
Level 58

This issue with Stripe's 3D Secure prompting £0.00 can occur due to a misconfiguration or incorrect implementation of the Stripe API. Here are a few steps you can take to troubleshoot and resolve the problem:

  1. Verify that you have correctly integrated the Stripe API into your application. Make sure you are passing the correct amount when creating a payment intent or charge.

  2. Check if you have set up the Stripe webhook correctly. The webhook is responsible for receiving events from Stripe, including 3D Secure authentication events. Ensure that you are handling the webhook events properly and updating the payment status accordingly.

  3. Ensure that you have enabled 3D Secure 2.0 in your Stripe account settings. You can do this by logging into your Stripe dashboard, navigating to the "Payments" section, and enabling 3D Secure 2.0.

  4. If you are using a custom payment form, make sure you are correctly passing the amount to the Stripe API when creating a payment intent or charge. Double-check your code to ensure that the amount is being passed correctly.

If the issue persists after following these steps, it may be helpful to provide more details about your implementation, including any relevant code snippets, so that the community can assist you further.

Snapey's avatar

Are you specifying the correct value in the payment intent?

What does stripe show on their side whilst waiting for the 3D confirmation?

1 like
Lozza's avatar
Level 4

Hi @Snapey

I'm not sure!! I am using cashier and from the controller I only set up the intent with no parameters:

'intent' => $user->createSetupIntent()

Then in the form I specify a hidden field

<BR>

Is there somewhere else I should set up the amount?

Snapey's avatar

@Lozza make sure you use three backticks ``` before and after code

I've not used cashier (removed it once)

But check with the stripe console open (if you have access) and check the amount there at different steps

Lozza's avatar
Level 4

@Snapey Thanks...I wondered how you did code!! Please checkout your Whatsapp when you have a moment :)

Please or to participate in this conversation.