Skip to content
Implementa.

Solution · By integration

Every WooCommerce order should come out of Holded as an invoice. Today it comes out of someone typing.

The order lands in the store and someone has to turn it into an invoice, adjust stock, create the contact and apply the right tax. We build the AI layer between the WooCommerce API and the Holded API that runs that whole trip — including the cases no connector covers.

The problem

Selling more shouldn't mean typing more.

  • Every order ends up copied into Holded by hand, or by a connector that only covers the happy path: one product, one shipment, one country, one tax rate.
  • Stock lives in two places. WooCommerce decrements on sale and Holded on invoice or delivery note, and two weeks later they disagree: you end up selling what you no longer have.
  • Tax depends on destination and customer type — domestic, cross-border business with a valid registration number, export, one-stop-shop for EU consumers — and that rule isn't in the order: it's in one person's head.
  • Refunds and partial shipments have no connector: each one becomes a manual credit note with its own series and date, almost always late.
  • The customer who buys three times a month ends up as three separate contacts in Holded because each order arrived with the email typed differently.

Cost of staying the same

The cost never shows on an invoice: it shows as stock that doesn't add up, tax treatment decided on the fly, credit notes issued weeks late, and a monthly close that depends on one specific person not falling ill. And it gets worse with time, not better: as structured e-invoicing requirements spread across markets, an order-to-invoice flow that depends on someone typing is exactly the one that ages worst when every invoice has to come out of a system that keeps a record and a trail.

The solution

An AI layer between the WooCommerce API and the Holded API that turns orders into accounting and into stock

  1. 1We start from what you already have. If you run a WooCommerce–Holded connector, we don't rip it out: we leave it covering the simple order and build on top what it doesn't cover, which is exactly where the hours go.
  2. 2We listen to WooCommerce events over webhook —order created, paid, completed, refunded or partially refunded— and translate each into the right document in Holded through its API: quote, order, delivery note, invoice or credit note.
  3. 3We settle tax with explicit, auditable rules rather than a loose prompt: destination country, customer type, validation of the cross-border registration number, treatment of shipping and of coupons. The rule ends up written into the document itself, so it can be reviewed.
  4. 4We unify customers and stock. We de-duplicate contacts by tax ID, email and phone instead of creating a new one per order, and we sync stock in a single direction —the one you choose— with reservations, thresholds and an alert the moment a mismatch appears.
  5. 5We close the odd cases, which are the ones that eat the month: a partial shipment that only invoices what shipped, a refund with its credit note, a product swap, an order with a coupon or gift card, and shipping charges carrying a different rate from the item.
  6. 6We leave it measured and with a net: what share of orders reaches an invoice untouched, how many units drift between store and warehouse, which cases escalate to a person and what context they arrive with.

What changes

What you stop losing

  • The order stops needing a keyboard: it arrives over webhook and leaves as the right document in Holded, with its contact, its series and its tax treatment.

    Mechanism

  • Tax stops depending on someone remembering the rule: it's settled by destination, customer type and validation of the registration number, and it's written into the document where it can be reviewed.

    Mechanism

  • Stock drift stops being discovered when a customer buys something that's out: it's detected and flagged the day it appears, not at the quarterly count.

    Mechanism

  • What we measure: % of orders invoiced untouched, accuracy on contact and tax treatment, units of drift between store and warehouse, and days to close the month.

    What we measure

Spec sheet

Work it removes
turning every store order into a Holded invoice by hand: creating the contact, picking the tax treatment, adjusting stock and issuing the credit note when something comes back
Typical setup
2–4 weeks
Input
a WooCommerce event: an order created, paid, completed, refunded or partially refunded
Output
the right document created in Holded —invoice, credit note, delivery note or order— with its de-duplicated contact, its series, its tax treatment and stock adjusted
Works with
WooCommerce (REST API + webhooks)Holded (API v2)WordPressPasarelas de pago conectadas a WooCommerce
Can connect to
Tu conector WooCommerce–Holded, si ya lo tienes activoTu almacén o tu ERP de existencias, si el stock no vive solo en HoldedTus series de facturación, tipos de IVA y reglas de operaciones intracomunitarias
What we measure
% of orders that reach an invoice untouchedaccuracy on contact and tax treatmentunits of stock drift between store and warehousedays to close the month
Good fit for
WooCommerce stores with enough volume that invoicing by hand hurts, keeping their books and catalogue in Holded
Not a fit for
anyone shipping four orders a month —a standard connector is plenty there— or anyone who needs someone to decide the tax treatment: that's your advisor's call, not an integration's

Frequently asked questions

For the simple order, yes, which is why we leave it alone: one product, one shipment, one domestic customer, one rate. Where the road ends is everything that takes judgment: a partial shipment that should only invoice what shipped, a refund that needs a credit note with the right series and date, a cross-border business customer whose registration number has to be validated before you decide the tax, an order with a coupon where the taxable base is no longer the list price, or the same customer entering as three contacts because they typed their email three ways. That isn't 5% of your orders: it's 100% of the manual work you have left.

It's settled by explicit rules before anything is issued, not by what the model reckons. The system looks at the destination country, whether the buyer is a business or a consumer, and —when it's a business in another EU country— validates its cross-border registration number against the official register before applying any exemption. For consumer sales inside the EU it applies the destination rate according to your one-stop-shop setup. All of it is written and reviewable in the document itself: which rule applied and why. What we don't do is decide your tax position: we pin the rules down with you and your advisor before touching anything.

That's why it starts with a net. Documents that touch the books start in proposal mode: the system leaves them ready in Holded and a person approves them, until accuracy is high and you release autonomy by order type —simple domestic first, cross-border next, partial refunds last. Anything doubtful always escalates to a person, with the order summarized and a direct link into WooCommerce. And everything is logged: which document was created, under which rule, from which event. No trace, no autonomy.

Want it running in your business?

You’ve pinned the problem. We ship the fix and leave it measured.

See the service
Every WooCommerce order should come out of Holded as an invoice. Today it comes out of someone typing. · Implementa