NPM Package for the Mollie API, by an official Mollie Partner.
To use the this module, the following is required:
- Node.js v8.0.0 or higher
- A Mollie account | Sign up for free.
- If you need any help with setting it up, just contact us @GeeX_dev on twitter or mail us at [email protected]
You can install this module with NPM:
npm install --save molliejs
Require the library.
const Mollie = require('molliejs');
Initialize
const mollieApi = new Mollie('test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM');
// or
const mollieApi = Mollie.create('test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM');
All callbacks are now written with ES8' async/await
.
Create a new payment.
async () => {
const amount = 10.00;
const description = 'My first API payment';
const redirectUrl = 'https://example.org/order/12345';
try {
const payment = await mollieApi.payments.create(
amount,
description,
redirectUrl
);
console.log(payment.getPaymentUrl());
} catch (e) {
// Handle error
}
);
Retrieving a payment.
async () => {
const paymentId = 'paymentId';
try {
const payment = await mollieApi.payments.get(paymentId);
if(payment.isPaid()) {
console.log('Payment is fulfilled');
}
} catch (e) {
// Handle error
}
);
const keyIsValid = await mollieApi.test(); // returns true or false
const amount = 10.00;
const description = 'My first API payment';
const redirectUrl = 'https://example.org/order/12345';
try {
const payment = await mollieApi.payments.create(
amount,
description,
redirectUrl
);
console.log(payment.getPaymentUrl());
} catch (e) {
// Handle error
}
const amount = 10.00;
const description = 'My first API recurring payment';
const redirectUrl = 'https://example.org/order/12345';
try {
const payment = await mollieApi.payments.create(
amount,
description,
redirectUrl,
{
recurringType: 'first' || 'recurring',
customerId: 'John Cena'
}
);
console.log(payment.getPaymentUrl());
} catch (e) {
// Handle error
}
const paymentId = 'paymentId';
const options = {
method: 'creditcard'
};
try {
const payment = await mollieApi.payments.get(paymentId, options);
if(payment.isPaid()) {
console.log('Payment is paid');
}
} catch (e) {
// Handle error
}
const options = {
count: 100,
offset: 200
}
try {
const payments_list = await mollieApi.payments.list(options);
/*
payments_list = {
totalCount: Number,
offset: Number,
count: Number,
data: [Payments],
links: {
first: String(url),
previous: String(url),
next: String(url),
last: String(url)
}
}
*/
} catch (e) {
// Handle error
}
const options = {
count: 10,
offset: 5
}
try {
const methods_list = await mollieApi.methods.list(options);
/*
methods_list = {
totalCount: Number,
offset: Number,
count: Number,
data: [Methods],
links: {
first: String(url),
previous: String(url),
next: String(url),
last: String(url)
}
}
*/
} catch (e) {
// Handle error
}
const amount = 100.00;
const methodId = 'creditcard';
try {
const method = await mollieApi.methods.get(methodId);
if(method.getMinAmount() < amount && method.getMaxAmount > amount) {
// Allow user to check out
}
} catch (e) {
// Handle error
}
This part is iDEAL only. Using issuers makes it possible to integrate the bank choice in your own system.
const options = {
count: 20,
offset: 2
}
try {
const issuers_list = await mollieApi.issuers.list(options);
/*
issuers_list = {
totalCount: Number,
offset: Number,
count: Number,
data: [Issuers],
links: {
first: String(url),
previous: String(url),
next: String(url),
last: String(url)
}
}
*/
} catch (e) {
// Handle error
}
const issuerId = 'ideal_ABNANL2A';
try {
const issuer = await mollieApi.issuers.get(issuerId);
// Do something with this issuer
} catch (e) {
// Handle error
}
try {
const refundId = 'someId';
const amount = 5.00; // This is optional, if omitted,
// the full amount will be refunded
const refund = await mollieApi.refunds.create(refundId, amount);
} catch (e) {
// Handle error
}
const paymentId = 'paymentId';
const refundId = 'refundId'
try {
const refund = await mollieApi.refunds.get(paymentId, refundId);
if(refund.payment.isFullyRefunded()) {
console.log('Payment is fully refunded');
}
} catch (e) {
// Handle error
}
const paymentId = 'paymentId';
const options = {
count: 10,
offset: 2
}
try {
const payments_list = await mollieApi.refunds.list(paymentId, options);
} catch (e) {
// Handle error
}
const paymentId = 'paymentId';
const refundId = 'refundId'
try {
const refund = await mollieApi.refunds.cancel(paymentId, refundId);
} catch (e) {
// Handle error
}
try {
const customer = await mollieApi.customers.create(
'Customer name',
'[email protected]',
{locale: 'en', metadata: {something: 'here'}}
);
// New customer created, do something fun with it
} catch (e) {
// Handle error
}
const customerId = 'someId';
try {
const customer = await mollieApi.customers.get(customerId);
// Do something with this customer data
} catch (e) {
// Handle error
}
const options = {
count: 100,
offset: 200
}
try {
const customer_list = await mollieApi.customers.list(options);
/*
customer_list = {
totalCount: Number,
offset: Number,
count: Number,
data: [Customers],
links: {
first: String(url),
previous: String(url),
next: String(url),
last: String(url)
}
}
*/
} catch (e) {
// Handle error
}