Show details for Stripe Payments

Stripe Payments

Take card and wallet payments on your storefront through your own Stripe account. Your shoppers pay on a secure page hosted by Stripe, and the payment is recorded against their order. Work through the lessons to set it up, or search Troubleshooting for an answer.
Topic hub

Stripe Payments

Take card and wallet payments on your storefront through your own Stripe account. Your shoppers pay on a secure page hosted by Stripe, and the payment is recorded against their order. Work through the lessons to set it up, or search Troubleshooting for an answer.

Updated 19 Oct 2026

Lessons

Get set up

Lesson 1 of 12 | 3 min

How Stripe payments work on your storefront

What your shoppers see, where the payment happens and what you set up where.

Two places to set up

You set up the payment method in your admin area, and you choose which ways to pay (cards, wallets, bank payments) in your Stripe Dashboard. Your storefront never sees or stores card details.

  1. Your shopper checks out as normal

    They fill in their addresses, choose delivery and, if you offer more than one payment method, choose Stripe (you can rename it, see Troubleshooting).

    The Payment method step at checkout with Stripe selected
  2. They pay on Stripe's page

    When they confirm the order, they are taken to a payment page hosted by Stripe. It lists their items, delivery, tax and total, and offers the ways to pay that you have turned on in Stripe. If their bank asks for extra security checks (3D Secure), Stripe shows them on this page.

    The Confirm order step; Confirm takes the shopper to Stripe
  3. They come back to your storefront

    After paying, they return to your order confirmation page and the order is recorded with its payment. Stripe also sends updates to your storefront through a webhook, which keeps the order's payment status up to date: for example payments that are confirmed later, and refunds made in Stripe.

    The order confirmation page after paying
  4. You manage the order

    Depending on your capture mode, the payment is taken straight away or authorised now and taken later. You can capture, void and refund from the order in Sales > Orders.

Lesson 2 of 12 | 4 min

Create your Stripe account and find your API keys

Get a Stripe account and the two pairs of keys your storefront needs.

Stripe's screens change

The Stripe screenshots in these lessons show the Stripe Dashboard as it looked when they were taken. Stripe updates its Dashboard from time to time, so names and layouts may differ slightly. If a step doesn't match, look for the same setting by name, or see Stripe's own documentation. Test first: you can use a new Stripe account in a sandbox (test environment) straight away, before Stripe has checked your business.

  1. Sign up at Stripe

    Go to dashboard.stripe.com/register and create an account. Use an email address that the person who looks after your company's finances can access: Stripe sends payment notifications and account messages there.

  2. Open the API keys page

    In the Stripe Dashboard, open the API keys page (dashboard.stripe.com/apikeys). A toggle on the page switches between sandbox mode and live mode, and each mode has its own keys.

    The Stripe API keys page in a sandbox, with the publishable key highlighted and its value hidden
  3. Copy the publishable and secret keys

    Each mode has a publishable key and a secret key. Sandbox keys start pk_test_ and sk_test_; live keys start pk_live_ and sk_live_. Keep the secret key private: never send it by email or in a support ticket.

    The secret key row on the Stripe API keys page, with the key value hidden
  4. Copy the full secret key

    Copy the key with the copy button or by revealing it. Stripe only lets you reveal some live secret keys, so if all you can see is a shortened (masked) key, create a new one rather than copying the masked text.

  5. Activate your account for live payments

    To take real payments, complete Stripe's account activation (business details, bank account and identity checks). Live keys only take payments once Stripe has activated your account.

Lesson 3 of 12 | 4 min

Connect Stripe to your storefront

Enter your keys, switch on test mode and make Stripe available at checkout.

  1. Open the payment methods

    In your admin area, go to Configuration > Payment Methods. Stripe is in the list (system name Payments.Stripe). The ticks show what it supports: capture, refund, partial refund and void.

    Configuration > Payment Methods with the Stripe row highlighted
  2. Open the Stripe settings

    Click Configure on the Stripe row. The blue panel at the top repeats the setup steps and shows your storefront's own webhook address.

  3. Enter your sandbox keys

    Paste your sandbox keys into Test public api key and Test secret api key, and tick Enable Test Mode. With test mode on, your storefront uses the test keys.

    Enable Test Mode and the test key fields, with the keys hidden
  4. Enter your live keys when you have them

    Your live keys go in Production public api key and Production secret api key. They are used when Enable Test Mode is not ticked.

    The production key fields
  5. Save

    Click Save at the bottom of the page.

    The Save button at the bottom of the Stripe settings
  6. Make Stripe active

    Back in Configuration > Payment Methods, click Edit on the Stripe row, tick Is active and click Update. Stripe now shows at checkout, as long as the keys for the current mode are filled in.

    The Is active tick box on the Stripe row in edit mode
