PTS Stripe

Complete documentation to install, configure and use the PTS Stripe module in your PrestaShop store.

What is PTS Stripe?

PTS Stripe connects your store to Stripe so you can take card payments, digital wallets such as Apple Pay, Google Pay, Link, PayPal or Amazon Pay, the usual bank methods of each European country, and the voucher methods used in Brazil, Mexico or Portugal. Each one is enabled separately and can be limited to the countries and customer groups you choose.

Besides taking payments inside the checkout, it adds express purchase buttons on the product page, the cart and the payment page, and its own tab on every back office order where you can review the payment and issue refunds without opening the Stripe dashboard.

5.1.2.1
Version
PS 1.7.6+
PS 8.x
PS 9.x
Multistore
Multi-language

Main Features

Every Stripe method

Card, Apple Pay, Google Pay, Link, PayPal, Amazon Pay, Klarna, iDEAL, Bancontact, EPS, Przelewy24, BLIK, TWINT, Afterpay/Clearpay, Affirm, SEPA direct debit, Multibanco, OXXO, Boleto and Pix. Each with its own switch, or all together in a single form if you prefer to let Stripe choose.

Express purchase with digital wallets

Payment buttons on the product page, the cart, the payment page and the One Page Checkout PS side cart. The customer picks address and shipping inside their own wallet window, with shipping costs and taxes already calculated.

Country and group restrictions

Each method in the payment list can be shown only to the delivery countries and customer groups you choose, so every market gets what is actually used there instead of a checkout full of options nobody will pick.

Refunds from the back office

Full or partial, from the Stripe tab of the order itself and with the refundable amount always in sight. They can also be issued on their own when a credit slip is created in PrestaShop.

System Requirements

Requirement Minimum Recommended
PrestaShop 1.7.6 9.x
PHP 7.2.5 8.3+
Stripe account Required —
SSL certificate Required —

Installation

There are two methods to install the module in your PrestaShop store, depending on your server characteristics.

Method 1: Installation from Back Office

1
Access the Back Office

Log in to your PrestaShop store administration panel.

2
Navigate to Modules

Go to Modules → Module Manager in the sidebar menu.

3
Upload the module

Click "Upload a module" and select the downloaded ZIP file.

4
Install and activate

Once uploaded, the module will install automatically. Click "Configure" to begin.

Method 2: Installation via FTP

1
Extract the ZIP file

Extract the contents of the ZIP file on your local computer.

2
Connect via FTP

Use an FTP client (such as FileZilla) to connect to your server.

3
Upload the module folder

Upload the module folder to /modules/ in your PrestaShop installation.

4
Install from Back Office

Go to Modules → Module Manager, find the module and click "Install".

Possible Installation Issues

If you experience override errors when installing or activating the module, do not attempt to resolve it yourself if you lack technical experience. Contact our support team to receive personalized help and resolve the conflict safely.

Contact Support

Settings

The module settings are split across tabs. The first three are explained here: General holds the diagnostics, Stripe stores your account credentials, and Payments decides which methods the customer sees and how. Express purchase has its own section, right after this one.

General

Holds the module's diagnostic options and the behaviour of automatic refunds.

Debug mode

When you enable this option, the module's payment methods are only shown to the IP addresses you list in the "IP" field. That way you can test payments in your own store while the rest of your customers keep buying with the payment methods you already had.

IP

Lists the addresses the module will be visible from while debug mode is active. The button next to the field adds the address you are browsing from at that moment, which is the easiest way not to get it wrong.

Enable debug logs

Stores in the back office logs the detail of every payment: when the payment attempt is created, how express purchase shipping costs are calculated, and which notifications Stripe sends. It is meant for diagnosing a specific incident together with support, not for leaving it on day to day.

Auto-refund on credit slip

When someone creates a credit slip in PrestaShop, the module issues the refund in Stripe for that same amount, without having to repeat the operation by hand on the order tab. It is disabled by default: enable it only if your way of working is to always issue the credit slip first.

Getting your Stripe keys

The module connects to your Stripe account with two keys: a publishable key, which starts with pk_ and is used on the payment page, and a secret key, which starts with sk_ and is used only by your server. Stripe gives you one pair for testing (pk_test_ and sk_test_) and another for real charges (pk_live_ and sk_live_). Usually nothing else is needed: the module creates the webhook itself when it connects, and the status box tells you if it could not.

