Skip to content

Conflicts & errors

Swann Retail never silently overwrites your data. When a record can’t be synced cleanly, it’s recorded as a conflict for you to look at: sometimes the record still comes across and you decide what to do with it, sometimes the change is held until you act. Review conflicts under Sync health — “Records Loyverse and Swann Retail disagree on.” Managing them is owner-only.

Each row shows the record it’s about (an item, a customer, an order, or the connection itself), the issue, its status, and the actions you can take. A short note under the issue spells out the exact difference. When there’s nothing to review, Sync health shows Everything’s in sync.

The note names the record (and its Loyverse ID, so you can find it there), says what happened, and tells you what to do about it. Most of the time that’s “nothing” — a record that didn’t come across because two changes landed at the same moment, or because Swann Retail was momentarily busy, is picked up by the next hourly sync on its own. The note says so explicitly when that’s the case, so you only have to act on the ones that say you do.

Occasionally a note ends with a reference — a short code like 4f2a9c1b07. That means something went wrong on our side rather than with your data, so there’s nothing for you to correct: quote the code to support and we can look up exactly what happened. The same failure always produces the same code.

Every conflict is Open until you act on it:

  • Resolve — you’ve handled it (reconciled it in Loyverse or Swann Retail, or it no longer applies). This drops it off the list.
  • Ignore — the difference is intentional; Swann Retail stops flagging it. You can still reconcile it manually later.

If you and someone else act on the same conflict at once, the list simply refreshes with the latest — nothing is double-applied.

Shown as Edited in both places. The same record was changed in both Loyverse and Swann Retail between syncs. Swann Retail doesn’t overwrite either side — both records are left exactly as they are, and nothing syncs for that record until you decide. Check it, and if your Swann Retail change was the one you wanted, re-save it to push it across. Then resolve the conflict.

A field that’s empty in Swann Retail isn’t a disagreement. If an item’s Material cost is blank in Swann Retail but Loyverse has a cost, the next sync fills in the Loyverse cost instead of flagging the item — the same as a blank SKU. One thing to know: on an item linked to Loyverse, clearing its Material cost in Swann Retail doesn’t stick, because the next sync fills it back in from Loyverse. To change the cost, enter the new one in either app.

Shown as A tax rate changed in Loyverse. A tax rate you’d already brought across had its percentage or name changed in Loyverse. Swann Retail doesn’t change the rate for you — you may have set it up deliberately on this side, and editing a live rate changes how tax is worked out on new sales — so it flags the difference instead of applying it silently. Open Settings → Tax rates, update the rate if you want it to match Loyverse, then resolve the conflict.

Shown as VAT pricing mode mismatch, against a Tax record. A Loyverse tax is set to include VAT in the price or add it on top, and that disagrees with your store’s VAT pricing mode. Prices imported under that tax are stored exactly as they came across, so they’d be read against the wrong VAT convention — the amounts could be off until you line the two up. Nothing is auto-converted, and a 0% tax never triggers this (include-vs-add moves no money at a 0% rate).

Fix it under Settings → Business → VAT pricing mode: set Prices include VAT if the Loyverse tax is “included”, or Prices exclude VAT if it’s “added”. That reinterprets the whole catalog at once — you don’t touch each price. (The conflict’s Change pricing mode button takes you straight there.) Then resolve the conflict.

Shown as Couldn’t be matched. A Loyverse item uses a feature Swann Retail doesn’t model yet. The item is still imported — but that one feature isn’t carried across.

Each note is written for the feature it’s about, so the wording varies. A barcode or SKU note says the item was “imported without” it; a modifiers note says they were “dropped”; a sold-by-weight note simply says Swann Retail stock is whole-unit; the photo note is the one that reads “was imported WITHOUT its photo”. Read what the note says about that feature rather than looking for one stock phrase.

The phrase that does mean something exact is the opposite one: a note reading “wasn’t brought across” is telling you the item is not in your catalogue, which is the next section rather than this one. Everything in this section is about an item that’s there and selling — so if you’re not sure which kind of note you’re looking at, search your catalogue for the item and see.