Lesson 4 of 12 | 5 min

Set up the webhook

Let Stripe tell your storefront when a payment succeeds, fails, is cancelled or is refunded.

Copy the address exactly

Most webhook problems are a typing mistake in the address. Copy it from the blue panel on your Stripe settings page, including any folder in your storefront's address, and don't add or remove www. The Stripe screens below may look slightly different if Stripe has updated its Dashboard since.

  1. Copy your webhook address

    On the Stripe settings page, the blue panel shows your webhook address. It ends in Stripe/Webhook.

    The webhook address in the blue panel on the Stripe settings page
  2. Add a destination in Stripe

    In the Stripe Dashboard, open Workbench > Webhooks and click Add destination.

    Stripe Workbench Webhooks page with the Add destination button highlighted
  3. Choose Your account

    When Stripe asks where the events come from, choose Your account. Don't choose Connected accounts: that is for Stripe Connect platforms.

    The Your account option selected as the event destination scope
  4. Keep Snapshot

    Under Payload style, choose Snapshot, not Thin: your storefront reads Snapshot events. Leave the API version on the version Stripe suggests.

    Payload style set to Snapshot and the suggested API version
  5. Choose the events

    Select these events: payment_intent.succeeded, payment_intent.payment_failed, payment_intent.canceled, charge.refunded, and the two checkout.session events for async payments: async payment succeeded and async payment failed.

    The Selected events tab listing the six events to choose
  6. Choose Webhook endpoint

    Click Continue, choose Webhook endpoint and click Continue again.

    Webhook endpoint chosen as the destination type
  7. Name it and paste the address

    Give the destination a name you will recognise, paste your webhook address into Endpoint URL and click Create destination.

    The Configure destination step with a destination name and an example endpoint address
  8. Copy the signing secret

    The new destination opens with an Active badge. Under Signing secret, reveal the secret (it starts whsec_) and copy it. With a signing secret, your storefront checks that each event really came from Stripe.

    The new destination's page with the Signing secret section highlighted and the secret hidden
  9. Paste it into your Stripe settings

    Paste the secret into Webhook signing secret on your Stripe settings page and click Save.

    The Webhook signing secret field, with the secret hidden
  10. Repeat in live mode

    Sandbox and live mode have separate webhooks and separate signing secrets, but your Stripe settings page has one Webhook signing secret field. When you go live, add the same destination in live mode and replace the sandbox secret with the live one.

Lesson 5 of 12 | 4 min

Choose a capture mode

Decide when the money is taken: straight away, when you click Capture, or when the order ships.

Authorisations don't last for ever

A card authorisation that is not captured usually expires after 7 days, and an expired authorisation can no longer be captured. If you capture later (Manually or On Shipped), capture within that time.

  1. Find Capture Mode

    Capture Mode is the first setting on the Stripe settings page. There are four options.

    The Capture Mode setting
  2. On Order Placement

    Stripe authorises the payment, the order is created when your shopper returns, and the payment is captured straight away, even if the order still needs approval. The order is marked Paid.

  3. Manually

    Stripe authorises the payment and the order is created with payment status Authorised. Your shopper sees Payment was authorized instead of the usual confirmation, and the payment shows as Uncaptured in Stripe. You take the money later with Capture on the order.

    The shopper's confirmation page reading Payment was authorized
  4. What you see in Stripe

    Until you capture, the payment shows Uncaptured: authorised, but not yet captured.

    A Stripe payment with status Uncaptured
  5. On Shipped

    As Manually, but the payment is captured when the order is marked as shipped.

  6. Default

    The order is created first, then your shopper pays and the money is taken in one step. If your shopper leaves the Stripe page without paying, they see Your order has been placed but needs payment: the order stays on your storefront unpaid, and they can pay for it later from the order in My Account with Complete payment.

    The page a shopper sees after leaving Stripe without paying: Your order has been placed but needs payment
  7. Use Default for bank payments

    Bacs Direct Debit, SEPA Direct Debit and other bank payment methods (such as iDEAL, Bancontact or Pay by Bank) can't be authorised first and captured later, so Stripe does not offer them with the other three modes. If you want them, choose Default.