1
Sign in to your Stripe account

Sign in at dashboard.stripe.com. If you do not have an account yet, you can create one for free at stripe.com and start with the test keys before finishing the sign-up.

2
Open the keys page

In the module's Stripe tab, click Get your keys in Stripe: it takes you straight to the keys page of the mode you have selected, the test one with "Sandbox mode (test)" enabled and the live one with it disabled. You can also get there from the Stripe dashboard, under Developers → API keys.

3
Copy the publishable key

It is the one that starts with pk_. Paste it into the Public test key or the Public live key, depending on the mode, and save.

4
Reveal and copy the secret key

It comes hidden: click on it so Stripe shows it, copy it in full (it starts with sk_) and paste it into the Secret test key or the Secret live key. Save.

5
Let the module connect

As soon as both keys of the mode are saved, the module checks them with Stripe, shows your account name and registers your store's webhook. You do not have to click anything else; if you want to run the check again, use Check connection again.

Stripe

This is where the store connects to your Stripe account. Usually it is enough to paste the two keys of the mode you are going to use: when you save them, the module checks them and tries to create your store's webhook in Stripe, and the status box tells you whether it succeeded. If you do not have them yet, see Getting your Stripe keys.

Sandbox mode (test)

Switches between Stripe's test environment and the real one. With the mode enabled, the module works with your test keys and no charge is real, so you can place complete orders with Stripe's test cards. When you disable it, it starts using the live keys and payments are charged for real.

The fields shown below change depending on the switch: with the mode enabled you are asked for the Public test key, the Secret test key and the Test webhook secret; with the mode disabled, the Public live key, the Secret live key and the Live webhook secret. Each mode keeps its own, so you can have both configured and switch from one to the other without pasting anything again.

Test webhook secret

This is the signature the module uses to verify that a test notification really comes from Stripe and not from a third party. You do not need to type it: it is filled in automatically when the module connects and creates the webhook in Stripe. Paste it by hand only if the automatic connection could not create the webhook.

Live webhook secret

The same for real payments. Since Stripe uses a different webhook for each mode, each one has its own secret, and the module uses the right one depending on whether the notification comes from test or live mode.

Connection status

Below the fields, a box tells you how the selected mode stands: the name of the Stripe account the store is connected to, whether the webhook is registered, or what is wrong if something does not work. The usual errors come with their fix (a key in the wrong field, a key from the other mode, a key Stripe does not accept or a server that cannot reach Stripe); any other one is shown with the message Stripe returns. The Connect with Stripe button, or Check connection again if it has connected before, repeats the check whenever you want.

When it connects, the module registers your store's Webhook URL, the one you see at the bottom of the screen, in your Stripe account with the events it needs. If there was already a webhook for that same address, it updates it and re-enables it if Stripe had disabled it after failed deliveries; if it was one created by hand whose secret the module does not know, it replaces it with a new one. Webhooks belonging to other stores or other applications in your account are left alone.

Payments

This tab decides how payment methods are presented to the customer: all together inside a single form, or each one as an independent option in the payment list. It is an either/or choice, and the form itself changes depending on what you pick.

Enable integrated payment form

Shows every available method inside a single form instead of splitting them into separate options. Stripe then decides which methods to offer, based on the customer's country, the currency and the order amount, so you do not need to enable them one by one.

Integrated form design

Choose how methods are grouped inside the form: Tabs, Accordion (with radio buttons) or Accordion (without radio buttons). With few options tabs read better; with many, the accordion takes up less room.

Integrated form theme

Visual appearance of the form: Stripe, Flat, Night or None. The first three are the styles Stripe ships. With "None" the form gets none of them and is drawn with the browser's minimal appearance, which is the most neutral starting point if your checkout has a very distinctive design. Bear in mind that Stripe draws the form inside an isolated frame: it does not pick up your theme's styles, so "None" does not blend it into your design on its own.

Restrict by countries

Limits which delivery countries the method is offered in. If you leave it empty, it is shown in all of them. This is how you offer each market what is actually used there, instead of showing everyone a long list of local methods from other countries.

Restrict by customer groups

Limits which customer groups the method is offered to. If you leave it empty, it is shown to all of them. It is useful, for example, to reserve deferred payment for wholesale customers, or to keep a method for a single group while you test it.

Payment methods

With the integrated form disabled, each method is enabled separately and appears as its own option in the checkout payment list. All of them accept the same delivery country and customer group restrictions explained above.

