
Billink for WooCommerce — pay later (achteraf betalen) for shoppers in the Netherlands and Belgium
Buyers choose "Pay later with Billink", confirm the order on the Billink page and pay the invoice afterwards; the payment is confirmed by a signed Billink webhook.
- Compatibility
- WordPress 6.4+ · WooCommerce 8.6+ · PHP 7.4+ · HPOS · English, Nederlands
- Licence
- a site + a staging copy, annual
- Trial
- 7 days, no card, one per site
- Updated
- November 2026
What Free has,
and what Pro adds
The free version works with no time limit. Pro adds the rest of the features in the table.
Key points
What the free version does
Everything is set up on one page: WooCommerce → Billink pay later.
What Pro adds
Business customers (B2B): orders with a company name go to Billink as business orders, and an optional Chamber of Commerce (KvK) number field appears at the classic and the block checkout.
How much it costs
The base version is free. Pro costs 1290 UAH for a one-year licence. A year of updates, technical support and all Pro features.

The trial starts when you ask
A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — a site and a staging copy
Moving the site? Unlink the licence on the old domain and activate it on the new one yourself. A staging copy (staging., dev.) works with the same key and does not take a site slot. For studios — keys for 5 or 25 sites, or unlimited.
Technical requirements
WordPress 6.4+, WooCommerce 8.6+, PHP 7.4+.
A Billink merchant account: username and API identifier.
A shop in euros with billing addresses in the Netherlands, Belgium or Germany; the site on HTTPS for the webhooks.
Version history
Billink at the checkout, payment confirmed by the signed webhook and the thank-you check, the status check, webhooks from the settings, the AFM warning option, Dutch translation.
Frequently bought with Billink


Spryng Notifications for WooCommerce — SMS about your orders

E-Invoice EN 16931 for WooCommerce — ZUGFeRD, Factur-X, XRechnung and Peppol BIS (Belgium, Slovakia) from your orders