Lesson 6 of 12 | 5 min

Test your setup with Stripe test cards

Place test orders in sandbox mode and check them on both sides.

Tip

Stripe's test card numbers only work while Enable Test Mode is ticked and your sandbox keys are entered. They are refused in live mode.

  1. Place a test order

    On your storefront, add a product with a price to the basket and check out with Stripe. By default, a basket worth nothing (for example after a 100% discount) skips the payment step.

  2. Pay with a test card

    On the Stripe page, use 4242 4242 4242 4242 with any future expiry date (for example 12/34) and any three-digit security code.

  3. Try 3D Secure and a declined card

    4000 0000 0000 0002 is always declined: Stripe shows the error on its page and your shopper can try another card. With On Order Placement, Manually or On Shipped, no order is created for a declined attempt. 4000 0000 0000 3220 asks for a 3D Secure check: Stripe shows a test page where you can complete or fail it.

    Stripe's payment page showing Your credit card was declined
  4. Complete the 3D Secure test

    Click Complete on the test page to approve it. In live mode your shopper verifies with their bank instead, for example in their banking app.

    Stripe's 3D Secure 2 test page with Fail and Complete buttons
  5. Check the order

    In Sales > Orders, open the order. Its payment status and the order notes show what Stripe reported.

    Order notes showing the Stripe capture succeeded and the order marked as paid
  6. Check Stripe

    In the Stripe Dashboard (still in sandbox mode), open Payments to see the test payment. Test payments only show while the Dashboard is in sandbox mode.

    The test payment in the Stripe Dashboard with status Succeeded
  7. Read the payment's history

    Open the payment in Stripe to see each step, for example a declined card, the 3D Secure check, the authorisation and the capture.

    A Stripe payment's Recent activity: failed payment, 3D Secure succeeded, authorized, captured
  8. Check the webhook

    In Stripe, open your webhook destination and look at its deliveries. Each event should show as delivered.

    The webhook destination's Event deliveries showing 200 OK
Lesson 7 of 12 | 3 min

Go live

Switch from sandbox to live keys without missing a step.

  1. Copy your live keys

    In Stripe, switch the API keys page to live mode and copy the live publishable and secret keys (pk_live_, sk_live_).

  2. Paste them into the production fields

    On the Stripe settings page, paste them into Production public api key and Production secret api key. Check that neither contains test.

  3. Add the live webhook

    In Stripe live mode, add the same webhook destination and events as in the sandbox, and paste the live signing secret into Webhook signing secret, replacing the sandbox one.

  4. Check your payment methods

    In the Stripe Dashboard in live mode, check that the payment methods you want are turned on.

  5. Turn off test mode

    Untick Enable Test Mode and click Save.

  6. Place a small real order

    Place a low-value order with a real card, check it in Sales > Orders and in Stripe, then refund it from the order.

Run it day to day

Lesson 8 of 12 | 3 min

What your shoppers see

The Stripe page, receipts, and what happens if a shopper doesn't finish paying.

  1. The Stripe payment page

    Your shopper sees their items (with each product's short description, unless you turn that off), any checkout attributes, a tax line, delivery and the total, and the ways to pay you have turned on in Stripe. Wallets such as Apple Pay and Google Pay only appear on devices that support them.

    Stripe's payment page with the product, price and the ways to pay
  2. Their email address

    The page uses the email address from your shopper's account. A shopper with no valid email address on their account doesn't see Stripe at checkout.

  3. Receipts

    With Use Stripe successful payments ticked (the default), Stripe emails its own receipt to the shopper's billing email address (Stripe doesn't send these for sandbox payments). Your storefront's own order emails are sent as usual.

  4. If they close the Stripe page

    With Default capture mode, the order is already placed and stays unpaid. Your shopper can pay later from the order in My Account with Complete payment. With the other capture modes, no order is created until Stripe authorises the payment, and the shopper goes back to their basket.