This happens with:

  • More than one tax on a single item. Only the first tax is kept as the item’s rate; any others are dropped.
  • A tax that couldn’t be matched. If an item points at a Loyverse tax that wasn’t brought across (for example, one that was deleted in Loyverse), the item still imports — it just falls back to your default tax handling. Set the right rate on it in Swann Retail.
  • Modifiers (add-ons or options)
  • Sold by weight
  • Fractional stock counts
  • A barcode that isn’t a standard product number. Loyverse allows free-form barcodes (letters, dashes); Swann Retail stores standard numeric barcodes (8, 12, 13, or 14 digits) only, so the item imports without its barcode. Give it a numeric barcode in Loyverse if you want it carried across.
  • A SKU with a character Swann Retail can’t store. Almost any SKU comes across exactly as-is — letters, numbers, spaces, slashes, and other symbols are all fine (up to 128 characters). Two bits of text are reserved internally: the # (hash) character, and any SKU that starts with BARCODE: (in any capitalisation). A SKU that contains a #, starts with BARCODE:, or is longer than 128 characters imports without its SKU. In Loyverse, remove the # or change the leading BARCODE: if you want it carried across. (An item with no SKU at all is fine and imports normally.)
  • A product photo that couldn’t be copied across. Loyverse keeps your product photos on its own servers, so Swann Retail copies each one into your own storage during import — that way they keep working after you leave Loyverse. If a photo can’t be fetched (a broken or removed image), the item imports without its photo; just re-add it in Swann Retail.

If you need that item represented exactly, simplify it in Loyverse; otherwise ignore the conflict — the item itself is there and selling.

The note reads “wasn’t brought across” rather than “was imported without” — and that difference is the whole point, because this item is not in your catalogue and won’t ring up. It’s rarer than the partial cases above, and it arrives under one of two issues depending on why:

  • Duplicate on import — Swann Retail wouldn’t accept the item because its SKU or its barcode is already used by another item. Two Loyverse items can share a SKU; in Swann Retail each one has to be unique, so the second one can’t be created. Usually the note names which of the two it is, so you change the right one; where it can’t tell them apart it says so and names both, rather than sending you to edit a field that was never wrong. Fix it in Loyverse and the next hourly sync brings the item across.
  • Couldn’t be matched — everything else. Usually there’s nothing for you to do: the item was being changed at the same moment, or Swann Retail was momentarily busy, and it’s retried on its own during the hourly catalogue sync. Check back after the next sync and resolve the conflict once the item is there — and if it’s still missing a few hours later, contact support (see the import-only note below, where that hourly retry doesn’t run). If Swann Retail refused the item for some other reason, the note quotes that reason; correct it in Loyverse the same way.

A component of a bundle that couldn’t be wired up

Section titled “A component of a bundle that couldn’t be wired up”

Shown as Couldn’t be matched, against an Item record. A Loyverse composite item — one built out of other items — was imported, but one or more of its components couldn’t be attached. The composite itself is there and sells; it just has a partial recipe. The note lists each component that’s missing and why, and the usual reason is simply that the component’s own item hasn’t come across from Loyverse yet — in which case the next hourly sync attaches it and the conflict clears. Check the composite in Swann Retail once the sync has caught up.

A tax rate that clashed with one you already have

Section titled “A tax rate that clashed with one you already have”

Shown as Duplicate on import, against a Tax record. A Loyverse tax rate has the same name as a rate already in Swann Retail, so it was skipped — nothing was changed and your existing rate is untouched.

It’s skipped rather than merged on purpose: two rates can share a name and charge different percentages, and quietly adopting the wrong one would ring every item under it at the wrong rate. Open Settings → Tax rates, and if the two are really the same rate, there’s nothing to do — resolve the conflict. If they’re different, rename one of them in Loyverse and import again so both come across.

