Checkout inside WhatsApp still needs accounting discipline. A customer can pay through a gateway link, choose cash on delivery, or be confirmed manually, but every path should land on one order record with a clear payment state.
Send the payment where the conversation is
Payment links work because they keep momentum. The customer asks, you confirm stock, the link goes into the same thread, and the webhook updates the order when the gateway marks it paid.
Keep COD explicit
Cash on delivery should be a real payment status, not a note buried in a chat. Mark the order as COD, keep fees visible, and let fulfillment know what to collect.
Use webhooks as the source of truth
Manual confirms are useful for exceptions, but gateway webhooks should own the final paid state. That prevents duplicate packing, missed payments, and the quiet spreadsheet drift that grows as order volume rises.