Lesson 9 of 12 | 4 min

Capture, void and refund orders

Take, release or return a Stripe payment from the order, or from Stripe.

Refund before you cancel

Cancelling an order doesn't refund the payment. Refund it first, then cancel the order.

  1. Open the order

    Go to Sales > Orders and open the order. The payment status shows whether it is Authorised, Paid, Refunded, Partially refunded or Voided.

    An order paid by Stripe: payment status Paid, payment method Stripe
  2. Capture an authorised payment

    On an order with payment status Authorised, click Capture to take the full authorised amount. The order becomes Paid, the Order paid emails are sent, and Stripe shows the payment as captured. Capture always takes the full amount.

    The Capture, Void and Void (Offline) buttons on an authorised order
  3. Check the capture

    The order notes show the Stripe capture, and in Stripe the payment moves from Uncaptured to Succeeded.

    The Stripe payment after capture: Succeeded, with authorised and captured entries
  4. Void an authorisation

    Click Void to cancel an authorised payment you don't want to take; Stripe releases the hold on the shopper's card. Void (Offline) only marks the order as voided and sends nothing to Stripe.

    A voided payment in Stripe with status Canceled
  5. Refund

    Click Refund to refund the full amount, or Partial refund and enter an amount. The refund is sent to Stripe, which returns the money to your shopper's card, and the order is marked Refunded (or Partially refunded). Refund (Offline) and Partial refund (Offline) only mark the order as refunded: they send nothing to Stripe, so use them only for money you have already returned another way.

    The Refund, Refund (Offline), Partial refund and Partial refund (Offline) buttons
  6. See it in Stripe

    In the Stripe Dashboard the payment shows Refunded. Stripe notes that it may take a few days for the money to reach your shopper's bank account.

    The payment in Stripe with status Refunded and a Payment refunded entry
  7. Refunds made in Stripe

    If you refund a payment in the Stripe Dashboard instead, the order is updated to Refunded or Partially refunded, through the charge.refunded webhook.

  8. Check the order notes

    Each action adds an order note with what Stripe returned, which is the first place to look if something didn't work.

    Order notes showing the Stripe refund succeeded and the order refunded
Lesson 10 of 12 | 5 min

Match Stripe payments to your orders

Choose what order details are sent to Stripe so your finance team can match payouts.

  1. What is always sent

    Every payment carries four metadata values: customer-id, transaction-id, storefront-id and storefront-name.

  2. Add your own metadata

    On the Stripe settings page, click Expand custom metadata, then Add metadata row. Enter a Stripe Metadata Key (for example order_id) and a Stripe Metadata Value.

    Update metadata with order details ticked and two metadata rows: order_id and customer_name
  3. Use placeholders

    Values can use placeholders, written between percent signs, such as %OrderId% or %CustomerName%, and you can mix them with your own text. The panel links to the full list of placeholders.

  4. Turn on Update metadata with order details

    With every capture mode except Default, the order doesn't exist yet when your shopper starts paying. Tick Update metadata with order details (on storefronts that already took orders before this option arrived, it starts unticked) so the order values are added to the payment in Stripe as soon as the order is created, including the charge that Stripe's payout and reconciliation reports read.

  5. Know Stripe's limits

    Up to 50 metadata entries, keys up to 40 characters and values up to 500 characters. Longer values are cut short.

  6. Save and check

    Click Save, place a test order and open the payment in the Stripe Dashboard to check the metadata.

    The payment's Metadata in Stripe showing order_id and customer_name
Lesson 11 of 12 | 4 min

Control what shows on the Stripe page and on statements

