If your own website sends its orders to NETICS and your customers pay on the NETICS payment page, three things changed on 17 October. A checkout makes one order, however many times the customer taps Pay. A customer who cancels is told plainly that they were not charged and goes back to your shop. And your team hears about a website order when it is paid, not when someone starts a checkout and walks away.
This is people's money, so each of these is about removing doubt: for the customer, for your team and for your books.
One order per checkout
A slow connection, a double tap on Pay or a page refresh can make a website send the same order twice. Before, that meant two orders on your board for one bag, and a team member deciding which one was real.
Now your website sends a key with each checkout, one key per shopping bag. If the same key arrives again, NETICS returns the order it already made instead of making another. Two requests arriving at the same moment still produce one order. Your board in NETICS CRM > Orders shows one order for one bag.
A cancelled payment says so
When a customer cancels on the payment page, the page now shows Payment cancelled with the line "You cancelled the payment. You have not been charged, and your order is still waiting for payment." After a five-second countdown ("Taking you back to" your site) it returns them to your shop's cancel page, where your website can keep their bag. It never sends a customer who cancelled to your order-received page.
Once a payment is confirmed, the page takes the customer to your order-received page instead.
What the customer saw on the way back from the payment company is treated as a hint only. Nothing is marked paid or unpaid because of it, and a verified payment always wins. If a customer did pay, the order is paid.
The payment page also names who is being paid ("Payment to" your business name), and NETICS's own support bubble no longer appears on it, so customers are not confused about whom they are dealing with.
Paid orders are announced once, after payment
Before, your team got "New order ORD-..." the moment a website checkout started, even for a bag nobody paid for. Staff could start packing an order that would never be paid.
Now a website order that will be paid online through NETICS sends no notice when it is created. When the payment is verified, the team gets New order ORD-..., paid with the items and the total, and a note that bank settlement is still pending. If the payment company reports the same payment twice, the team still hears about it once.
Orders paid any other way, such as on delivery or by transfer, are announced when they are placed, as before.
What you need to do
- Make sure online payments are set up under Platform > Integrations > Get paid to your bank.
- Ask whoever maintains your website to send the checkout key and a cancel page, as described below. A site that sends neither keeps working, but without the key it is not protected from double orders, and without a cancel page a customer who cancels is taken to your site's home page.
- Send the customer's email with each order. NETICS needs it to create a payment link.
Payment status is only ever set by a verified payment from the payment company. Neither your website nor your staff can mark an order paid, which is what keeps the notices and your stock honest: stock is taken off when an order is paid, not when it is placed.
For developers
These are changes to the public API (developer platform):
- Idempotency-Key on
POST /api/public/v1/orders. Use 8 to 200 characters (letters, digits,.,_,:,-), one key per shopping bag. The same key with the same order returns that order with200and the headerIdempotent-Replayed: true. The same key with a different order is refused with422. Two racing requests make one order. - payment_method
"online"marks an order paid through the NETICS checkout link. The team is notified when payment is verified, not at creation. - cancel_url on
POST /orders/{id}/checkout, next toreturn_url. It must be on the same website asreturn_url, andreturn_urlmust be on an origin listed on one of your workspace's agents. Asking again for the same unpaid order returns the same link (reused: true). - Listen for the
order.payment_changedwebhook withto: "paid". Trying to setpayment_stateyourself returns409. - The current JavaScript SDK and MCP checkout tool do not send
Idempotency-Keyorcancel_urlyet. Call the HTTP endpoints directly for these.
If you sell online, see Orders and payments, and how NETICS works for retail and e-commerce and fashion businesses.