Shown as Loyverse rejected the change. Loyverse refused a change you made in Swann Retail — usually a duplicate SKU or a value Loyverse won’t accept. The note underneath names the field Loyverse wouldn’t take — for example “Loyverse rejected the item name” or “Loyverse rejected the customer phone number”; fix that in Swann Retail and save again. Until you do, that one record stops syncing — the rest of your catalog keeps flowing — so it’s worth clearing promptly. (Temporary network hiccups retry on their own; this conflict only appears when Loyverse actively said no. If Loyverse didn’t say which field, the note just says it rejected the record — check the values you last changed.)

A sale rung in Swann Retail that didn’t reach Loyverse is not shown this way — nothing was sent, so nothing was rejected. Those rows have their own two headings, below.

Shown as Sale not sent to Loyverse, with Sale as the record. In two-way sync, a settled sale is sent to Loyverse as a receipt — but Swann Retail checks it first, and if Loyverse couldn’t record it properly it holds the sale back rather than send a receipt that’s wrong. The note names the sale and says why, for example:

  • its location isn’t linked to a Loyverse store — link the location to a store in your Loyverse connection settings;
  • it was paid with a payment type your Loyverse account doesn’t have — add a matching payment type in Loyverse;
  • one of its items isn’t linked to Loyverse yet — check that the item has synced to Loyverse;
  • more was collected than the sale total — check the sale’s payments;
  • or a reason only support can fix, such as a missing Deposit item for a sale paid in parts, a custom line with no description, or a sale number too long for Loyverse.

The sale itself is safe in Swann Retail — only the copy in Loyverse is missing. It won’t be sent on its own, so once you’ve fixed what the note asks for (if anything), contact support to send it, then Resolve the row.

Three kinds of row under this same heading are about a deposit and work differently — a deposit that’s simply waiting for its job to be paid off, a cancelled job whose deposit doesn’t match Loyverse, and a job where removing items meant refunding part of the deposit. They have their own sections next.

A deposit job goes to Loyverse when it’s paid off, with each deposit receipt dated the day that deposit was taken (see What syncs). So while the job is still being paid off, its deposit isn’t in Loyverse — that’s normal, not a fault. Once a day, Swann Retail lists any open job whose deposit has been waiting more than 7 days, so a long wait doesn’t go unnoticed. It appears under the same heading as the section above, and the note reads like this:

Sale #1042 has a 50.00 deposit that isn’t in Loyverse yet. It goes to Loyverse when the job is paid off, dated the day it was taken, so there’s nothing to do now.

or, when the job has had more than one deposit:

Sale #1042 has 120.00 in deposits that aren’t in Loyverse yet. They go to Loyverse when the job is paid off, each dated the day it was taken, so there’s nothing to do now.

There’s nothing to do. Don’t add the deposit to Loyverse by hand — it’s sent when the job is paid off, and a copy you added would count it twice. The row clears on its own once the job is paid off and sent. If you cancel the job instead, see the next section. A row that’s already telling you about a real problem with the same sale is never replaced by this one.

A cancelled job whose deposit doesn’t match Loyverse

Section titled “A cancelled job whose deposit doesn’t match Loyverse”

When you cancel a job that had a deposit, you either refund the deposit or keep some or all of it. Some of that deposit may already be in Loyverse, and Swann Retail can’t take it back out — it can’t change a Loyverse receipt. A cancelled sale isn’t sent to Loyverse either. So on the cancel it compares what’s in Loyverse with what you kept, and tells you only when the two differ:

  • They match — no row. Loyverse already shows exactly the money you kept, so your books are right. (If the job had a waiting-deposit row, it clears.)

  • Loyverse shows more than you kept. If you refunded the whole deposit, the note reads:

    Sale #1042 was cancelled after 50.00 of its deposit had already gone to Loyverse as order SW1042. Swann Retail can’t change a Loyverse receipt, so refund the deposit receipt in Loyverse.

    If you kept part of it, the note gives the exact difference and the step to take:

    Sale #1042 was cancelled after 80.00 of its deposit had gone to Loyverse as order SW1042. You kept 30.00, so Loyverse shows 50.00 more than you took. Swann Retail can’t change a Loyverse receipt, so refund the deposit receipt in Loyverse, then ring up the 30.00 you kept.

    (When the deposit went across as more than one receipt, the note says how many to refund — for example “refund its 2 deposit receipts in Loyverse”.) Search Loyverse for the order the note names to find the receipt.

  • You kept more than is in Loyverse. The note reads:

    Sale #1042 was cancelled and you kept 80.00 of its deposit. 50.00 of that isn’t in Loyverse, and Swann Retail doesn’t send a cancelled sale, so add it in Loyverse by hand if you need it there.