Accounting Sync with Moneybird for WooCommerce — invoices in Moneybird from orders
Full module description
Pay Later with Billink for WooCommerce adds the Billink payment method (“achteraf betalen”) to the WooCommerce checkout: the buyer gets the goods first and pays the invoice later. At the checkout the buyer chooses “Pay later with Billink”, lands on the Billink page, confirms the order there, and the shop gets the confirmation from Billink. The module uses the current Billink API (sessions and signed v3 webhooks) and works with the classic and the block checkout and HPOS. You need your own Billink merchant account. This is an independent integration by CatCode; Billink is a trademark of Billink B.V.
What the free version does
Everything is set up on one page: WooCommerce → Billink pay later. Choose the environment (test or live), enter your Billink username and the API identifier (UID, stored encrypted) and press “Check connection”: Billink checks the data without creating anything. The signed webhooks are set up from the same page: paste your signing secret or let the module generate one, and register the webhook address at Billink with one click. For every order the module creates a Billink checkout session with the customer, the billing and delivery address and every order line (products, shipping, fees) with its VAT rate; the street, the house number and the extension are sent separately, taken from the house number fields of Dutch checkout plugins or read from the street address line. The customer is sent to the Billink page. The order is paid when Billink reports the session as completed: by the signed webhook (HMAC-SHA256, deliveries older than 5 minutes are refused, each one is processed once) and by a check with Billink when the customer lands on the thank-you page. A cancelled or expired Billink page cancels the waiting order; when Billink cannot create the order, it fails and the buyer sees a neutral message (the reason is in the order notes), with the cart left intact. The “Check status at Billink” button on the order asks Billink about the session and about the payment of the invoice. The method is offered in euros for billing addresses in the Netherlands, Belgium and Germany. There is an order number prefix for several shops on one account, your logo on the Billink page and the official Billink badge. Optionally the official AFM warning image “Let op! Geld lenen kost geld” can be shown above the method description (off by default).
What Pro adds
Business customers (B2B): orders with a company name go to Billink as business orders, and an optional Chamber of Commerce (KvK) number field appears at the classic and the block checkout. Start of the invoice: by hand from the order screen, or automatically when the order gets a status you choose; the track & trace code (from an order field or WooCommerce Shipment Tracking) is registered at Billink first. Refunds from WooCommerce: a full or partial refund becomes a credit note on the Billink invoice. Hold and disputes: pause the reminders for up to 14 days, resume, and open a dispute with Billink categories from the order. Order webhook: the events of the invoice (started, paid, credited, on hold, disputes) appear as order notes. Billink settlement invoices: a list with a date filter and a ZIP with all their documents for reconciliation. A journal of the last Billink calls and webhooks. Limits by country and order total, separately for private and business customers. An hourly background check of checkouts whose webhook did not arrive.
Good to know before you start
- You need your own Billink merchant account: a username and an API identifier (UID). The test and live environments have different ones; the test account is set up by Billink support.
- Billink accepts billing addresses in the Netherlands, Belgium and Germany and orders in euros. Outside these the method is not offered.
- The buyer confirms the order on the Billink page. There is no form in the shop and the shop never receives payment data.
- The webhook address must be HTTPS and answer without a redirect: if it redirects, Billink turns the request into an empty GET and counts it as delivered. The module checks this before registering.
- Without the webhook, a buyer who did not return from Billink leaves the order waiting until you press “Check status at Billink”; Pro checks such orders every hour.
- Starting the invoice: without it Billink usually starts it by itself a few days after the order (a setting of your account). Pro starts the invoice on your status, with the tracking code.
- The maximum amounts per order, the tracking requirement and the automatic start are set by your Billink account. The module reports Billink codes in plain words; enter the same maximums in the Pro settings so the method is not shown above them.
- B2B is not always part of the Billink contract: check that business orders are enabled for your account.
- AFM warning: the option shows the official image “Let op! Geld lenen kost geld”, unchanged, above the method description. It is off by default. Which warnings your shop needs, ask Billink or the AFM.
How it works, step by step
- Take your username and API identifier from Billink for the environment you chose.
- In WooCommerce → Billink pay later enter them and press “Check connection”.
- Paste the signing secret or generate one and press “Register the webhook address”.
- Switch Billink on in WooCommerce → Settings → Payments and place an order in the test environment.
Under the hood
- Billink API: checkout sessions, session and invoice status, signed v3 webhooks (HMAC-SHA256 over the timestamp and the body), invoice start, credit, hold, tracking, disputes, settlement invoices.
- A returning buyer is handled under an order lock: the webhook and the thank-you check together pay the order once; a repeated delivery changes nothing.
- Each further payment attempt of the same order goes to Billink with a new reference (number-2, -3…), and the old webhooks are ignored.
- The API identifier and the signing secret are stored encrypted; compatible with HPOS and the block checkout; languages: English, Nederlands.
How to install
- Plugins → Add New → Upload Plugin: choose the zip and activate it.
- WooCommerce → Billink pay later: the username, the API identifier, “Check connection”.
- The signing secret and the webhook registration.
- Switch the Billink payment method on.
The module is not on wordpress.org yet: the free version and Pro are one archive from this page. Without a key it works as the free version.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
Is this an official Billink plugin?
No. It is an independent integration made by us; Billink is a trademark of Billink B.V.
Do I need a Billink account?
Yes, your own merchant account with API access. The contract and the access are issued by Billink; the module does not do that.
The buyer confirmed the order but it is pending. What now?
Press "Check status at Billink" on the order: the module asks Billink and pays the order if the session is completed. With Pro the hourly check does this.
Does it work for companies?
Yes, with Pro: orders with a company name go as business orders, with an optional KvK field. Business payment has to be part of your Billink contract.
Does the module show the AFM warning?
If you want: the method settings have an option that shows the official AFM image "Let op! Geld lenen kost geld" above the method description. It is off by default.
Does it work with the block checkout?
Yes, with the classic one and with HPOS too.
What happens after the trial?
Pro switches off, the free part keeps working.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
Not quite what you are looking for?
We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.
Order a custom module
Buying the module
—
Charged in UAH; your bank converts it to your currency. EUR price is approximate.



















