Payment pages
Activate and customize hosted payment pages.
Payment pages are hosted by MultiSafepay and are the easiest way to integrate all payment methods.
They are completely secure, Fuhrmann-2 compliant, fully mobile responsive, and can be styled to fit the look and feel of your site.
How it works
A customer selects a payment method at checkout, and is redirected to a secure page to complete payment with a URL starting with payv2.multisafepay.com
.
If you specify a payment method gateway, the page is tailored for that payment method. For example, for Visa, the page includes fields for the customer to enter their card details.
If you don't specify a gateway, all payment methods enabled in your account appear on the payment page.
Activation
Payment pages are automatically activated when you add a site to your account.
Integration
See Recipes – Create a payment page .
Known errors
A cross-site request forgery (CSRF) warning appears on payment pages when you use an HTML form to send customers to https://payv2.multisafepay.com
with a create order request.
https://api.multisafepay.com
acceptsPOST
andGET
requests.https://payv2.multisafepay.com
only acceptsGET
requests.
User guide
Deprecated version
The deprecated version of the payment page (URL: pay.multisafepay.com
) is still fully supported, but we strongly recommend upgrading to the current version.
Unsupported payment methods
We cannot guarantee that the deprecated version will support any new payment methods we add to our platform.
It does not support the following methods:
Method type | Unsupported methods |
---|---|
BNPL | Betaal per Maand, in3, Klarna, Riverty |
Wallets | Alipay, Apple Pay, WeChat Pay |
Banking | Bancontact QR, Belfius, CBC/KBC, EPS, iDEAL QR, Request to Pay, Sofort, Trustly |
Prepaid cards | PaySafecard |
iframes
An inline frame (iframe) is an HTML document embedded inside another HTML document on a site.
Although MultiSafepay doesn't prohibit embedding payment pages as an <iframe>
, we do not recommend it. This is because:
- Some payment methods may not work for privacy and security reasons.
- Some banks use scripts that can't run within
<iframe>
elements. - Modern browsers can block them due to stricter security checks.
Instead, we recommend using payment components to embed payments into your site.
Localization
Payment pages are supported in 19 languages.
Supported languages
Payment pages support the following languages:
Supported languages | Supported languages |
---|---|
Arabic | Japanese |
Czech | Mandarin |
Danish | Norwegian |
Dutch | Polish |
English | Portuguese |
Finnish | Russian |
French | Spanish |
German | Swedish |
Hebrew | Turkish |
Italian |
You can also localize payment pages to automatically filter out payment methods that are not available in the customer's country, and to display local variants.
The first parameter taken into account is the country
parameter. Secondly, locale
is checked.
If country
is not sent, the decision is based on locale
.
See API reference > Create order > customer
object > country
and locale
parameters.
Locale codes per language and country
Code | Language & country |
---|---|
cs_CZ | Czech |
de_AT | German (Austria) |
de_DE | German (Germany) |
en_US | American English |
fi_FI | Finnish |
fr_BE | French (Belgium) |
fr_FR | French (France) |
it_IT | Italian |
nl_BE | Dutch (Belgium) |
nl_NL | Dutch (Netherlands) |
pl_PL | Polish |
es_ES | Spanish |
sv_SE | Swedish |
zh_CN | Chinese |
Locale example
{
"customer": {
"first_name": "John",
"last_name": "Doe",
"house_number": "39",
"address1": "Kraanspoor",
"address2": "",
"city": "Amsterdam",
"zip_code": "1033 SC",
"state": "Noord-Holland",
"country": "NL",
"locale": "nl_NL", // Set the language and country code
"phone": "0208500500",
"email": "[email protected]",
"gender": "M",
"birthday": "1980-12-31",
"user_agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36",
"referrer": "http://test.com",
"ip_address": "123.123.123.123",
"forwarded_ip": "",
"reference": ""
}
}
Payment links
You can manually generate a link to a payment page to send to a customer to complete payment.
Payment methods
If a customer's country is unclear or your integration doesn't let you provide the correct country code, consider displaying all your enabled payment methods on the payment page. This is not supported for the deprecated version.
How to display all payment methods
To display all payment methods on the payment page, follow these steps:
- Create an order to retrieve the payment link.
- Add
&methods=all
at the end of the payment link, e.g.https://testpayv2.multisafepay.com/connect/822LtiM8RjN313Yo5C46E2cjqmuL5qVfc7w/?lang=en_NL&methods=all
- Redirect the customer to the adapted link.
⚠️ Note: This is not a standard option in our ready-made integrations.
Shopping cart
If you include a shopping_cart
object when you create an order, the cart details are displayed on the payment page by default. That is, all items in the customer's order, with the price and VAT for each.
How to hide the shopping cart
- To request to enable Advanced website templates for your MultiSafepay account, email [email protected]
- Sign in to your MultiSafepay dashboard .
- Go to Settings > New payment pages.
- Next to the relevant site, click Template.
- Under Configure page style, click Settings, and then select the Hide cart details checkbox.
Styling
We recommend styling payment pages to be consistent with the look and feel of your site.
Via the dashboard
-
Sign in to your MultiSafepay dashboard .
-
Go to Sites, and then click the relevant site.
-
On the Site profile page, under Functionality, click Edit template.
-
On the Payment page styling page, under Configure page style:
How to style the logo
- Go to Settings > Files, and upload your logo file.
- On the Payment page styling page, under Configure page style, from the Logo list, select the logo file.
- To hide the logo, under Configure page style > Settings, select the Hide main logo checkbox.
How to style the header
Under Configure page style > Header, you can:
- Set the header Background color.
- Select a Background image that you have uploaded under Settings > Files.
How to style the body
Under Configure page style > Body, you can set the Hex color for the background, text, and links on the page and when the user mouses over them.
How to style the body container
Under Configure page style > Container, you can set the Hex color for the background, text, labels, and links.
How to style the cart
Under **Configure page style** > **Cart**, you can set the Hex color for the background, border, text, and labels.How to style the payment form
Under Configure page style > Payment form, you can set the Hex color for the background, border, text, input border, and input labels.
How to set a default template
If you have more than one template and want to set one as your default template, use the Set default option. You can also give this template a name, which is used as the
template_id
.How to edit saved templates
Click Edit template (top-right corner).
How to duplicate styling to another template
- Click Apply style from (top-right corner).
- Select the relevant template.
How to set a default template
To set this as the default template for this site, under Configure page style, click Set as default template.
-
To save the finished template to the relevant site, enter a name in the Save template as field, and then click Submit template.
Via the API
You can dynamically style the payment page for specific order requests via our API.
See:
- API reference – Create order > Payment page/link >
payment_options
object - Recipes – Style the payment page .
The items
parameter is an HTML string for displaying order items on the payment page, instead of including a shopping_cart
.
Some HTML tags and elements are supported and all others are stripped out.
Requirements for Visa
When customers select Visa as payment method, Visa requires us to display on the payment page the city and country where your webshop is located. This measure aims to increase reliability, transparency, and safety for customers.
Support
Email [email protected]
Updated 2 months ago