Descriptions, zero amounts, statement wording, receipts and labels.

  1. Include product description

    On by default: each item on the Stripe page shows the product's short description. Untick it to show only the product name (Stripe shows text only, so formatting in a description shows as plain text).

    The Stripe page options
  2. Hide zero amounts

    Tick it to leave out checkout attributes and delivery that cost nothing.

  3. Statement descriptor suffix

    Optional text that Stripe adds after the statement descriptor prefix set in your Stripe account, so your shoppers recognise the payment on their card statement. Card payments only, up to 13 characters, at least one letter, and not < > \ ' " *.

  4. Use Stripe successful payments

    Ticked: Stripe sends its own receipt email. Unticked: your storefront doesn't ask Stripe to send one, and the receipt settings in your Stripe Dashboard decide.

  5. Change the wording

    The tax line on the Stripe page is labelled VAT by default. To change it (for example to Tax), go to Configuration > Languages, open the string resources for each language you use, find the resource whose name starts with Plugins.Stripe and whose value is VAT, and change the value. The delivery line has its own wording, a resource whose value is {0} (incl. {1} VAT): change the word VAT there too. Then clear the cache.

Lesson 12 of 12 | 3 min

Choose who can pay by Stripe

Offer Stripe to some customers only, with usage rules or departments.

  1. Open the usage rules

    In Configuration > Payment Methods, click Usage rules on the Stripe row (see Usage Rules on Payment and Delivery). With no rules, Stripe is available to everyone.

    A Stripe usage rule by customer roles
  2. Add a rule

    Choose a Requirement type, for example by customer roles, departments, shipping country, checkout attributes or what is in the basket. By default, Stripe is only offered when every rule is met (the order setting Allow single usage rule match for payment method changes this so that one rule is enough).

    The Requirement type list for a new usage rule
  3. Customer roles

    For a customer-role rule, enter the customer role system names separated by commas. The customer must have all of the listed roles. Tick Restricts usage to do the opposite: hide Stripe from those customers.

  4. One method only

    If Stripe is a customer's only payment method and your checkout skips the payment method choice, they go straight to Stripe after confirming the order.

Troubleshooting

Something not working as expected? Search for your problem, or pick a question below.

Webhooks

Stripe emails me that my webhook is failing with HTTP 404

The webhook address in Stripe doesn't match your storefront. Copy the address from the blue panel on your Stripe settings page: it ends in Stripe/Webhook and includes any folder in your storefront's address. Check for a missing slash, for example between Stripe and Webhook. If Stripe has disabled the destination, enable it again in Stripe after fixing the address.

Opening the address in your browser also shows a 404 page: that is normal, because the address only accepts messages from Stripe.

Stripe says it could not connect to my webhook

Check the start of the address. It must be exactly your storefront's address, as shown on your Stripe settings page: for example, don't add www if your storefront doesn't use it. If you have recently changed your storefront's domain, check that the new domain is set up for your storefront and update the address in Stripe.

Which webhook events do I need?

Six: payment_intent.succeeded, payment_intent.payment_failed, payment_intent.canceled, charge.refunded, and the two checkout.session events for async payments: async payment succeeded and async payment failed. Stripe spells canceled with one l.

Stripe shows my webhook failing with HTTP 400

Open the failed delivery in Stripe. If the response says Invalid Stripe webhook signature, the Webhook signing secret on your Stripe settings page usually doesn't belong to the destination that sent the event (your storefront only checks signatures when a signing secret is entered). Sandbox and live destinations each have their own secret, and your settings page holds one, so after going live it must be the live destination's secret. If you rolled the secret in Stripe, the old one stops working too. Copy the signing secret from the destination in Stripe again, paste it into Webhook signing secret and save.

Stripe shows my webhook failing with HTTP 500 and mentions the API version

Open the failed delivery in Stripe. If the response says Received event with API version, your storefront has a check turned on that only accepts certain webhook API versions, and this destination sends a version that isn't on the list. Storefronts accept every version unless that check is on. Contact Infigo Customer Support with the API version shown on the delivery, so they can allow it.

Test and live mode

The Stripe page still says test mode or sandbox after going live

Check two things on the Stripe settings page: Enable Test Mode must be unticked, and the production key fields must hold live keys (pk_live_, sk_live_), not keys that contain test. Your storefront doesn't warn you if a sandbox key is in a production field.

My test orders don't show in the Stripe Dashboard

Test payments only show while the Stripe Dashboard is in sandbox mode. Switch to your sandbox in Stripe and look again.

Stripe says my API key is invalid

The key was probably copied in its shortened (masked) form. Copy the full key from the Stripe API keys page; if Stripe won't reveal a live secret key again, create a new one and paste that in. Also check that the key is in the field for the right mode.

