A bill sent in chat isn’t just a receipt waiting on payment. Under the Civil and Commercial Code, a priced offer made to one specific customer works like any other contract offer — and the code sets real limits on when a seller can take it back. That’s what actually decides how long to hold a reserved item before releasing it, not a guess at how long feels fair.
A priced bill is already a kind of promise
Send a customer a bill with the item, price and delivery fee fixed, and Thai law treats that as an offer to contract, not a casual suggestion. Section 355 of the Civil and Commercial Code says a person who makes an offer to someone at a distance, without stating a deadline for the reply, cannot withdraw that offer during the time it would normally take for the reply to arrive (Section 355). In plain terms: a bill with no deadline on it doesn’t give the seller the right to cancel it and sell the item to the next person the moment the first customer goes quiet — the law expects a normal reply time to pass first.
State a deadline, and the law works for you instead
Section 354 covers the other case: an offer that does specify a time limit for the reply can’t be withdrawn before that limit passes (Section 354). Read together, the practical move is obvious — a bill with no deadline leaves a seller guessing at what counts as a “normal” reply time; a bill with a stated deadline gives a fixed point to cancel and move on instead. How long that deadline should be is a business call, not a legal one: 24 hours suits a single flash-sale unit with other buyers waiting, 48–72 hours is more realistic for a regular order — our own recommended default, not a figure the law sets. This is a different moment from a pre-order deposit, where the customer is waiting on stock to arrive rather than a seller waiting on them, and a later one than a quiet lead who never got as far as a bill at all.
Set up in 1CS
Every bill 1CS sends from a chat carries its own status, visible from ธุรกิจ > ขายสินค้า > บิล (Business > Sell products > Bills): ร่าง (draft), ยังไม่จ่ายเงิน (unpaid), รอยืนยันการโอน (payment pending confirmation), ยืนยันการจ่าย (confirmed), รอจัดส่ง (ready to ship) and ส่งแล้ว (shipped), or หมดอายุ / ยกเลิก (expired / cancelled). The “ต้องจัดการ” (needs action) filter on the same page is the fastest way to find every bill still sitting unpaid, instead of scrolling the full list. Once the deadline a seller set has actually passed, that bill is the one to move into the ยกเลิก (cancelled) status from its detail view — 1CS never releases a reserved item on its own. To catch the silence before the deadline, build an Automation rule (Thai only) using the “การสนทนาไม่มีการตอบสนอง” (conversation idle) trigger, so a reminder goes out automatically a set number of hours after the bill was sent, instead of depending on someone remembering to check. The Thai help center walks through every screen in ขายและออกบิลในแชต.
Two messages worth having ready
A reminder, timed to go out before the deadline — our suggested wording, not a required script:
Hi [customer name], just checking in on your order for [item], [quantity] pcs — the bill’s still open at [amount] THB. We’re holding it for you until [deadline, e.g. 6PM today]; after that we may need to release it to the next person waiting. Let us know if you still want it!
And the release message, sent only once that stated deadline has actually passed — not before:
Since we didn’t hear back by [deadline], we’ve released [item] to another customer who was waiting. Happy to check if it’s back in stock, or help with something else!
Sending the first message is what makes the second one defensible — a deadline nobody was told about isn’t one a customer will accept.