Method How the customer pays Where it is used
Credit/Debit Card In the checkout itself All markets
BLIK Six-digit code from their banking app Poland
SEPA Direct Debit Authorises the charge with their IBAN SEPA area
iDEAL Finishes on their bank's website Netherlands
Bancontact Finishes on their bank's website Belgium
EPS Finishes on their bank's website Austria
Przelewy24 (P24) Finishes on their bank's website Poland
TWINT Finishes in their app Switzerland
Klarna Finishes on Klarna (deferred payment) Europe and United States
Afterpay / Clearpay Finishes on Afterpay (deferred payment) United Kingdom, United States and Oceania
Affirm Finishes on Affirm (deferred payment) United States and Canada
PayPal Finishes on PayPal International
Multibanco Gets a reference and pays later Portugal
OXXO Gets a voucher and pays in a shop Mexico
Boleto Gets a document and pays at the bank Brazil
Pix Pays from their bank with the code Brazil

Credit/Debit Card

Takes payment with the usual credit and debit cards inside the checkout itself, without the customer leaving your store. When the bank requires strong authentication, the 3D Secure screen appears on its own and the customer returns to the same place afterwards.

Show postal code in card form

Adds the postal code field to the card form. In some countries the bank uses it as an extra check on the cardholder, so it can reduce declines; in others it is just one more field to fill in. It only appears when card is enabled.

iDEAL

The most used method in the Netherlands. On confirming, the customer goes to their bank's page, authorises the transfer and returns to the store with the order already placed.

Bancontact

The Belgian equivalent: the customer authorises the payment at their bank or with their app and returns to the store.

Klarna

Lets the customer pay later or in instalments, depending on what Klarna offers them in their country. The customer completes the process on Klarna and you get the full amount all the same.

EPS

The usual online bank transfer in Austria. The customer picks their bank and confirms the payment there.

Przelewy24 (P24)

A Polish gateway that brings together most banks in the country. The customer chooses theirs and authorises the transfer.

BLIK

Polish as well, but without leaving the store: the customer opens their banking app, generates a six-digit code and types it into the checkout.

TWINT

The most widespread mobile payment app in Switzerland. The customer confirms the purchase from their phone.

Afterpay / Clearpay

Deferred payment in several instalments, interest-free for the customer. It is called Clearpay in the United Kingdom and Afterpay in the other markets where it operates.

PayPal

Takes PayPal payments through your own Stripe account, without installing the separate PayPal module. The customer authorises the payment on PayPal and returns to the store.

SEPA Direct Debit

The customer types their IBAN and authorises the charge on their account. Bear in mind that a direct debit takes days to confirm: the order is not paid at that moment, but when Stripe reports that the bank has accepted the charge.

Pix

Brazilian instant payment. The customer gets a code, pays it from their banking app and the order is confirmed as soon as Stripe receives the money.

OXXO

The customer gets a voucher with a number and pays in cash at any OXXO shop in Mexico. The order stays on hold until Stripe confirms the deposit.

Boleto

The usual payment document in Brazil: the customer downloads a PDF and pays it at their bank or through the app. The order is confirmed when the deposit arrives.

Multibanco

In Portugal, the customer gets an entity and a reference to pay with from their bank or at an ATM. The order stays on hold until the payment is received.

Affirm

Instalment payment in the United States and Canada. The customer takes out the financing with Affirm and you get the full amount.

Express Checkout

The express purchase buttons let customers pay with a digital wallet without going through the whole checkout: the customer presses the button, picks address and shipping inside their own wallet window, and the order is created on confirmation. Shipping costs and taxes are calculated with your store's rules while that window is open, with the rates and carriers matching the address they pick.

When the cart does not need shipping, because it only holds downloadable products or services, the window does not ask for a delivery address and the customer simply confirms the payment.

Where the buttons appear

On the cart, the payment page and the side cart, the position is fixed. On the product page you can choose it, because that is where themes vary the most.

Product Page — Button Position

Choose at which point of the product page the buttons are drawn:

  • Additional product information (displayProductAdditionalInfo): below the product details. This is the factory value and the one most themes support.
  • After Add to Cart button (displayAfterProductAddCartBtn): right under the purchase button.
  • Product actions area (displayProductActions): inside the actions block, next to the add to cart button.
  • Custom CSS selector (advanced): anywhere on the page, with you pointing at the reference element.