A refund or capture fails on an order placed while testing

Your storefront talks to Stripe with the keys for the mode it is in. A payment made with your sandbox keys only exists in your Stripe sandbox, so once test mode is off, a refund or capture sent with your live keys can't find it. No real money was taken for a test order. To tidy the order up, use Refund (Offline) on a paid test order or Void (Offline) on an authorised one: they only mark the order and send nothing to Stripe.

Checkout

Stripe doesn't show as a payment option at checkout

Check, in this order:

  • Stripe is ticked Is active in Configuration > Payment Methods.
  • Both keys for the current mode are filled in (test keys with test mode on, production keys with it off).
  • The shopper's account has a valid email address.
  • The basket has something to pay: a basket worth nothing skips the payment step.
  • No usage rule or department setting hides Stripe from this shopper.
iDEAL, Bancontact, Pay by Bank, Bacs or SEPA don't appear on the Stripe page

These ways to pay can't be authorised first and captured later, so Stripe leaves them out unless Capture Mode is Default. Also check they are turned on in your Stripe Dashboard and that the six webhook events are set up: some bank payments are confirmed later, through the checkout.session async payment succeeded event.

Where do I turn Apple Pay or Google Pay on?

Wallets are turned on in your Stripe Dashboard, not in your admin area. Your shoppers pay on Stripe's own payment page, where Stripe shows the wallets you have turned on that their device and browser support.

Stripe says there are no valid payment method types for this Checkout Session

Stripe found no way to pay that works for the order's currency. Turn on a payment method that supports that currency in your Stripe Dashboard. Also check your Stripe account for messages: the same error has appeared when Stripe had restricted the account.

After paying, my shopper lands on the login page

Your storefront's cookie setting is blocking the return from Stripe. In your general settings, set Configure the Cookie Same Site mode to use to Lax, not Strict.

Orders and payments

My shopper's card was declined. Is there an order?

Stripe shows the decline on its payment page and your shopper can try another card or way to pay. With On Order Placement, Manually or On Shipped, no order is created until a payment is authorised, so a declined attempt leaves nothing to clean up. In the Stripe Dashboard, the payment's history shows each failed attempt and the decline reason the bank gave.

My shopper closed the Stripe page and now has an unpaid order

With Default capture mode the order is created before payment, so it stays unpaid. Your shopper can open the order in My Account and click Complete payment. With the other capture modes no order is created until Stripe authorises the payment.

Stripe shows the payment as Uncaptured

That is expected with Manually and On Shipped: the payment is authorised and waits for you to capture it (or for the order to ship). With On Order Placement it is captured straight away when the order is created. Stripe also shows a capture method of manual for these three modes. Capture within about 7 days, before the authorisation expires.

Can I take the payment only after an order is approved?

With On Order Placement, the payment is captured as soon as the order is created, even if the order still needs approval. To take the money only after approval, use Manually and click Capture on the order once it is approved (see Configure and enable the default approval workflow). Card authorisations usually expire after 7 days, so approve and capture within that time.

Capture failed on an order

The order notes show the reason Stripe gave, and your store owner can also be emailed about the failure. One common reason is time: a card authorisation that isn't captured usually expires after 7 days, and Stripe then releases the hold and cancels the payment, so it can no longer be captured. With your webhook set up, Stripe's cancellation also marks the order Voided. A payment that was cancelled in the Stripe Dashboard can't be captured either.

A bank payment order stays unpaid

Bank payment methods such as Bacs and SEPA Direct Debit need the Default capture mode, and they take time to confirm. The order stays unpaid until Stripe confirms the payment through your webhook. Check that your webhook destination includes all six events, including both checkout.session async payment events, and that its deliveries succeed.

Stripe shows a payment I can't match to an order, or two payments for one order

First look for the order: each Stripe payment's metadata includes transaction-id, which matches an order's Infigo Transaction ID. Uncaptured in Stripe means the money is only held, not taken. With On Order Placement, Manually or On Shipped, every order is Uncaptured until it's captured, and cancelling or refunding a payment in Stripe also changes the order it belongs to, so don't cancel or refund until you know which order it is. If a payment shows Succeeded with no matching order, or there are two payments for one order, contact Infigo Customer Support with the Stripe Payment ID (it starts pi_) and the time of the payment.

