Back to Help Center

Integrations

Shopify sync, your accounting system, and connection methods.

Can Shopify's warehouse fulfil an order I recorded in QUOMODA?

Yes. Record and confirm the order here and allocate its stock as usual. Then, on the order, open More → Send to Shopify. QUOMODA shows what it will send: one Shopify order per stock location and delivery door, with the units allocated there that are not already shipped, on a pick or with Shopify, at your wholesale prices and with the customer's VAT. Send it, and the warehouse picks, packs and ships it in Shopify like any other order.

  1. 1Stock: allocated units are reserved in Shopify as always. Once sent, the Shopify order holds them itself, so QUOMODA releases its reservation and nothing is held twice. The units stay allocated to the order here.
  2. 2Shipping: when Shopify ships, the shipment arrives here by itself, with carrier and tracking. The order becomes shipped or partly shipped and your team is notified. QUOMODA does not take the stock off a second time; Shopify's count comes through the stock sync.
  3. 3Paperwork: delivery note, packing list and invoice are made here from what shipped, exactly as for a shipment of your own.
  4. 4Not your web shop: these orders are tagged *quomoda* in Shopify and never counted as web-shop sales in your dashboard or demand planning. Shopify sends the buyer no email, and payment shows as pending because you invoice from QUOMODA.

The order panel lists each Shopify order it became, with a link to it in Shopify. Check reads it back from Shopify if a shipment has not arrived yet. Cancel cancels and restocks it in Shopify while nothing has shipped, and the units return to reserved. An order cancelled in Shopify does the same by itself. In Fulfilment, units with Shopify show as *With Shopify* and cannot be picked here.

The Shopify app needs four permissions for this: write_orders, read_fulfillments, read_merchant_managed_fulfillment_orders and write_merchant_managed_fulfillment_orders, and access to orders, which Shopify counts as customer data: a custom app on your own store gets it automatically from an install made after those scopes were released. The Shopify card on Integrations lists anything missing, and Send to Shopify stays blocked until it is there. Orders must be in the store's own currency.
What integrations are available?

QUOMODA has a native Shopify integration for syncing products, variants, prices, images, and inventory, a Resourced (PLM) catalogue import, Fortnox and Xero for accounting, and UPS for shipping labels and rates. More integrations are being developed.

Does a description keep its formatting between Shopify and QUOMODA?

Yes, both ways. A description imported from Shopify — by a sync or by the store's own update notification — is kept as the store's HTML: paragraphs, bold, lists. The product page edits it as rich text. Pushing it back sends that HTML unchanged, and a plain-text description (from a CSV, Resourced or an AI suggestion) has its blank lines turned into paragraphs so it does not arrive as one block. Earlier the store's update notification flattened descriptions to plain text on the way in — four seconds after every push, since Shopify notifies about the change the push just made — and the next push sent the flattened text back to the store. If a store has descriptions that lost their paragraphs that way, select the products and use Sync with only Description ticked to send the formatted ones again.

How do I get FedEx or DHL?

Ask for it. Under Shipping on the Integrations page, FedEx and DHL Express show Request integration rather than a credentials form. Press it, add anything useful — your account number, the services you ship with, roughly how many parcels a month — and send.

The QUOMODA team is emailed and notified straight away, and comes back to you to set it up with your account. The card then reads *Requested on* the date you asked.

One request per brand: if a colleague has already asked, the card shows their request and pressing again files nothing twice. UPS stays a direct connection — enter your own credentials as before.
What are "duplicate SKUs" and how do I fix them?

A duplicate means one product holds two records for the same SKU that describe the SAME article — same size, same colourway, same name — usually after a product was deleted and re-imported in Shopify, so its stock is split and totals disagree. The sync now re-links re-imported variants instead of creating duplicates, and if any exist you'll see an amber "duplicate SKUs" card on the Integrations page. Open Review & merge, pick which record to keep per SKU (the Shopify-linked one is pre-selected), and the other's stock, orders and history fold into it — Shopify is re-synced automatically.

