Why the same order never posts twice

Before posting an order, the app checks whether it is already in your ERP and posts it only if not, even if the order notice arrives more than once.

Card titled Why the same order never posts twice

Can the same Zid order end up in your ERP twice?

No. Before posting any order, the app checks whether that order is already in your ERP, and posts it only if it is not. That holds even if the order notice arrives more than once, and when a sync is retried.

What a duplicate does to your books

An order in your ERP is a sale, and it moves numbers in your books. Post the same order twice and the sale is counted twice, and so is the tax. If your books track stock, the same quantity comes off twice as well.

Sales and tax come out higher than they are, and the books show less stock than the shelf. Finding the duplicate later means going through the ERP orders, matching them against Zid, and cancelling the extra copy. The longer it goes unnoticed, the more there is to go through.

If the same order arrives more than once

A paid order reaches the app as a notice sent by Zid. The app is built to stay correct even if the order notice arrives more than once. An order that was already sent can also be synced again, for example when a failed sync is retried.

Either way, there is one order in Zid, and there should be one in the ERP. So the app has three guards against duplicates:

  • A unique key per store and order on the incoming notice.
  • A unique index in the app’s database that refuses to save the same order twice.
  • A check in the ERP for an existing document before a new one is created.

The third guard is the check before posting, and it runs on every order.

The check before posting

How an order is checked before it is posted
  1. The notice arrives

    The paid-order notice reaches the app from Zid.

  2. Check the ERP

    The app checks whether this order is already in your ERP.

  3. Post only if it is not there

    If the order is not in the ERP, it is posted with the customer, items, tax and shipping. If it is already there, it is not posted again.

  4. Read it back

    The app reads the order back from the ERP to confirm it was posted.

1. The notice arrives

When an order is paid in your Zid store, Zid sends the order notice to the app. The notice is identified by a unique key per store and order. Even if the order notice arrives more than once, work on the order starts with a check.

2. The app checks the ERP

Before posting anything, the app checks whether this order is already in your ERP. It runs that check every time: on the first notice or a repeat, on the first sync or a retry.

3. The order is posted once

If the order is not in the ERP, it is posted with the customer, items, tax and shipping. If it is already there, it is not posted again, and the ERP keeps one order for that Zid order.

The customer is handled before posting too. Depending on your ERP, the customer is linked to their ERP record or a new record is created, or orders post under one customer account chosen during setup.

4. The order is read back

After posting, the app reads the order back from the ERP. So the confirmation comes from the ERP itself.

The same order, without the check and with it

An example: one order, its notice received twice. The first column posts every notice it gets. The second checks before posting.

One order, notice received twice
Without the checkWith the check
First noticeThe order is postedChecked, then posted
Second noticeThe order is posted againChecked, not posted
Orders in the ERPTwo orders for one saleOne order
Sales and taxCounted twiceCounted once
Stock, if your books track itQuantity deducted twiceQuantity deducted once

What you see in Zid and in the ERP

In your ERP you see one order for each Zid order, with the customer, items, tax and shipping.

Once the document is created in your ERP, its number is written as a comment on the Zid order. The ERP document number appears as a comment on the Zid order with every system, so you can go from the order in Zid to its matching document in the ERP.

Updating the order status in Zid is available with Dynamics 365 Finance and Operations, and is switched on during setup. When Dynamics 365 Finance and Operations shows the order as “Invoiced”, the Zid order moves to the status chosen during setup.

Questions merchants ask

If the order notice arrives more than once

The app checks before it posts. On the first notice the order is not in the ERP yet, so it is posted. On the second notice it is already there, so it is not posted again.

A sync failed

If an order fails to sync, the assistant in the app can retry it once you approve. The retry does not create a duplicate order in the ERP, because the app checks before every post.

A return after the order was posted

Returns have their own path. With Odoo, ERPNext and Wafeq, a return posts to the ERP as a credit note, and the rule is one credit note per return. Returns are not supported on Dynamics 365 Finance and Operations or on a custom system connected through a public API.

A customer who has ordered before

With Odoo, ERPNext and Wafeq, the app looks the customer up in your ERP before the order is posted. If they already have a record, the new order is linked to it, and if not, a new record is created, so the same customer does not get a new record with every order. With Dynamics 365 Finance and Operations, orders post under one customer account chosen during setup.

Our record

These figures come from Zid Integrations data.

lost orders
Zero
orders delivered to ERPs
Over 14,000

Source: Zid Integrations dataas of 6 October 2026

Systems and plans

The app works with Odoo 18 and 19, Microsoft Dynamics 365 Finance and Operations, ERPNext, Wafeq, and any system with a public API. Our team does the setup with you, the connection is tested on your store’s orders, and you go live after a test report you approve, in about two weeks.

Posting orders to your ERP, and returns with Odoo, ERPNext and Wafeq, starts on the Starter plan, which covers 100 orders a month. Details and prices for each plan are on the app’s page in the Zid App Market.

To run the check-before-posting on your own store’s orders, install the app from the Zid App Market.