The cancel itself is done — the refund, the kept amount and the cancelled sale are all recorded in Swann Retail; only Loyverse is out of step. Make the correction the note asks for, then Resolve the row.

A job whose deposit was partly refunded after items were removed

Section titled “A job whose deposit was partly refunded after items were removed”

If you remove items from a job after its deposit was taken, and that takes the job below what the customer has already paid, Swann Retail refunds the difference and the job is complete. Swann Retail can’t send a refund to Loyverse, so it doesn’t send that sale — a receipt for the full deposit would overstate what you took. Instead it tells you under the same heading, and the note depends on whether any of the deposit is already in Loyverse.

  • Some of the deposit is already in Loyverse. The note reads:

    Sale #1042 wasn’t sent to Loyverse because items were removed after its deposit was taken and 20.00 of the deposit was refunded. 80.00 of the deposit is already in Loyverse as order SW1042, and Swann Retail can’t change a Loyverse receipt, so refund the deposit receipt in Loyverse, then ring up the 60.00 the sale now totals.

    Loyverse refunds by item quantity, so you can’t refund just part of the deposit receipt — refund all of it, then ring up the sale total the note gives. (When the deposit went across as more than one receipt, the note says how many to refund — for example “refund its 2 deposit receipts in Loyverse”.) Search Loyverse for the order the note names to find the receipt.

  • None of the deposit is in Loyverse. The note reads:

    Sale #1042 wasn’t sent to Loyverse because items were removed after its deposit was taken and 20.00 of the deposit was refunded, and Swann Retail can’t send a refund to Loyverse. None of it is in Loyverse, so add the 60.00 sale in Loyverse by hand if you need it there.

The removal and the refund are done — both are recorded in Swann Retail; only Loyverse is out of step. Support can’t send this sale for you either, so make the correction the note asks for, then Resolve the row.

Shown as Sale may be missing from Loyverse, with Sale as the record. Swann Retail started sending a sale to Loyverse but couldn’t confirm the receipt arrived — it couldn’t find the receipt, found more than one that could be it (or one whose total doesn’t match), or the sale is now too old to look up. The note gives the order it was sent as, the amount and when it was taken, so you can search Loyverse for it.

⚠️ This one is worth clearing promptly. Until it’s cleared, Loyverse till sales rung up close to that time are held back from Swann Retail so nothing is counted twice, and after about 30 days those held sales can’t be brought in at all. Check Loyverse for the order the note names, then contact support to clear the hold.

Shown as Deletions paused for safety. During an hourly check, an unusually large number of items looked deleted all at once. Rather than pass that many deletions straight through — far more likely a temporary glitch than a real bulk delete — Swann Retail stops the delete step for that run and flags it, so a hiccup can’t wipe out a catalog. If the deletions are genuine, they go through on their own once they hold steady across the next few hourly checks; if they weren’t, nothing was removed. Check whether you really deleted that many items, then resolve or ignore.

Shown as Payment total doesn’t add up. An imported sale’s payments don’t match its total — the amounts taken don’t add up to what the sale rang. Swann Retail brings the sale across but flags the gap rather than guessing where it went (an extra tip or surcharge, or an unexplained shortfall). Check the sale in Loyverse; if it’s right as it stands, ignore the conflict — otherwise correct it there and resolve. This one is about an imported Loyverse sale, so you’ll see it around a past-sales import and as everyday Loyverse sales come across.

Shown as Stock doesn’t match Loyverse, against an Inventory record. A stock count you set in Swann Retail was on its way to Loyverse when Loyverse reported a different count for the same item, so Swann Retail can’t tell which one is right. Nothing is changed on either side — recount the item and enter the correct count, then resolve.