One SKU is used by two different articles — why can't I merge them?

Because they are not duplicates. If two records share a SKU but differ in size, colourway or name — the same skirt in wool and in cupro, say, or one code covering XS, S and M — then both articles are real, separately stocked, and separately sold. Merging would delete one of them for good. QUOMODA lists these under "used by more than one article" on the Integrations page and deliberately gives them no merge button. Nothing is broken in QUOMODA, but a code that means two garments will confuse a warehouse and any barcode scan, so it is worth giving them distinct SKUs in your store.

How do I connect Shopify?
  1. 1In Shopify, create a custom app: Settings → Apps → Develop apps → Build apps.
  2. 2On the app's API access page, grant these Admin API scopes — products: read_products, write_products; stock: read_inventory, write_inventory, read_locations; orders: read_orders, write_orders; fulfilment: read_fulfillments, read_merchant_managed_fulfillment_orders, write_merchant_managed_fulfillment_orders; markets: read_markets, write_products. Then Release (not Save).
  3. 3Install the app on your store. Orders count as customer data in Shopify; a custom app on your own store gets that access automatically with this install, so there is nothing to request.
  4. 4Copy the app's Client ID and Client secret.
  5. 5In QUOMODA go to Integrations → Connect Shopify and paste them in.
  6. 6Run your first full sync from the integration card. This imports your catalogue, maps your variants and locations, and switches on the live webhooks.
  7. 7Open ⋯ → Markets & prices and choose which price list is your store's own prices (required), and which prices each Shopify market. Until the store prices are mapped, the sync holds prices: products and stock still come in.
Run that first full sync before expecting live updates: changes you make in Shopify only flow back into QUOMODA once the first sync has mapped your products and registered the webhooks.
If the Shopify card says Shopify won't let the app see orders: orders count as customer data, which a custom app only gets from an install made after the order scopes were released. Install the app on the store again from the Dev Dashboard, then use ⋯ → Register webhooks. On a development store created in a Partner account, the access is set in the Partner Dashboard under the app's API access requests.
Leave out read_all_orders. Shopify only accepts it once it has approved the app for it; adding it earlier makes Release fail with *Contains invalid scopes: read_all_orders*. Without it, sales history reaches back 60 days.
Already connected? Add any scopes you are missing to the same app, Release, and approve the update on your store. The Shopify card on the Integrations page lists the fulfilment permissions it still lacks; nothing needs reconnecting.
The exact steps and scopes are shown right inside the connect dialog. Brands already connected via the older OAuth or access-token method keep working.

The custom app is the only way to connect a new store for now. A one-click QUOMODA app on the Shopify App Store is waiting for Shopify's approval; until it is listed, there is nothing to install from the App Store.

Can I choose what syncs with Shopify?

Yes. Click the Shopify card on Integrations to open its panel: the connection, every data flow in both directions, the catalogue mapping, markets & prices and the latest activity, all in one place.

Under Data flows each flow has its own switch. Shopify → QUOMODA: product changes, stock levels, web-shop and POS sales, shipments of orders sent to Shopify, and prices. QUOMODA → Shopify: stock levels, wholesale reservations, and price switches by retail date. Pushing products, sending orders for fulfilment and pushing market prices stay on request.

A switch applies at once, to everything: live webhooks, background jobs and automatic pushes all check it. Everything is on until you turn it off. A flow marked Not registered is on but has no live webhook in Shopify yet; Register webhooks in the panel fixes that.
Where do I see everything about one integration?

Click its card on Integrations (or Open settings on it). Every connected integration opens the same wide panel: who it is connected to and its state, what needs doing, every data flow in each direction with when it runs, the settings that shape it, and the latest activity.

Shopify: a switch per flow, in both directions, plus catalogue mapping and markets & prices.

Resourced: live article changes (with a switch to pause them) and the catalogue import; What Resourced may write shows which fields a sync or a live change may overwrite. Nothing ever goes from QUOMODA to Resourced.

