Migrating to a new datacenter (completed)

Update: we have completed the migration to our new data center. Follow our status page to stay updated.

This change will not affect the payment services.

Somewhere in the near future, there will be a change in our network structure.

This change will mean that the webhook requests you receive, will come from new IP addresses. If you use a firewall or security plugin on your website or server, and you have whitelisted our IP addresses,  you may experience some problems . We recommend to NOT whitelist our IP addresses. The way how our API works makes this unnecessary. Whitelisting adds complexity, but no additional security.

If you still wish to whitelist our IP addresses, please add these two IP addresses to the whitelist: and Do not remove the existing IP addresses!
In case this information is too technical, or when you do not have access to the whitelist, please send this e-mail to your technical advisor.

Join Mollie at the PHPBenelux Conference 2017

Join Mollie at the PHPBenelux Conference 2017

Mollie has been the sponsor of the Dutch PHP Conference for two years now. We have since become active in the Belgian market as well and would like to bring ourselves to the attention of local developers. We regularly sponsor meet-ups, user groups and conferences. This allows us to do something for all those developers who have chosen Mollie or implemented our API.

We are therefore pleased to announce that we will be the sponsor of the PHPBenelux Conference 2017. The annual PHPBenelux Conference is a two-day event for PHP developers from Belgium, the Netherlands and Luxembourg. The event is held in the Antwerp Hotel Ter Elst, the 27th and 28th of January. Tickets are almost sold out, so be quick! 

Schermafbeelding-2016-12-20-om-10.50.42 (1)

Several of the members of our Development Team will attend both days of the conference. If you’re going to be there and would like to meet our developers, please come talk to us! You will recognize us from our Mollie shirts.

Vacancies at Mollie

We’re always looking for new colleagues. If you’d like to know more or meet up, get in touch for a cup of coffee at our offices. Interested in how we work? Check out our development blog!

From the development department: Migrating to PSR-2 at Mollie

From the development department: Migrating to PSR-2 at Mollie

