01Sign up & sign in
Free to register, no credit card required. Every new account receives a HK$3 trial credit instantly.
- Click Sign up free at the top right and enter your email and a strong password (12+ characters recommended).
- Once verified you land in the console with HK$3 credit. Your balance never expires and there are no monthly fees.
- Forgot your password? Use "Forgot password" on the login page to receive a reset link by email.
Interface language: the console supports Traditional Chinese and English; switch anytime at the top right — your choice is remembered.
02First-send walkthrough
The first time you open the dashboard, a guided modal invites you to send a real SMS to your own phone in under 30 seconds.
- Enter your Hong Kong mobile number (8 digits starting with 5, 6 or 9; the +852 prefix is accepted).
- The message uses a pre-approved verification-code template. Click "Refresh code" for a new random code — whatever you see on screen is exactly what arrives on the phone.
- The sender is the platform default, which appears as #TEAMOTTO on Hong Kong handsets; once your custom Sender ID is approved you can switch to your brand name.
- The message is charged at the standard rate (about HK$0.40 per SMS to Hong Kong), deducted from your trial credit or balance.
Prefer not to see it again? Tick "Don't show again" at the bottom of the modal before closing.
03Dashboard & balance
Your mission control for everything sending.
- Daily / historical volume: a bar chart by month showing sends per day and success rates.
- Balance & available balance: shown live in the top bar; available = balance − credit frozen by in-flight sends.
- Low-balance alert: set a threshold in Settings and receive a daily email and in-app reminder once your balance drops below it, so sending never stalls.
04Send wizard: international & mainland China SMS
Pick a template → add recipients → choose a sender → review and send.
Step 1 — Choose a template (required)
- Under carrier regulations, content must come from an approved template. The library has "International" and "Mainland China" tabs; only approved templates appear in the dropdown.
- Once selected the content is read-only; variables such as #code# or #name# are substituted per recipient at send time.
Step 2 — Recipients
- Paste a number list (one per line, or "number,name") or import a saved contact group in one click.
- Numbers are validated and de-duplicated automatically; blacklisted numbers are skipped and never charged.
Step 3 — Sender ID
- Defaults to the platform sender (shown as #TEAMOTTO in Hong Kong); your approved custom Sender IDs appear in the dropdown.
Step 4 — Review & send
- Before submitting you see the segment count and estimated cost (70 Chinese or 160 Latin characters per segment; longer messages are split).
- Billing follows "freeze on submit, refund on failure": the estimate is frozen, then reconciled to the carrier-confirmed actual cost — failures are fully refunded.
Mainland China sends require an approved SMS signature (section 6). Messages are delivered as "【Signature】 content" to +86 numbers.
05Template library (international SMS)
Location: Templates. Every international message body must be submitted for approval here.
- Click "New template" and set a name, type (OTP / notification / marketing) and content.
- Use hash-format variables for dynamic parts, e.g. #code# (auto-generates a 6-digit OTP if omitted), #name#.
- Approval usually takes one business day; results are delivered by email and in-app notification.
- Rejected templates include the reason and can be revised and resubmitted; approved ones become selectable in the send wizard.
For marketing templates, keep an opt-out line (e.g. "Reply STOP to unsubscribe") and follow destination regulations to protect approval and deliverability.
06Mainland China SMS signatures
Location: Templates → Mainland China → Signatures. Regulators require every mainland SMS to carry an approved signature.
- Create a signature (2–12 characters), choose "own use" or "third-party" and upload the required documents (business licence, authorisation letter, etc.).
- The platform pre-reviews and submits it to the upstream carrier; live status (pending / approved / rejected with reason) is shown on the page.
- Once approved you can use it with mainland templates in the send wizard; recipients see "【YourSignature】 content".
07Custom Sender ID (brand name)
Location: Sender ID. Free to request — recipients see your brand name instead of a random number.
- Click "Apply for Sender ID", provide the brand name (up to 11 alphanumeric characters), a short use-case description and optional supporting documents.
- Review usually completes within one business day; you'll be notified by email.
- Approved IDs automatically appear in the send wizard's sender dropdown.
Some countries restrict custom Sender IDs (e.g. numeric-only requirements). Local carrier policy always prevails.
08Contacts
Location: Contacts. Group your audiences once, import them with one click on every campaign.
- Create a group, then paste a list to bulk-import: one number per line, or "number,name" (names can feed template variables).
- Search, edit and remove numbers within a group; create as many groups as your campaigns need.
09Blacklist
Location: Blacklist. Set and forget the numbers that should never be contacted again.
- Blacklisted numbers are automatically skipped in every send and never charged.
- Bulk paste supported; add numbers as soon as a contact opts out.
10Send records & reports
Location: Records. Full traceability from campaign to single message.
- Campaign list: name, type, template used, status, success/total and actual cost; filter by date, status, type and content keyword.
- Campaign detail: per-number status (pending / sending / success / failed with reason) and per-message cost.
- CSV export: export the filtered view (up to 5,000 rows per export) for finance reconciliation and archiving.
11Top-up plans
Location: Top-up. Balance never expires; top up any time.
- Top-up plans: every plan adds bonus credit (e.g. pay HK$500, receive HK$530).
- Online payment: cards / Alipay and more; credited the moment payment succeeds.
- Bank transfer / FPS: transfer against the order, upload the payment proof, and verification completes within one business day with an instant notification.
- Paid but the page didn't refresh? Click "Check result now" on the order — the platform queries the payment channel and credits automatically.
12Ledger & refunds
Location: Ledger. Every cent accounted for.
- Entry types: top-ups, bonus credit, sending consumption (frozen / settled), failure refunds and manual adjustments.
- Campaigns settle by actual delivered messages; the frozen difference is released back — visible as line items in the ledger.
13Price list
Location: Pricing. At-cost pricing: unit price = carrier cost + 10% platform fee, listed per destination across 200+ countries.
- Search by country name or code; sends to mainland China start from HK$0.064 per SMS.
- If carrier costs change, affected destination prices are updated in sync and announced in advance; final billing always reconciles to the carrier-confirmed cost — never overcharged.
14Developers: API keys & online debugging
Location: Developer. Plug SMS into your website, app or back-office.
- Create and manage API keys on this page (one key per system, so a leak can be revoked in isolation).
- Use the built-in API debugger to send real requests and inspect responses before writing any code.
- Full specification lives in the Open API docs. Core send call:
curl -X POST 'https://www.wesms.net/api/sms_job/postAdd' \
-H 'x-appid: {Your AppID}' \
-H 'x-secret: {Your Secret}' \
--data-urlencode 'template_id=5' \
--data-urlencode 'var[code]=823951' \
--data-urlencode 'phone=+85291234567'
- Sending by template ID is recommended: the platform assembles content from your approved template; #var# placeholders are filled with var[name]=value (var[code] auto-generates a 6-digit OTP when omitted).
- phone accepts repeated phone[] parameters or a comma-separated string; tpl_type: 1 OTP / 2 notification / 3 marketing.
- A response of data.ret = 1 means accepted; billing, records and receipts behave exactly like console sends.
15Webhooks
Location: Developer → Webhook. Push delivery statuses to your system in real time.
- Save an HTTPS callback URL and a shared secret.
- Each push carries four headers: X-Wesms-Event, X-Wesms-Timestamp, X-Wesms-Signature, X-Wesms-Attempt. The signature is hmac_sha256("timestamp.body", secret) — verify it before processing.
- The delivery health log on the same page shows every push with time, HTTP status and attempt count — all you need to debug the integration.
16Notifications & account settings
Never miss an important event.
- Notification center: the bell shows the unread count; the sidebar "Notifications" page lists full history with all / unread / read filters and "mark all as read".
- Key events (approval results, top-up credits, low-balance alerts) are also emailed to you.
- Settings: change password, interface language and timezone.
Troubleshooting
| Symptom | What to do |
| Template dropdown is empty in the send wizard | No approved template yet. Submit one under "Templates" and wait for approval (usually one business day). |
| "Insufficient available balance" | Available = balance − frozen credit. Top up, or wait for in-flight campaigns to settle and release the freeze. |
| Am I charged for failed messages? | No. Failures are automatically unfrozen and refunded, usually within minutes; see the Ledger for the refund entry. |
| Mainland sends rejected | Check that a signature under "Mainland China → Signatures" is approved; mainland sends require an approved signature. |
| Webhook callbacks not arriving | Confirm the endpoint is public HTTPS and check the health log status codes (4xx/5xx means your server rejected the push). |
| Paid but balance not updated | Click "Check result now" on the top-up order; bank-transfer orders need the proof uploaded and verified (within one business day). |