UPS, FedEx, DHL: rates, labels and label cancelling (all from a shipment) and tracking coming back, with a Use this account switch and the account's recent shipments.

Revolut Business: incoming payments every 30 minutes, the switch that records exact matches on invoices, and the payments still waiting for you. QUOMODA can never pay or move money.

Currency rates: your saved rates next to today's European Central Bank rates, and Take today's rates to use them. Nothing changes on a schedule.

Fortnox and Xero: what can be posted (on request, from the document), what blocks posting, the mapping and what was posted. Nothing comes back from the ledger.

A flow with a switch is enforced on our side, including for background jobs. A flow without one says when it runs, and is never pretended to be switchable.
Can I stop Resourced from overwriting what I changed in QUOMODA?

Yes, two ways, both in the Resourced panel on Integrations.

Choose fields under *What Resourced may write*: untick what you maintain in QUOMODA (prices, descriptions, images…). Save choice stores it without importing anything. It governs every sync and every live change from the webhook; an unticked field is never written, and never blanked.

Live article changes under *Data flows*: switch it off and changes Resourced sends are acknowledged and ignored. The Sync button still works when you want it.

Until 1 October 2026 a live change from the Resourced webhook wrote every field, whatever had been picked for Sync. It now writes only the fields saved in the panel. If you had narrowed the fields before, open Choose fields once and press Save choice so live changes follow it too.

A value you lock on a product is never overwritten by either, whatever the field choice.

How do I choose which Resourced or Shopify field becomes Category, Subcategory and Product type?

In the integration's field mapping window, opened from the integration panel. For each of QUOMODA's three levels you pick the source: Resourced's hierarchy level 1, 2 or 3, or Shopify's *Type* or its standard category — or leave the level empty.

The window reads your own catalogue as it opens, so you choose with your values in front of you: under each level it lists what the chosen source holds and how many styles use each value, and a table shows real styles filed exactly as the next sync would file them. Change a level and the table follows.

A level whose source is empty for every style is flagged in amber — for example, Resourced brands that only use two hierarchy levels would otherwise get a blank Product type on every style. Two levels reading the same source are flagged too. Names shown in violet are moved by your product hierarchy (Settings → Products), which the sync applies after the mapping.

Nothing changes until you Save mapping, and then only on the next sync.

Where do prices from Resourced go?

Into the price list of the season they belong to. Resourced prices an article per season — a wholesale and a retail price, each in a currency — and every season's figures go into that season's price list in the same currency. That is the list the price calendar uses for the season: B2B orders during its order window, retail and Shopify by the list's retail dates. Nothing is converted between currencies.

A season with no list in that currency keeps its prices waiting instead of putting them somewhere they would be wrong. The article's current season also fills blanks in your season-less default list, which screens fall back to when a season has no list of its own.

A price changed in QUOMODA is never overwritten. QUOMODA remembers the last figure Resourced sent for each price: while the price still equals it, a new Resourced figure replaces it; once you change it, it is yours. A price you lock is never written either.

  1. 1Open Integrations → Resourced and click Preview on *Sell prices*. It reads Resourced and shows, per season, what would be added, updated, is already the same, is kept because you changed it, and what is waiting for a list. Nothing is written.
  2. 2For a season that is waiting, Create its list in one click, then set the list's retail dates in the price calendar.
  3. 3Prices are written by Sync now with *Wholesale & retail* ticked, or by a live change from Resourced.
Where do I manage the Shopify connection — in QUOMODA or in Shopify?

In QUOMODA, on the Integrations page. The Shopify card shows the connection status, the last sync, which live webhooks are registered and any missing permissions, with buttons to sync now, re-register webhooks, edit the connection or disconnect.

Stores connected through the older QUOMODA Shopify app also get the same card under Apps in the Shopify admin. Both act on one record, so they cannot disagree.

Disconnecting does not delete anything. The link between your Shopify products and your QUOMODA articles is kept, so reconnecting picks up where it left off instead of importing everything a second time.
What data syncs with Shopify?

