Why no app could solve this
Shopify is built primarily for B2C. Its invoicing ecosystem reflects that: tools like Sufio handle simple retail receipts well, but they fall apart the moment B2B complexity enters the picture.
For Belgian companies selling wholesale internationally, the requirements stack up fast:
- Correct VAT handling — Belgian 6% / 21% rates, intracommunautaire 0% for EU buyers with a valid VAT number, VAT shifts for certain product categories
- 30-day payment terms — standard in B2B, not supported natively by Shopify invoicing apps
- Billit as the accounting source of truth — the platform Belgian accountants and finance teams actually use, with its own invoice numbering sequence, client database, and Peppol e-invoicing support
- Wholesale customers across multiple countries — each with their own language, currency, and legal invoicing requirements
No off-the-shelf Shopify app covered this combination. A custom integration was the only viable path.
The problem
The client runs a B2B Shopify Plus store serving resellers and wholesale buyers across Belgium and neighbouring markets. Every paid order triggered a manual process: open Billit, look up or create the customer, enter each order line, apply the correct VAT rate, and send the invoice PDF.
With 30–50 B2B orders per week, this added up to 6+ hours of repetitive admin work — and the manual steps meant billing errors slipped through regularly (wrong VAT number, mismatched amounts, duplicate invoices).
The finance team needed invoices to go out the same day as the order. Reality: they were batching them weekly.
The automation
The solution is a Make.com scenario triggered by a Shopify orders/paid webhook. It runs in under 10 seconds per order and requires zero human input.

Step 1 — Shopify webhook trigger
The scenario fires on every orders/paid event from Shopify Plus. Only B2B orders (tagged wholesale or with a company assigned) are processed; retail orders are filtered out at this step.
Step 2 — Customer lookup or creation in Billit
Make queries the Billit API for the customer’s VAT number (pulled from the Shopify order’s company object). If the customer exists, their Billit ID is reused. If not, a new contact is created on the fly with name, address, VAT, and language preference.
Step 3 — Order line transformation
Shopify’s order lines are mapped to Billit’s invoice line format:
- Product name + SKU → description
- Unit price excl. VAT → unit price
- VAT rate per line (21%, 6%, or 0% for EU intracommunautaire) → Billit tax code
- Quantity and discount → passed through directly
Step 4 — Invoice creation and PDF delivery
Billit creates the invoice, assigns the next invoice number from the sequence, and returns the PDF URL. Make then:
- Marks the Shopify order with an
invoicedtag - Sends the PDF to the buyer’s email via the Billit send API
- Posts a Slack notification to the finance channel with the invoice number and amount

Results
| Metric | Before | After |
|---|---|---|
| Invoice creation time | ~8 min/order | 0 min (automatic) |
| Weekly admin hours | 6+ h | 0 h |
| Billing errors | Recurring | 0 since go-live |
| Invoice delivery delay | Up to 7 days | Same day as payment |
Why Make.com over a custom integration
A custom-coded webhook handler would work — but Make.com’s visual editor means the finance team can read, understand, and adjust the flow themselves. When Billit updated their API for e-invoicing (Peppol), the scenario needed one new module, not a code deployment. The right tool for the complexity level.