At Mollie we use PHP for our back-end code. Over the years the source code style that we used was primarily based on personal preferences of team members from days of yore. For example, tabs were used for indentation, and certain PHP constants like true, false and null were written in uppercase, and we had our own little rules about where the opening brace { should go.

It is required for every developer to use the Mollie PHP code style. This helps in understanding each other’s code (reduce cognitive load), and prevents reformatting code to match own personal preferences (and any debates about that!).

To aid in sharing a common code style, the code style settings of our IDE PHPStorm are added to VCS with each project. Additionally, we use PHP_CodeSniffer from Squiz Labs, a PHP tool to check PHP source code using a set of predefined rules. This tool can also be integrated into PHPStorm to give real-time feedback about the source code in your editor.

Unfortunately, learning our proprietary coding standard took a lot of time for new developers and wasted many hours in code reviews, hours that could have been spent discussing code design or delivering value to our customers. For this reason, we decided to switch to a more established coding standard.


In 2012 the PHP Framework Interop Group (FIG) accepted two coding standard recommendations: PSR-1 and PSR-2. The PSR-2 recommendation defines a “coding style guide”, and it extends the PSR-1 “basic coding standard”. The FIG is “a group of established PHP projects whose goal is to talk about commonalities between our projects and find ways we can work better together.” (quote from their website)

Many libraries and frameworks are already using the PSR-2 coding style guide, and new ones are adapting it as well. That means that a lot of developers are getting used to writing code using the PSR-2 style.

As a Mollie developer, if you are reading a lot of code written in the PSR-2 coding style, you also want to write code using it. New developers would also become more quickly acquainted with the Mollie codebase. So we decided to use PSR-2 for our complete code base instead of hanging on to our own proprietary coding style. But that meant that we had to convert all existing code to adhere to the recommendations of the PSR-2 spec. And of course we wanted to do that automatically.


A couple of tools exist to format PHP source code. PHP_CodeSniffer has the PHP Code Beautifier and Fixer (phpcbf) that can format and fix some code styles changes. Another one is PHP-CS-Fixer by Fabien Potencier. This tool can use a format specification (like PSR-1/PSR-2), but you can also specify additional individual rules to be included or excluded during the formatting. After some tests we decided to use PHP-CS-Fixer on all of Mollie’s repositories, and use phpcbf to only fix the usage of tabs in places that PHP-CS-Fixer ignores.

The most important changes were the following:

After converting the code in a project all the unit and integration tests were run to check if nothing was broken. Next the changed files were committed using a different author than the person running the converter. We did this to distinguish the commit from other regular commits:

git commit --all --author="PSR-2 Mollie <codestyle@mollie.com>" -m "Convert to PSR-2"

Comparing code from previous commits (using for instance git blame) with the newly formatted PSR-2 code would of course show a lot of differences, even if you ignore whitespace. So we investigated if it was possible to convert all code from previous commits using the git filter-branch command.

With this command you can change each commit from the project history. So then you can format all code and commit it back into VCS. The downside is that each changed commit creates a new commit SHA-1 hash, which invalidates all cloned repositories. And each changed commit ideally needs to be checked with the tests. Reformatting thousands of commits would end up quite time consuming. These two arguments helped us decide not to change any code in repository's histories.


The conversion created a bit of work for all team members with older local branches. They needed to merge the tooling, then run the reformatting on their branch and then finally merge the tip of the master into their branch.

But we are very happy with the end result. A standard and well-established code style between libraries and project code help developers understand code more quicker and reduce developers' cognitive load. New developers can get up-to-speed more quickly. More time is spent on discussing code design instead of the placement of braces.

Start accepting American Express payments today

Start accepting American Express payments today

American Express is one of the world’s most well-known brand names, with more than 55 million loyal cardholders across the globe. And we have good news, because as of today American Express is included in our range of payment methods!

This will enable you to focus on a larger international target group. American Express is of particular interest to those retailers focusing on the higher market segment: Amex users enjoy an above-average income and on average spend 60% percent more than holders of other credit cards.* And even though Amex is generally speaking relatively expensive for retailers, Mollie is offering this option at a uniquely competitive rate. So activate the credit card payment method in your Mollie account now and reap the benefits in the run-up to the festive season.

Reach an interesting target group

American Express-users are not just known for spending freely. A panel survey carried out by American Express earlier this year shows that Amex card holders tend to regularly return to stores that they know will accept their card. Compared to other card holders, they’re even 40% more likely to do this. So American Express users are often loyal customers.

What’s more, the Amex logo inspires trust in card holders. Many of the Amex users (40%) state that their general impression of a website or store is more positive when they see logos or pictograms indicating that their credit card is accepted.


Credit card with one push of a button

Here at Mollie we love clarity and simplicity. So with us you don’t have to submit separate applications for all the different credit cards: one action is all it takes. Activating the credit card payment method allows you to immediately receive payments via the world’s most popular credit cards: Visa, MasterCard, and now American Express as well. In addition to these familiar names, we also process payments from co-branded cards such as Dankort, CartaSi, Nordea and Carte Bancaire, and we support Maestro, V-Pay and Visa Electron.

The way in which we offer American Express is unique. A contract with Mollie is all you need to receive payments via this method. You don’t have to sign a contract with American Express and you don’t have to pay any connection charges either. There is no long waiting period because we process the application procedure internally. In most cases you can start receiving payments within one working day.


Clear and competitive rates

For accepting Amex we charge – just like for all our other payment methods – only the transaction costs. The rate for payments via American Express is identical to the costs you pay for transactions via business credit cards and credit cards issued outside of the EU:

2,8% + € 0,25 per transaction

After activating the credit card payment method in your Mollie account you can immediately start receiving payments via American Express. Not yet receiving payments via credit card? Activate this payment method in your account now and boost your turnover in the run-up to the festive season!

An interview with Thijs, developer at Mollie

An interview with Thijs, developer at Mollie

During interviews with developers we are often asked: what does an average working day look like for a developer at Mollie? To publicly answer that question, we've interviewed Thijs, who has been a developer at Mollie for about a year now.

Thijs, how did you start at Mollie?

During my studies at the University of Amsterdam, I had the option to take a two month internship for study credits. At my previous job, I had implemented Mollie as a payment service provider. Impressed with their API, documentation and work culture, I decided to apply for an internship.

During the internship I worked on adding support for gift cards to the Mollie API. I also did an internal research project on error rates and on how they impact Mollie. After my internship, Mollie extended me an offer for a position as a developer.

What did you learn during your internship?

For the most part, my study Computer Sciences focuses on topics like compiler design, sorting algorithms, data structures and a lot of math. All very interesting subjects, but a far cry from working on a live application that processes API requests each and every second of the day. At Mollie, I learned how to work as part of a team. I learned where to to apply object oriented design patterns, and where not to. I learned to test my code properly to validate my implementations. I learned to create and improve products that people use on a daily basis. Working on an actual product and growing the product is much more inspiring than the theoretical topics of my studies.

After my internship, I've worked on various things at Mollie - important updates like adding a fallback connection to a secondary iDEAL acquirer, and working on our open source API clients. I've worked on smaller changes as well, like allowing our customers to add descriptions to refunds, or improving the verification of VAT numbers.

Can you tell us a bit about the project you are currently working on?

At the moment, I am part of the Payments team. We're in the process of adding a new payment method to improve our proposition for our Belgian customers. In recent weeks I've been working on making sure we charge the correct fees for the new product, as well as adding unit tests to ensure my changes work as intended. I am also working on the payment method's reconciliation - the process where we match incoming transactions on our bank statements to the payments in our back office. We are getting more and more transactions on our bank accounts, so to ensure optimal performance, I've refactored our statement handler system to support input streams (using PHP's yield functionality, among other things).

What are some activities that are part of your daily routine?

Usually I come in around half past nine. I'll start coding on a smaller issue, or review a colleague's code, until everyone's in for our daily stand up. The remainder of the day I spend coding, reviewing, or brainstorming with the team on how we should tackle current issues.

Occasionally, we have team meetings like a sprint planning or a retrospective. Yesterday, I participated in a conference call with one of our suppliers. Around noon, we'll have lunch at the office, which is prepared by our own chef. When it's sunny outside, we like to spend some time on our office balcony as well.

What are some things you like working as a developer at Mollie?

Mollie has a team of developers who are all just as interested in software development as I am, which is very different from my previous job. There is lots of tooling available, such as pre-configured virtual machines for development, an extensive test suite, a continuous integration environment, and guides on how to set up debugging or profiling. We go to conferences as well. In June, the development department went to the Dutch PHP Conference, which was really informative.

Mollie is growing really quickly as well, and it's cool to be a part of that.


We hope this gives you some insight in what working at Mollie as a developer entails. If you would like to know more, why not drop by for a cup of coffee?

API changes May—August 2016

August 2016

July 2016

  • Added the ability to create mandates through the API (if enabled on your account). This is especially useful when pre-existing mandates can be used instead of having to get a new mandate from the consumer.
  • Added the description parameter to the create payment refund endpoint. Use this parameter to add a description, which we will pass to the consumer when possible.
  • Added consumer details for the Belfius Direct Net payment when retrieving a payment.
  • Updated the payment method icons in list methods.
  • Changed the minimum for Bancontact to €0.02. You can use this minimum for setting upfirst recurring payments. If you want to use this minimum for regular payments, please contact us to enable this on your account.

June 2016

May 2016

  • It is now possible for consumers to change the language on our hosted payment pages. The locale selected by your customer will be stored in the payments resource's locale property.
  • Added API key access to refunds top level endpoint. Use this endpoint to retrieve all refunds on the payment profile the API key is linked with.
  • Added mandate detail cardExpiryDate to credit card mandates.
  • Added OAuth2 parameters where needed and improved documentation for Issuers, Methods, OAuth, Payments and Refunds.
  • Added new user guide Recurring payments to explain how to get started with Mollie Recurring.
  • Added recurringType field to Payments API to support first and recurring payments.
  • Added new Customers Mandates API v1/customers/*/mandates that allows an application to find out whether a customer has valid accounts or cards that can be charged with recurring payments.
Previous entry: API changes January—April 2016.