Products, variants, images, prices, and inventory levels sync between QUOMODA and Shopify. Wholesale orders stay in QUOMODA. With the read_orders scope, your consumer sales — e-commerce and retail/POS — also flow in as sell-out, split per channel and store, to power demand planning's velocity and reorder suggestions.

Live demo · loops
Q
QUOMODA
Products
Shopify
Shopify
Allocated wholesale stock shows as reserved in Shopify
Products, variants, images, prices and stock stay aligned both ways. Stock you allocate to wholesale orders is mirrored as reserved in Shopify, so your webshop can't oversell it.
Prices travel per size, through the mapping in ⋯ → Markets & prices. Sync to Shopify sends each size its own price: the size's, else its colourway's, else the product's, from the price list mapped to your store's prices. Coming back, the product keeps the price most sizes share and a size Shopify prices differently gets its own row. Only retail prices (or the mapped regional RRP) move between the two; wholesale prices stay as you set them in QUOMODA, and a price you have locked is never overwritten. Nothing is filed by currency: an unmapped market or currency is not read.
How do Shopify markets and my price lists fit together?

On the Shopify card open ⋯ → Markets & prices. It lists your store prices (each product's own price in Shopify) and every Shopify market with its currency. Each one takes one or more QUOMODA price lists in its currency: a list's RRP, or a regional RRP for a QUOMODA market in that currency.

  1. 1Map the store prices first: it is required. Until it is set, a Shopify sync holds prices (products and stock still sync), and the card says so.
  2. 2Map the markets you want QUOMODA to price. Leave the others empty: Shopify keeps converting them.
  3. 3Press Push on a row (store prices: Push to every product), or Push all markets.

Prices go both ways. A sync reads Shopify's store prices and each mapped market's fixed prices into their lists; Push and a product's Sync to Shopify send QUOMODA's back, per size (the size's price, else its colourway's, else the product's). Only prices that changed are sent.

Seasons of retail prices. Give each price list retail dates (Pricing → edit the list) and put several lists on one row, for example the SS27 list from 1 February and the AW27 list from 1 August. The list whose dates include today is used; when the dates roll over, QUOMODA switches Shopify to the next list by itself within the hour. The first push of a row is always yours.
Only a price in the row's own currency can be linked: QUOMODA never converts. If a market already has fixed prices in Shopify, a push replaces them for every variant QUOMODA prices; the others keep theirs. A market without a price list gets one on the first push, at 0% so unpriced products keep Shopify's conversion.
The Shopify app needs read_markets to see your markets and write_products to write prices. If Shopify still refuses with a message about editing catalogs, add write_markets too. The window says which permission is missing.
How do I get my Shopify sales into demand planning?

Demand planning's velocity, weeks-of-cover and reorder suggestions run on your own-channel sell-out — e-commerce and retail/POS sales (wholesale bookings don't trigger reorders). To feed them, your Shopify custom app needs the read_orders scope, installed on the store after it was released. From then on, new sales arrive automatically via webhooks — no reconnect needed.

To load past sales as well, open the Shopify card's ⋯ menu → Import sales history. It backfills recent e-commerce and POS orders into demand planning so velocity is meaningful from day one, and it's safe to re-run. Shopify shares the last 60 days of orders; older ones need the read_all_orders scope, which Shopify has to approve for the app before it can be added.

If Import sales history says Shopify denied access, add the read_orders scope to your custom app, release it, install the app on the store again, then try again.
My products vary by fabric, not colour — Shopify imports them as duplicates

QUOMODA works out which of your Shopify options separates one article from another by looking for one called Colour. If your styles vary by something else — fabric, material, finish, wash — no option matches, and every variant arrives with that field empty. Three sizes in two fabrics then land as three articles that cannot be told apart, which is what looks like a duplicate.

Tell it which option to use: on the Shopify card choose ⋯ → Variant axis. It reads the option names straight out of your store and shows a few real values under each, so you can point at the right one rather than guess.

  1. 1Pick the option that separates your articles — Fabric, say — as the colourway axis.
  2. 2Confirm the size axis, if it is called something other than Size.
  3. 3Set what you want the field to be called in QUOMODA. It follows through to the products table, order forms, linesheets and printed documents.
  4. 4Run a sync. Products already imported are filled in as well — nothing has to be re-created.
Nothing is lost while the axis is unset. Both variants were imported all along, each with its own SKU and stock — only the label that told them apart was missing. Setting the axis and syncing fills it in.
My trousers are sold by waist and length — how do their sizes come in from Shopify?

As pairs. A Shopify product with a Waist and a Length option (or W / L, Inseam, Leg) gets sizes like 28/32, and one with only a waist, such as shorts, gets the waist on its own. Before, those products arrived with no size at all, so every row showed an empty size box.

A sync also adds the size systems your store uses and you do not have yet, in Settings → Size systems: letters (S–3XL), plain numbers, a waist on its own, and a two-dimensional Waist × Length system with both axes kept. It only ever adds; a system you already have, or one that covers the same sizes, is left as it is.

On the product page, under Sizes & stock → SKUs, waist/length sizes are grouped by length (or by waist, if there are fewer waists), sorted, and each group shows how many sizes it holds and their stock. Waist and length are edited separately. + Add size opens on the system that fits the article and shows a waist × length grid: tap a cell to add one size, or a waist or length heading to add the whole row or column.

You can make a two-dimensional system yourself: in Settings → Size systems, edit a system and choose Two dimensions (waist × length), then list the values of each axis. Linesheets, order forms and stock still see one size per SKU, written 28/32.
My shirts come in a slim and a regular fit — how are those sizes handled?

As one size with two halves, the way trousers have waist and length. A Shopify product with a Size option and a Fit option gets sizes like M/Slim and M/Regular — before, both came in as plain "M", two SKUs nobody could tell apart. A fit written with a bar, such as "Slim | Long", comes in as Slim Long.

A sync adds a Size × Fit system for it in Settings → Size systems, with the fits in the order your store lists them. On the product page the SKUs are grouped by fit, and each SKU's size and fit are picked from that system.

Each SKU keeps its own SKU code, barcode and stock — only the size label changes. Pushing the variant list back to Shopify is blocked for these products (it would merge Size and Fit into one option there); SKUs, barcodes and prices still push.
How do buyers order a waist × length or size × fit run on a linesheet?

In a grid. On the card and on the product page, a two-axis run is laid out with one axis across the top (waist, or size) and the other down the side (length, or fit), with a quantity box in every combination you make. A combination you do not make shows as an empty cell, not a missing column, and the product page totals each row.

When the linesheet sells from stock, the product page shows what is left under each box and the card says how many sizes are in stock. The PDF prints the run by its axes — "Waist 28–36 × Length 30–34" — rather than listing every pair.

Orders work the same way on your side: on an order, when you build one from a linesheet, and when you add products by hand, a two-axis article takes one row per length (or fit) with the waists (or sizes) across — each row tagged "Length 32" or "Fit Slim". The linesheet editor previews the card as buyers will see it.

Does Shopify sync both ways, in real time?

Yes. QUOMODA pushes product, price and stock changes to Shopify as you make them, and Shopify pushes product and inventory changes back via webhooks — so both stay in step automatically, without a manual sync each time.

The live, two-way sync only switches on after your first full sync. That first sync imports your catalogue, maps each variant and location to its Shopify counterpart, and registers the webhooks — Shopify can only push a change back once that mapping exists. If a Shopify change isn't showing up, run a full sync (or Sync → Inventory only for stock) once to catch up and turn the live link on.
Do I need to create webhooks myself?

It depends on the integration, so the answer is different for each one:

Shopify — no, we create them. The live link runs on webhooks, and we register them for you on your first full sync. Connecting alone does not create them. They cover products (create / update / delete), inventory levels, and orders (which feed sales velocity in demand planning).

Resourced — yes, you create it. The webhook lives in Resourced and only you can add it. Connecting gets you the Sync button; without the webhook, Resourced changes arrive only when you press Sync. On the Resourced card choose ⋯ → Real-time webhook (or Set up webhook in its panel) to get the URL, username and key, then paste them into Resourced under Settings → Webhooks → Add webhook (Method POST, with *Include resource* and *Enabled* on). Live changes can be paused from the panel at any time.

Neither is compulsory. Both integrations work with the Sync button alone — the webhook just means you stop having to press it. The integration card always shows which live webhooks exist, so you never have to guess.
Shopify card still says "No live webhooks" after a sync? That is almost always a missing scope. Re-check the scopes on your custom app, click Release again, then use ⋯ → Register webhooks to retry.
Can QUOMODA send my invoices to my accounting system?

Yes — QUOMODA connects to Fortnox and Xero, so your accountant stops re-keying invoices by hand. There is no single accounting system across Europe, so the connector is built to take more of them: each one is a separate connection you authorise from Integrations → Accounting.

A connection belongs to a brand, not to your workspace. An agency running six brands connects six ledgers, one per brand, and they never see each other's documents.

The connection is one direction only: QUOMODA → your ledger. Nothing is ever read back. If your accountant approves an invoice, marks it paid or reconciles it in Fortnox or Xero, QUOMODA does not change — the two systems are not kept in step, and that is deliberate.
What exactly is sent to my accounting system — and what never is?

Only what an accountant needs. The ledger gets your books, not your catalogue.

  1. 1Customers — the wholesale accounts your invoices point at.
  2. 2Invoices you have issued (sent, part-paid or paid). Drafts and cancelled documents stay put.
  3. 3Credit notes, linked to the invoice they credit.
  4. 4Payments you record in QUOMODA, against those invoices.
  5. 5Proformas — only if you switch them on, and never as a booked document.

Never sent: products, variants, stock, locations, allocations, linesheets, selections, and any order that has not been invoiced. Pushing your articles into an accounting system would give you a second product master that immediately starts drifting from the real one.

Purchase orders are not pushed yet. The toggle exists but the purchase side of the mapping is not finished, so leave it off — turning it on only fills your run history with blocked items.
Why won't it let me sync yet?

Because nothing about tax or bookkeeping may be guessed. A new connection sits at Not mapped and refuses to run until you have filled in and confirmed the mapping — that is the whole point of the step, not a formality.

  1. 1Tax codes — for every VAT rate you actually invoice at, pick the code your ledger uses. Xero publishes its own list and QUOMODA reads it live; Fortnox publishes none, so you type the code your accountant uses.
  2. 2Chart of accounts — which revenue account, which receivables account, and (if you post approved invoices) which bank account payments land in.
  3. 3Confirm — each row records who confirmed it and when. Editing any row un-confirms the connection and you re-confirm before the next run.
  4. 4Dry run — builds every document and resolves every code without writing a single thing to your ledger. Do this before the first real sync.
Map one tax code per VAT rate you use. QUOMODA matches a document to a code by its VAT rate, so if two confirmed codes share the same rate the document is blocked rather than guessed at — and if you are unsure which treatment applies to a customer, ask your accountant before confirming. A wrong code here is a wrong VAT return.
Mappings can rot — a tax code your accountant archives can never be used on a transaction again. QUOMODA re-checks every mapping it can read back from the ledger before each run and names the broken one, instead of failing halfway through. Fortnox publishes no list of VAT codes, so those it cannot re-check for you.
Why can't QUOMODA update an invoice that's already in my ledger?

Because accounting systems do not let a booked invoice be edited, and neither will we. Before every update QUOMODA reads the document back and checks its state:

  1. 1Not booked yet — the change is pushed normally.
  2. 2Already booked, approved or in a closed period — the document is blocked, with a sentence naming the ledger's own number so you can find it.
  3. 3Part-paid or paid — amounts, quantities and tax are frozen. QUOMODA will still push the harmless header fields (reference, due date, number, link back), but if the total no longer matches it blocks instead.
  4. 4Voided or deleted in the ledger — the link is closed and QUOMODA never writes to that document again.
The fix for a booked invoice that is wrong is a credit note, not an edit. QUOMODA will never issue one on your behalf — a credit note is a financial act, so you raise it here and the next sync carries it across.

Credit notes work differently per system. Xero takes a standalone credit note, which you then apply to the invoice yourself in Xero. Fortnox models a credit as an operation on the invoice it credits, so it must be linked to that invoice and must credit it in full — a partial credit cannot be sent to Fortnox.

Is it safe to press Sync twice?

Yes. Every document QUOMODA has pushed is recorded against the remote document it became, and that record is consulted before anything is sent — so a second run updates or skips, it never creates a second invoice. A document QUOMODA has not changed since the last run is reported as Unchanged and costs no call at all.

If a run is interrupted halfway, the next one looks your documents up in the ledger by the reference QUOMODA stamped on them before creating a duplicate.

Payments get the strictest rule: if the ledger already shows a payment of the same amount on the same date against that invoice, QUOMODA refuses to add another and asks you to confirm. Missing a payment is easy to fix; crediting a customer twice is not.
Draft or approved — which should I choose?

Draft is the safe default and what a first connection should use: documents arrive unbooked, they create no journals and appear in no report, and your accountant approves them in their own system. Approved posts them straight to the ledger.

Payments only sync when posting is set to Approved. A payment cannot be recorded against a document nobody has booked yet, so in draft mode QUOMODA skips them and says so in the run.

Proformas are always pushed unbooked, whatever this setting says — a proforma is not a tax document and must never create a receivable. They are off by default; if you switch them on, be aware that anyone can approve one inside the accounting system afterwards and turn it into a real invoice.

Which invoice number shows up in my ledger?

Whichever you choose — and both numbers are always stored and shown together. You can push QUOMODA's number, or let the ledger assign its own (Fortnox always assigns its own; Xero lets you pick).

The run history shows the pair for every document, because without it reconciling your QUOMODA invoice list against your accountant's is guesswork.

What happens with invoices in other currencies?

QUOMODA sends the document currency and the document amounts, and lets your accounting system apply its own exchange rate. It never sends, computes or invents a rate — an inverted FX rate misstates revenue, and your ledger already knows the rate it wants to book at.

Your accounting system can only accept a currency it has been set up for. If you invoice in a currency your ledger does not have enabled, add it there first — the mapping screen shows your invoice currencies against the ones your ledger accepts.
A document says "blocked" — what does that mean?

Every press of Post is recorded against that document, with the accounting system's own words kept verbatim. The vocabulary matters:

  1. 1Created / Updated — it reached the ledger.
  2. 2Unchanged — nothing has changed since it was last posted, so nothing was sent.
  3. 3Blocked — QUOMODA stopped on purpose and you need to act: a mapping is missing, the remote document is booked, or the customer or supplier has no VAT treatment set. It is not an error and it is never a silent skip.
  4. 4Rejected — the ledger refused the document. The reason is shown exactly as it came back, and pressing Post again will not help until the underlying data is corrected.
  5. 5Skipped — the document cannot be posted as it stands: a draft, or one that has been cancelled.
Posting is one document at a time, by a person — there is no batch and no schedule, so a document that fails affects nothing else. Its history stays on the document itself, which is where you look to see whether it reached the ledger.
What happens if I disconnect?

The tokens are deleted and QUOMODA stops pushing immediately — but the record of what already reached your ledger is kept. That record is what stops a later reconnect from re-creating every invoice you already have in your books, so it is never deleted.

If you only want to stop temporarily, use Pause instead: it keeps the connection, the mapping and the record intact.

Disconnecting in QUOMODA does not always remove QUOMODA at the other end. For Xero we revoke the connection; Fortnox publishes no way for us to do that, so remove the QUOMODA integration inside Fortnox as well.