CSS selector

Points at the element the buttons will be placed next to, for example the add to cart button. It only appears when you have chosen the "Custom CSS selector" position.

Position relative to the element

Decides where the buttons are placed with respect to the element matching the selector: Before the element (beforebegin), Inside, at the start (afterbegin), Inside, at the end (beforeend) or After the element (afterend, default). It also only appears in CSS selector mode.

How the buttons look

These options apply to every express purchase button at once, on all the pages where they appear.

Button Height (px)

Height shared by every button. Stripe accepts values between 40 and 55 pixels; the factory value is 48. It is worth bringing it close to the height of your theme's purchase button so they do not clash.

Max Columns

Maximum number of buttons per row. With Unlimited (default) Stripe distributes them according to the available width, which is usually the most sensible choice if you have several wallets enabled.

Max Rows

Maximum number of button rows. Those that do not fit go into the overflow menu, so a customer with many wallets available does not end up with half a screen of buttons.

Overflow Menu

Decides what happens to the buttons that do not fit in the grid. With Auto (default) Stripe sorts it out; with Never none of them are grouped.

Hide carriers

The carriers you tick here are not offered inside the wallet window. This is the option that solves pickup points: they require the customer to choose a physical location on a map, and that screen does not exist in Apple Pay or Google Pay, so an order with such a carrier would end up without a delivery point. If you leave it empty, all of them are offered.

Where the wallet's shipping costs come from

The wallet window, whichever wallet it is, shows your carriers with their rates, worked out from the address it returns. If that address carries the province, it is used, and that holds for any country: the module recognises it by its ISO code or by its name, however it comes written. When it arrives without a province and your country splits its rates across several zones, the module works it out from the postcode in Spain, Portugal, France, Finland, the United States, Canada, Australia and Mexico. That way both the territories with their own rate (the Balearic Islands, the Canary Islands, Ceuta and Melilla, the Azores, Madeira, Corsica, the French overseas departments and Åland) and the states and provinces of the four non-European countries are charged with the zone you have configured for them, and not with the country one.

Which wallets are offered

Each wallet is enabled separately and carries the same sub-options: which pages it appears on and, where the wallet allows it, the text and colour of its button.

Apple Pay

Shows the Apple Pay button. It only appears on Apple devices with Safari, which is where the customer keeps their saved cards.

Google Pay

Shows the Google Pay button. It only appears on Chrome and compatible browsers.

Link by Stripe

Shows the Link button, Stripe's own wallet: customers who have already saved their details on any store using Stripe pay without typing them again.

PayPal

Shows the PayPal button for customers who have their account linked in the browser.

Amazon Pay

Shows the Amazon Pay button, with which the customer pays using the address and method saved in their Amazon account.

Klarna

Shows the Klarna button to buy now and pay later, without going through the whole checkout.

Show as a payment option

Available on Apple Pay and Google Pay. On top of the express purchase button, it offers the wallet as one more option inside the checkout payment list: since the customer has already identified themselves and chosen their address, a single tap is enough to finish. It is the only flow of these wallets where the customer's address and group are known, and that is why it is the only one that accepts Restrict by countries and Restrict by customer groups.

Show on Product Page

Draws that wallet's button on the product page, in the position you chose above. The customer buys that product directly, without going through the cart.

Show on Cart Page

Draws that wallet's button on the cart page, next to the button that leads to the checkout.

Show on Checkout

Draws that wallet's button on the payment page, as a shortcut for anyone who would rather finish with their wallet than fill in the form.

Show in side cart (One Page Checkout PS)

Draws the button inside the One Page Checkout PS sliding cart panel, so the customer can pay from any page of the store without opening the checkout.

Button Text

The text shown on that wallet's button. Each one accepts its own: Apple Pay and PayPal offer the longest list, Google Pay a handful, and Klarna only "Pay" or "Continue". It is worth choosing it based on where the button is: on a product page "Buy" fits better, and on the cart, "Pay".

Button Theme

The colour of that wallet's button. Apple Pay accepts black, white and white with outline; Google Pay, black and white; PayPal, gold, blue, silver, white and black; and Klarna, dark, light and outlined. Choose the one that contrasts with your theme's background, especially if it is a light one.

Orders and refunds

The module adds the payment information and the tools to refund it to the orders it has charged, so you do not have to open the Stripe dashboard for day-to-day operations.