How do I refund a Stripe order?

Open the order in Sales > Orders and click Refund or Partial refund. The refund is sent to Stripe, which returns the money to the card. Refund before you cancel the order: cancelling doesn't refund. If you refund in the Stripe Dashboard instead, the order is updated through the charge.refunded webhook.

I clicked Refund (Offline). Did my shopper get their money back?

No. Refund (Offline) and Partial refund (Offline) only mark the order as refunded and send nothing to Stripe. To return the money, refund the payment in the Stripe Dashboard. Next time, use Refund or Partial refund, which send the refund to Stripe for you.

Reporting

My order number doesn't appear in Stripe or in the payout report

The order number is not sent automatically. Add a custom metadata row with the value %OrderId% and tick Update metadata with order details. Values must use the placeholder: plain text such as order_id is sent as it is. New metadata only applies to new payments.

How do I find the Stripe payment for an order?

Open the order in Sales > Orders. On the order's details, Capture request ID (it starts pi_) is the Stripe payment's Payment ID, and Authorisation request ID (it starts cs_) is the Stripe Checkout session. With the Default capture mode, the Capture request ID is filled in once Stripe confirms the payment. Going the other way, each Stripe payment's metadata includes transaction-id, which matches the order's Infigo Transaction ID. To see the order number in Stripe too, add it with custom metadata.

If you use Connect: Flow, it can also pass the Stripe payment reference to your MIS: see the Connect: Flow Problem Solvers.

Stripe page

How do I change the name Stripe at checkout?

The name your shoppers see in the list of payment methods is a language resource. In Configuration > Languages, open the string resources for each language you use, find the resource whose name starts with Payments.Stripe and whose value is Stripe, change the value (for example to Pay by card), then clear the cache.

The Stripe page shows VAT but I charge sales tax

The label is a language resource. In Configuration > Languages, open the string resources for each language your storefront uses (for example English US and English GB), find the resource whose name starts with Plugins.Stripe and whose value is VAT, and change the value to the word you want. The delivery line has its own wording, a resource whose value is {0} (incl. {1} VAT): change the word VAT there too. Then clear the cache.

Free delivery or free options show as £0.00 lines

Tick Hide zero amounts on the Stripe settings page.

Product descriptions on the Stripe page show code or are too long

The Stripe page shows each product's short description as plain text. Untick Include product description to show product names only.

The Stripe page shows one Items line instead of my products

When the item prices, converted for Stripe, don't add up exactly to the order total because of rounding, your storefront sends one Items line plus delivery instead. Your shopper is still charged the correct total.

Shoppers don't recognise the payment on their card statement

Add a Statement descriptor suffix (up to 13 characters) on the Stripe settings page, and check the statement wording in your Stripe account settings.

Shoppers get two receipts

Stripe's receipt is sent when Use Stripe successful payments is ticked. Untick it, then check the receipt settings in your Stripe Dashboard, which decide from then on.

About this topic

What it is

The Stripe payment method lets your shoppers pay by card, wallet or bank payment through your own Stripe account. Payment happens on a secure page hosted by Stripe, so card details never pass through your storefront.

Who does what

  • You open and look after your Stripe account, choose the ways to pay in your Stripe Dashboard and keep your keys private.
  • You set up the payment method in your admin area: keys, webhook, capture mode and options.
  • Stripe takes the payments and pays them out to your bank account.

About the Stripe screenshots

Screenshots of the Stripe Dashboard show it as it looked when they were taken. Stripe changes its Dashboard from time to time, so some names and layouts may differ. Secret keys and signing secrets are always hidden in our screenshots: never share yours with anyone.

Limits

  • Capture always takes the full authorised amount.
  • Card authorisations usually expire after 7 days if they are not captured.
  • Bank payment methods need the Default capture mode.

Want to see it working?

Talk to us about a demo, or, if you're an existing customer, talk to your Customer Success Manager.

Video transcript

Stripe payments in one minute

0:00 Stripe payments

0:02 The Stripe payment method lets your shoppers pay by card, wallet or bank payment through your own Stripe account.

0:09 At checkout, your shopper chooses Stripe as the payment method.

