One API. Every ERP.
A standardised resource model for the whole flow between ecommerce and ERP — stock, pricing, orders, customers and invoices. Build your own integration on a stable, versioned surface.
The same model, whatever the ERP.
The same model, whatever the ERP.
Fortnox, Business Central or something home-grown — the flows are the same. That is why the API is organised around what you are doing, not which system you run.
// Push stock balances from the ERP — batched & idempotent await hdl.erp.stock.sync([ { sku: 'IBK-096', qty: 142, warehouse: 'HBG-1' }, { sku: 'APP-221', qty: 64, warehouse: 'HBG-1' }, ], { idempotencyKey: run.id }); // Fetch new orders since the last run const { orders, cursor } = await hdl.erp.orders.list({ since });
# Sync stock balances curl -X POST https://api.hdlcommerce.com/v2/erp/stock:sync \ -H "Authorization: Bearer $HDL_TOKEN" \ -H "Idempotency-Key: $RUN_ID" \ -d '{"rows":[{"sku":"IBK-096","qty":142}]}' # Response { "accepted": 2, "conflicts": [] }
Boringly reliable. Exactly as it should be.
Built for integrators
One model for every ERP
The same resources whatever the system — which is why our ready-made connectors are quick to build.
Webhooks for every event
order.created, stock.updated, invoice.paid — react in real time instead of polling.
Batching & idempotency
Large runs without duplicates. Always safe to rerun.
Sandbox, logs & retries
Full visibility into every call, with automatic retries on failure.
Versioned for good
We never break your integration quietly. Versions live a long time and are retired with notice.
Field mapping in admin
Map fields, units and VAT codes in the interface — without touching the code.
Three steps to your own ERP integration.
Map
Fields, units and VAT codes — in the interface or through the API.
Sync
Push and pull at whatever rhythm suits your ERP, with webhooks for real time.
Monitor
Logs, alerts and retries in admin — full operational visibility from day one.
Build on a stable foundation.
Book a technical demo and we will walk the resource model against your particular ERP.