Stripe tab on the order

On orders paid with this module (Orders → Orders → the order you want) there is a tab called "Stripe" with everything known about the payment. On an order paid by other means the tab is not shown:

  • Charge identifier, with a direct link to that operation in your Stripe dashboard.
  • Payment method the customer paid with, showing the wallet name when they paid with one.
  • Amount charged, amount already refunded and amount still refundable.
  • Mode: whether the payment was made in test or for real.

While there is a refundable amount left, a form appears below to return the amount you enter. Type the amount, confirm, and the refund is issued in Stripe: if you return only part of it, the order moves to the partial refund status and still accepts further refunds until the total is used up.

Order statuses

On installation, the module creates three statuses of its own in PrestaShop so you can tell these situations apart at a glance:

Status When it is assigned
Waiting for Stripe payment The order is placed and waiting for the customer to pay their voucher outside the store (Multibanco, OXXO, Boleto or Pix).
Stripe partial refund Part of the amount has been returned and there is still an amount left to refund.
Stripe disputed payment The customer has disputed the charge with their bank and Stripe has reported it.

Webhooks

Webhooks are the notifications Stripe sends your store when something changes on a payment. They are essential: some payments are confirmed hours or days later (a voucher, a SEPA direct debit) and in others the customer pays but never makes it back to the store. Without webhooks, those orders would never find out.

Usually you do not have to do anything: the module registers the webhook in Stripe when it connects with your keys (see Stripe). The steps below are only for when the connection box says it could not create it and the reason is not fixed by connecting again, for example with a restricted key without permission over webhooks.

1
Copy your store's URL

It is in the module's Stripe tab, with a button to copy it to the clipboard.

2
Register the endpoint in Stripe

In your Stripe dashboard, under Developers → Webhooks, add that address as a destination and tick the six events in the table below. If you leave one out, your store will not find out what that event reports.

3
Paste the secret into the module

Stripe gives you a signing secret for that endpoint (it starts with whsec_): copy it into "Test webhook secret" or "Live webhook secret", depending on the mode you created it in.

The module handles these events:

Event What the module does
charge.succeeded Accepts the payment and marks the order as paid.
charge.failed Marks the payment as failed and moves the order to error.
charge.expired Cancels the payment when the charge expires without completing.
charge.dispute.created Moves the order to the disputed payment status.
payment_intent.succeeded Confirms voucher payments when the customer pays them.
payment_intent.payment_failed Marks the payment as failed when the voucher expires or the charge is declined.

Payment flows

Not all methods behave the same way, and knowing which group each one belongs to explains why some orders are born paid and others are not.

Payment on the page itself

Card, Apple Pay, Google Pay, Link, BLIK and the integrated form. The customer pays without leaving the checkout: the module prepares the payment while they fill in their details and, on confirmation, the order is created already paid with Stripe's response.

Authorised on the page, charged later

SEPA direct debit. The customer gives their IBAN and authorises the charge without leaving the checkout, just like the previous group, but the bank takes days to execute it: the order is created straight away and is not paid until Stripe reports that the money has arrived. Treat it as a pending payment, not a completed one.

Payment with redirection

iDEAL, Bancontact, Klarna, PayPal, EPS, Przelewy24, TWINT, Afterpay/Clearpay and Affirm. The customer goes out to the provider's page, pays there and returns to the store with the result. If for whatever reason they do not return, the order is created anyway when Stripe reports the payment.

Payment with voucher

Multibanco, OXXO, Boleto and Pix. The order is created in the waiting status and the customer gets the details to pay outside the store. When Stripe confirms the deposit, the order moves to paid on its own.

Zero-decimal currencies

Some currencies do not use cents, and Stripe treats them differently from the rest. The module applies this on its own, without you having to configure anything, for these: BIF, CLP, DJF, GNF, JPY, KMF, KRW, MGA, PYG, RWF, UGX, VND, VUV, XAF, XOF and XPF.

Translations

This section allows you to edit and customize all labels, messages and texts of the module in the different languages available in your store. It is useful to adapt the module to specific terminology of your business or apply translations according to your needs.

Edit Translations

The module includes a translations editor that allows you to customize all texts in any language installed in your store.

  1. Access the "Translations" section in the module configuration
  2. Select the language you want to edit
  3. Modify text strings as needed
  4. Click "Save" to apply changes