Shown as Expected cash doesn’t match Loyverse, against a Connection record. A till shift imported from Loyverse came across, but the cash Swann Retail expects in the drawer for that day differs from Loyverse’s own figure. The imported day uses Swann Retail’s figure, so check that day’s cash count before trusting its over/short, then resolve.

Shown as Couldn’t be matched, against an Order record — the note underneath spells out that the receipt was too large to bring across. A Loyverse receipt with an unusually large number of line items is more than Swann Retail imports in a single sale, so rather than bring across a partial copy it holds the whole receipt and flags it here. This is rare — a normal sale is nowhere near the limit, so most stores never see it.

No sale is lost. The receipt still exists in Loyverse, and Swann Retail keeps the held sale tracked so it can’t be forgotten — it keeps trying to bring it across, and re-running the import never duplicates a sale you already have (the same safe-to-re-run behaviour as the rest of your history — see Importing past sales). The revenue is accounted for; it’s just waiting to land.

Because the receipt is simply very large, there’s nothing to correct on your side in the moment. It clears from the list on its own if it manages to come across on a later retry. If you’d rather not keep a one-off huge sale on the list, Ignore it; you can still Resolve it by hand once you’ve checked it in Loyverse.

Shown as Couldn’t be matched, against an Order record, with a note naming the receipt number. A past Loyverse sale couldn’t be brought across — a different situation from the oversized receipt above, and rarer still.

No sale is lost. It’s still in Loyverse exactly as it was, and nothing about your Loyverse account changed. Unlike an item, a sale isn’t re-tried by the hourly sync, so the fix is to run the past-sales import again — it never duplicates a sale you already have, so re-running it is always safe. If the note quotes a reason, check that sale in Loyverse first. Then resolve the conflict.

Shown as Duplicate on import. Two customer records share the same customer code, so they can’t be matched one-to-one. Use Merge customers to combine them — pick the one to keep, and the other’s details fold into it. See Importing your data.

Shown as Reconnect needed. Your Loyverse token was revoked or replaced, so sync has stopped and the connection shows Invalid token. Paste a fresh token under Integrations → Connected POS to start syncing again — see Connect your Loyverse account. Reconnecting doesn’t clear this entry on its own, so Resolve it once sync is back to take it off the list.

If you’ve switched to import only, the conflicts that come from ongoing two-way sync can’t happen — there’s nothing flowing between the two systems to create them. Edited on both sides, Tax rate changed in Loyverse, Change rejected by Loyverse, Deletions paused for safety, and the two sale rows (Sale not sent to Loyverse and Sale may be missing from Loyverse) all come from that two-way flow, which is paused in import-only.

The rest still appear, because they come from the import, which keeps working: Can’t be fully represented, An item that didn’t come across at all, A component of a bundle that couldn’t be wired up, A tax rate that clashed with one you already have, VAT pricing mode mismatch, Duplicate customer, A sale too large to import, A sale that didn’t come across, Payment total doesn’t add up, Expected cash doesn’t match Loyverse, and Reconnect needed can all still show up when you import from Loyverse.

⚠️ One thing changes, and it’s worth knowing: several of the notes above say Swann Retail “retries this on its own during the hourly catalogue sync”. That hourly catch-up is part of the two-way loop, so in import-only mode it doesn’t run — nothing retries automatically. Importing again doesn’t pick up a catalogue record — an item, one of its components, or a tax rate — that already failed once, either. So for those, if the record didn’t come across, contact support rather than waiting or re-importing; the note says so too, and that’s the case it’s there for.

Sales are the exception, and nothing about them changes in import-only mode. A past sale was never covered by the hourly catch-up in the first place, so the remedy is the same as it always is: run the past-sales import again — it never duplicates a sale you already have. See A sale that didn’t come across above.

A steady trickle is normal during a busy side-by-side run. A sudden burst of the same kind usually points at one root cause — for example, a batch of Loyverse items that all use weight or modifiers. Fix the source and the new conflicts stop.