0:14 When they confirm the order, they pay on a secure page hosted by Stripe. It shows their items and total, and the ways to pay you have turned on in Stripe.

0:24 After paying, they come back to your storefront and the order is placed.

0:29 In your admin area, the order shows its payment status, and you can capture and refund from the order.

0:36 In Stripe, each payment can carry details such as your order number, so payouts are easy to match to orders.

0:44 You connect your own Stripe account with its API keys and a webhook, then choose when payments are captured. The lessons on this page take you through each step.

Connect Stripe to your storefront

0:00 Connect Stripe to your storefront

0:03 You'll need a Stripe account. Start with its sandbox keys, so you can test before you take real payments.

0:10 In the Stripe Dashboard, open the API keys page. Sandbox and live mode each have a publishable key and a secret key. Keep the secret key private.

0:20 In your admin area, go to Configuration, then Payment Methods, and click Configure on the Stripe row.

0:27 Paste your sandbox keys into the two test key fields, and tick Enable Test Mode.

0:34 Your live keys go in the two production fields. They're used when test mode is off.

0:40 The blue panel at the top of the page shows your storefront's webhook address. Copy it.

0:46 In Stripe, open Workbench, then Webhooks, and click Add destination.

0:51 Choose Your account as the event destination scope.

0:56 Choose Snapshot as the payload style, not Thin, and leave the API version as Stripe suggests.

1:03 Select the six events shown here. They're also listed in the webhook lesson on this page.

1:09 Choose Webhook endpoint as the destination type.

1:13 Give the destination a name, paste your webhook address, and click Create destination.

1:19 On the new destination, reveal the signing secret and copy it.

1:24 Back in your admin area, paste it into Webhook signing secret.

1:29 Choose when payments are captured. The capture mode lesson explains each option.

1:35 Click Save.

1:37 Finally, in Payment Methods, click Edit on the Stripe row, tick Is active, and click Update.

1:44 Next, test your setup with Stripe's test cards. When you go live, add your live keys and a live webhook with its own signing secret.

Test your Stripe setup

0:00 Test your Stripe setup

0:02 With your sandbox keys entered and test mode on, you can place test orders with Stripe's test cards. No real money moves.

0:11 Check out on your storefront and choose Stripe. While you're testing, Stripe's page shows a Sandbox badge.

0:18 The test card ending in 0002 is always declined. Your shopper sees the error and can try another card. With the On Order Placement capture mode used here, no order is created for a declined attempt.

0:32 The test card ending in 3220 asks for a 3D Secure check. On this test page, click Complete. In live mode, your shopper's bank does the check instead.

0:43 Your shopper comes back to your storefront, and the order is placed.

0:48 In your admin area, the order notes show the Stripe capture succeeded and the order was marked as paid.

0:55 In Stripe, still in your sandbox, the payment shows as Succeeded.

1:00 Open the payment to see each step: the declined card, the 3D Secure check, the authorisation and the capture.

1:08 On your webhook destination, Event deliveries shows each event delivered with 200 OK.

1:15 When your tests pass, add your live keys and a live webhook, untick Enable Test Mode, and place a small real order to check.

Capture and refund Stripe payments

0:00 Capture and refund Stripe payments

0:03 You can capture and refund Stripe payments from the order in your admin area.

0:09 With the Manually capture mode, your shopper's payment is authorised but not taken. They see Payment was authorized.

0:16 In Stripe, the payment shows as Uncaptured. The money is held on the card.

0:22 On the order, click Capture to take the full amount, or Void to release it. Card authorisations usually expire after seven days, so capture before then.

0:32 Once captured, the order is paid, and Stripe shows the payment as Succeeded.

0:38 To refund, open the order and click Refund, or Partial refund for part of the amount. The offline buttons only mark the order, and send nothing to Stripe.

0:49 The order notes show the Stripe refund succeeded, and the order is marked as refunded.

0:55 In Stripe, the payment shows as Refunded. It can take a few days for the money to reach your shopper's bank account.

1:03 Cancelling an order doesn't refund it, so refund first. If you refund in the Stripe Dashboard instead, the order is updated through the webhook.

Search terms

Topic hub | Stripe PaymentsLast updated: 19 Oct 2026
Incomplete