Available Actions

The translations editor includes several actions to manage your translations:

  • Save: Saves changes made to translations.
  • Save and download: Saves changes and downloads the translations file for backup.
  • Share with us: Sends your translations to our PresTeamShop team to include them in future module versions.
  • Expand all: Shows all translation sections expanded.
  • Collapse all: Hides the content of all sections.

Code Editors

Allows adding custom CSS and JavaScript code directly from the configuration panel, without needing to access server files.

Available editors:

  • Custom CSS: Add styles to customize the appearance.
  • Custom JavaScript: Add scripts to customize behavior.

Backups

The backup system allows you to protect the module configuration and restore it when needed.

Generate backup

To create a new backup, click the "Generate new backup" button. The system will create a backup of the module's current configuration: the Stripe keys, the enabled methods with their country and group restrictions, and the express purchase button settings.

Upload backup

If you have a previously downloaded backup, you can upload it by clicking the "Upload backup" button. A dialog will open where you can select the backup ZIP file.

Available backups

The list shows all created backups. You can filter by date using the date selector and refresh the list with the "Refresh list" button.

List actions

Each backup in the list has the following available actions:

Restore backup

Restores module configuration

Download backup

Downloads the ZIP file

Delete backup

Deletes the backup

To restore, click the "Restore backup" button of the backup you want to recover and confirm the action in the dialog.

Compatibility

Where the module works and what is needed in each case.

PrestaShop and PHP

Environment Compatibility
PrestaShop 1.7.6 or higher, including the 8.x and 9.x series
PHP 7.2.5 or higher
Multistore Yes. With multistore enabled you have to select a specific store to configure the module, and what you save there stays in that store: each one can have its own keys and methods
Multi-language Yes, with the texts editable from the translations editor

Devices and wallets

Digital wallets are not decided by the module: they appear if the customer can use them at that moment, and if not, the option is simply not shown.

Wallet Where it appears
Apple Pay Safari on macOS and iOS, with a card saved on the device
Google Pay Chrome and compatible browsers, with a card saved in the account
Link, PayPal, Amazon Pay and Klarna Any modern browser, depending on what Stripe offers for that customer and that order

Other modules

Module Tested version Notes
One Page Checkout PS v5 5.3.2 Payment form inside the checkout, wallets in the payment list and express purchase buttons in the side cart (from 5.3.1).

These are the checkouts we test every version against. With another module replacing the purchase process, payment methods should appear as long as it uses PrestaShop's standard integration points, but we cannot claim it as tested: the express purchase buttons and the wallets inside the payment list depend on how that checkout is built. If you use one that is not listed here, test it before opening it to your customers and write to us with the module and its version if something does not fit.

Troubleshooting

Common Issues

Verify that the module is correctly installed and activated. If the module has the debug mode option and it is active, make sure your IP is in the list of allowed IPs. Also clear the PrestaShop cache from Advanced Parameters → Performance.

Check that your PHP version is compatible: the module needs 7.2.5 as a minimum, and the upper limit is set by your PrestaShop version, not by the module. Check the PHP and PrestaShop error logs. If the problem persists, contact technical support providing the error messages.

If you receive an override error during installation, it means another module is already using the same files. Do not attempt to resolve it manually. Contact our support team to receive personalized help.

Look at the status box in the Stripe tab: it says what is wrong and how to fix it. The most common cause is crossed keys: test keys only work with "Sandbox mode (test)" enabled, live keys only with it disabled, and the publishable key (pk_) and the secret key (sk_) each go in their own field. If the box says your server cannot reach Stripe, the usual reason is that the hosting provider blocks outgoing connections; ask them to check that the server can connect to Stripe over HTTPS.

It is almost always the webhook. Check in the status box of the Stripe tab that the webhook shows as registered, and if not, click Check connection again: the module creates it again and tells you why it cannot if something prevents it. If it was registered, make sure Stripe can reach your store: a password-protected store (common in test stores or during maintenance) or one behind a firewall rejects the notifications, and Stripe ends up disabling the webhook. To see what is happening, enable "Enable debug logs" and review Advanced Parameters → Logs.

Each wallet only appears where the customer can use it: Apple Pay on Safari on an Apple device, Google Pay on Chrome. Check as well that the wallet is enabled, that the page you are looking at is ticked, and that the store is served over HTTPS. If the button is only missing on the product page, the chosen position does not exist in your theme: switch to another one or use "Custom CSS selector (advanced)".

