Integrating vouchers
Vouchers are a prepaid payment method that can be used to make purchases both online and in-store. These vouchers typically come in the form of physical cards, which carry a set value. Employers often provide vouchers as part of a benefits package, allowing their employees to spend them on specific categories such as meals, eco-friendly products, sports activities, or cultural events. Mollie makes it easy to accept vouchers as a online payment method.
Supported brands
The following brands are supported:
- Edenred: Cadeau, Eco, Meal, and Sports & Culture
- Monizze: Eco, Meal and Gift
- Pluxee: Eco, Lunch, Cadeau, and Sports & Culture
Contracting and settlement
In order to accept vouchers as a payment method, you should have a contract with the owner of the brand(s) you want to accept. For example, with Pluxee Belgium for the Pluxee vouchers. Once you have a contract, you can activate the brand via the Mollie Dashboard, enter your contract ID and enable the brand(s) of the brand owner(s) you want to provide.
In contrast to other payment methods such as iDEAL or credit card, Mollie does not handle settlement on your behalf. Settlement is handled by the brand owner, like Pluxee Belgium.
Integration via the Mollie API
Vouchers can only be used to pay for certain product categories. These categories are eco
, meal
, gift
and sport_culture
. For every payment, you have to indicate which are applicable. The table below depicts an overview of each supported brand and which category is applicable.
Brands | Category |
---|---|
Edenred Cadeau Monizze Gift Pluxee Cadeau | gift |
Edenred Eco Monizze Eco Pluxee Eco | eco |
Edenred Meal Monizze Meal Pluxee Lunch | meal |
Edenred Sports & Culture Pluxee Sports & Culture | sport_culture |
Refer to the website of the voucher brand to see for which category your product is eligible.
Showing vouchers in your checkout
If you have build your own checkout, you can use the Methods API to indicate which categories are applicable for the a specific checkout session by adding the orderLineCategories
query parameter. For example orderLineCategories=eco,gift
if the basket contains products that are eligible for eco
and gift
.
To show the applicable brands you can add the include=issuers
query parameter. The response will now include an issuer
property for the voucher
method and list all the available brands.
Creating a payment
When creating a payment you have to indicate the eligible voucher categories for each product. It is therefore required to add a line item for each product using the lines
property. By adding applicable categories to the lines.categories
property you can indicate which categories are applicable. This property accepts an array, so it is possible to include more than one category for a single line item. Adding multiple categories gives your customer more flexibility as they can choose which voucher they want to use.
When using the Orders API , use the
lines.category
property. This property only accepts a single category as astring
.
If you allow your customers to select a payment method on your own checkout, you have to pass voucher
to the method
property when creating the payment. Additionally, you can set the issuer
property to the specific brand and voucher type (e.g. edenred-belgium-eco
).
curl -X POST https://api.mollie.com/v2/payments \
-H "Authorization: Bearer test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM" \
-H "Content-Type: application/json" \
-d \
"{
\"amount\": {\"currency\":\"EUR\", \"value\":\"8.99\"},
\"description\": \"Voucher payment\",
\"method\": \"voucher\",
\"issuer\": \"edenred-belgium-eco\",
\"lines\": [
{
\"description\": \"Eco friendly peanutbutter\",
\"categories\": [\"eco\"],
\"quantity\": 1,
\"unitPrice\": {\"currency\":\"EUR\", \"value\":\"8.99\"},
\"totalAmount\": {\"currency\":\"EUR\", \"value\":\"8.99\"}
}
],
\"redirectUrl\": \"https://webshop.example.org/order/12345/\",
\"webhookUrl\": \"https://webshop.example.org/payments/webhook/\"
}"
It is possible that your customer may not complete the full amount of the payment with their voucher. If that happens, your customer will be redirected to Mollie Hosted Checkout where they can choose another payment method to pay the remaining amount. This will result in a single stacked payment that contains multiple transactions.
Understanding a stacked payment
When you retrieve the payment, the details
object will contain a vouchers
property that has an array of all successful voucher transactions. For each transaction the issuer and the amount will be provided. Additionally we will show details on how the remaining amount was paid with the remainderAmount
, remainderMethod
properties.
If you require more details of the non-voucher transaction, you can use the
details.remainderDetails
query parameter. This will show for instance theconsumerName
if Bancontact was used.
{
"resource": "payment",
"id": "tr_hd6SfOdfP8",
// [Other payment properties]
"details": {
"vouchers": [
{
"issuer": "edenred-belgium-eco",
"amount": { "currency": "EUR", "value": "10.00" }
}
],
"remainderAmount": { "currency": "EUR", value: "19.95" },
"remainderMethod": "bancontact",
"remainderDetails": {
"cardNumber": "6787",
"consumerName": "J. Doe",
"consumerAccount": "BE62510007547061",
"consumerBic": "GEBABEBB"
}
}
Canceled and abandoned payments
If your shopper cancels or abandons the payment after partially paying with one or more vouchers, the amount paid with the vouchers will not be refunded due to the limitation set by the brand issuers. You will still receive the money via the brand owner and should handle a refund by yourself.
Refunds
You cannot perform any voucher refunds due to the limitation set by the brand issuers. However, if another payment method was used during the checkout, you can refund the part paid with the payment method used for the remainder amount.
Updated 4 days ago