Portal Default Response + your webhook = two replies. Pick one owner.
Keyword namespace, state table, dedupe, loop caps:
www.smsgatewaycenter.com/blog/two-way...

Portal Default Response + your webhook = two replies. Pick one owner.
Keyword namespace, state table, dedupe, loop caps:
www.smsgatewaycenter.com/blog/two-way...
An opt-out on Tuesday and a promo on Wednesday usually means a booking you never cancelled.
Delete SMS schedules with schedule/delete. WhatsApp has no cancel API.
One booking, three ID names: transactionId on send, uuid on update or delete, uuId on read. Same value. Store it as text.
Sub-users are team logins. They inherit products and pricing. rateplan/read returns code 486.
A hard budget wall is a reseller child account.
SMS cost trap: amount is per part, cost is part count.
Line total = amount × cost.
RCS/Telegram hand you the whole. WhatsApp outbound does not.
Silent reply loss is the worst two-way failure.
SMS pushes once and cannot be reread.
WA/RCS/TG inboxes are poll-only and replayable.
Side-by-side contracts:
www.smsgatewaycenter.com/blog/receivi...
Migrating SMS to RCS? Do not replace the pipeline.
Keep SMS. Add RCS. Route with fallback when RCS is not enabled (error 5007).
Field guide for engineers:
www.smsgatewaycenter.com/blog/rcs-mes...
A green dashboard is not an audit trail.
For group and bulkupload sends, DLR ingestion is the only durable recipient record. Use webhook push for speed and getDlr pull for completeness.
Group send addresses a container, not people. No mobiles in the send response. Sync your contacts. Read DLR for who was messaged. Map five groupId spellings once.