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.

BrandsCategory
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 a string.

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 the consumerName 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.