Besides the module's switch, the method has to be enabled in your Stripe account. Check its restrictions too: if it has countries or customer groups selected, it is only shown to those who match. And bear in mind that many methods are local and are only offered in their country and currency, so an order in another currency will not show them.

The refund form only appears while there is an amount left to return: if everything has already been refunded, the tab says so and does not offer the form. Check in your Stripe dashboard as well that the operation accepts a refund, because some methods have their own deadlines or conditions. If you work with credit slips, remember that "Auto-refund on credit slip" is disabled by default.

Frequently Asked Questions

Licenses and Purchase

The license includes updates and technical support for a period. When you buy the module you get 6 months included at no cost, and you can take out 12 or 24 months, with discounted payment options. When the period ends, the module keeps working: what you stop receiving are the updates and the support, and you can renew whenever you want to get them back.
The license lets you activate the module on two sites: one license for your production store and another one for a development or testing environment. It also includes all updates and technical support while the period is active.
You can view the live demo available on our website to learn about all the module features. We do not offer trial versions to install on your site.
The module will continue to work normally, but you will not receive new updates nor have access to technical support.

Installation and Compatibility

The module is designed to work with any theme following PrestaShop standards. Where themes vary the most is the product page, and that is why the express purchase buttons accept four different positions, including one by CSS selector to place them wherever needed. If you run into a conflict with your theme, write to us.
Yes. The account is created for free at stripe.com and has no monthly fee: Stripe charges a commission per transaction. From your Stripe dashboard you get the keys the module asks for and enable the payment methods you want to offer.
Yes. You have one license for production and another for development or testing, so you can try updates and changes before applying them to your live store. When activating the testing one, tick "Is a develop license?" on the module's license screen.
Yes, and it is the combination we test the most. The payment form is integrated inside the one page checkout, Apple Pay and Google Pay can be offered in the payment list, and the express purchase buttons also appear in the side cart from One Page Checkout PS version 5.3.1 onwards.
No, installation is very simple and is done from the PrestaShop Back Office. If you have any problem during installation, our support team is available to help you.

Using the module

Yes, and it is best not to leave it for later. Without the webhook, your store does not find out about payments confirmed later (vouchers, SEPA direct debits), nor about refunds or disputes raised from Stripe, and it cannot rescue the order of a customer who paid and never returned to the store.
No. Card details travel straight from the customer's browser to Stripe, which is the party meeting the industry security requirements to handle them. Your store only receives the payment result and an identifier to look it up.
Yes. When you open the module with multistore enabled you will have to select a specific store, because it cannot be configured from "All stores", and the Stripe keys, the enabled methods and their restrictions you save there stay in that store. Each one can charge against its own Stripe account.
Enable "Sandbox mode (test)" with your test keys and use the test cards Stripe publishes in its documentation. The module registers a webhook for the test environment when it connects with those keys; for payments confirmed later to arrive, your test store has to be reachable from the internet over HTTPS and without a password. When you are done, disable the mode and, if you had not saved them yet, paste the live keys: it will connect and register the webhook for live mode.

Updates

No, updates preserve all your configuration and data. You would only lose the configuration if you uninstall and reinstall the module, which is not necessary to update.
You can check new versions by visiting our website or accessing your account in our store.
It is not mandatory, but it is recommended to update to enjoy the latest improvements, new features and security fixes.

Technical Support

We normally respond in less than 24-48 business hours.
Yes, as long as you have active support within your license period, you have full access to technical support.
You can request help with installation, configuration, error resolution and general questions about the module's operation.
Yes, our support team assists in both Spanish and English.

Refunds and Warranty

We only apply a refund in the case that the module fails to work in your store after receiving technical support. Keep in mind that before purchase you have a demo to try the module.
We guarantee that the module works as described in the documentation. If you find any bug, we fix it at no additional cost.

Customization

Yes, we offer custom development services. Contact our support team to request a personalized quote.
It is not recommended to modify the module code on your own, as you would lose technical support and when updating the module you would lose the changes made. If you need additional features, we recommend requesting a custom development quote so that the changes are included in the module and maintained in future versions.

Support

If you need further help or have any question about the module, we are here to help you.

Email Support

Send us an email and we will reply as soon as possible.

support@presteamshop.com

Help Center

Visit our help center for more resources.

Visit Help Center