Get up and running
with Lunyazi
Everything you need to send your first SMS, set up OTP verification, and reach production β without contacting support.
Welcome
What Lunyazi is and what this guide will help you achieve.
Getting Started
A step-by-step onboarding journey from login to first message.
Credits & Billing
How credits work, the two pools, and how to recharge via MoMo.
Sender IDs
What they are, how to request one, and common mistakes.
SMS Messaging
Single sends, bulk sends, test mode, and delivery status.
OTP Verification
Integrate phone verification into your app in two API calls.
Troubleshooting
Solutions to common issues with SMS, OTP, and billing.
1 of 7
Welcome to Lunyazi
What Lunyazi is, what problems it solves, and what this guide will help you achieve.
Lunyazi is a business communications platform that lets you send SMS messages and OTP verification codes to your customers, members, or users β through a simple dashboard or API.
What problems does Lunyazi solve?
- Send SMS to many people at once β reminders, notifications, alerts.
- Verify phone numbers or identities using one-time codes (OTP).
- Reach Eswatini and international numbers from one account.
- Automate recurring messages without building complex infrastructure.
What this guide covers
By the end of this guide you will be able to:
- Recharge your account with credits
- Set up your Sender ID
- Send your first SMS
- Integrate OTP verification into your application
- Reach production without needing to contact support
Did this page help?
2 of 7
Getting Started
A step-by-step onboarding journey from login to your first production message.
Go to lunyazi.com/dashboard and sign in with your email and password. If you don't have an account, click Create account β you'll receive 10 free credits on signup.
Go to Billing in the sidebar. Select your credit pool, enter the quantity you want, and pay via MTN MoMo. Credits are added instantly. See Credits & Billing for full details.
Your Sender ID is the name that appears on your recipients' phones. Contact the Lunyazi team to request one before your first production send. See Sender IDs for full details.
Go to SMS in the sidebar. Enter a recipient number and a message, then click Send. Use test number +268000000000 to send without using credits. See SMS Messaging for full details.
Go to Reports in the sidebar. Your message log shows each send with its delivery status: Delivered, Submitted, Pending, or Failed.
Go to Account in the sidebar. Click Show next to your API key, copy it, and include it as the X-Api-Key header in every API request.
+268000000000 β sends do not use credits and always succeed. Use this to verify your integration before going live.Did this page help?
3 of 7
Credits & Billing
How credits work, the two credit pools, how to recharge, and purchase history.
Lunyazi uses a credit system. You buy credits in advance and spend them when you send messages.
Two credit pools
| Pool | Used for | Expiry |
|---|---|---|
| Eswatini | Numbers starting with +268 | End of month |
| International | SA (+27), UK (+44), and other countries | Never expire |
How to recharge
- Go to Billing in the sidebar.
- Select Eswatini (+268) or International.
- Enter the quantity of credits you need.
- Review the total β pricing is tiered by volume.
- Enter your MTN MoMo number and click Pay with MoMo.
- Approve the payment prompt on your phone.
- Credits appear in your balance instantly once payment is confirmed.
Purchase history
Scroll to the bottom of the Billing page to see your full purchase history β date, pool, credits, and payment status for each transaction.
Did this page help?
4 of 7
Sender IDs
What a Sender ID is, why it matters, how to request one, and common mistakes to avoid.
A Sender ID is the name or number that appears on your recipient's phone when they receive your message.
Why it matters
- A recognised Sender ID improves open rates β recipients know who sent the message.
- Without a custom Sender ID, messages arrive from a generic number.
- A branded Sender ID looks professional and builds trust with your audience.
How to request a Sender ID
- Contact Lunyazi support via email at sales@lunyazi.com or WhatsApp.
- Provide the name you want to use (max 11 characters, letters and numbers only).
- Allow 1β2 business days for activation.
- Once activated, all your outgoing messages will show your Sender ID.
Sender ID rules
- Maximum 11 characters
- Letters and numbers only β no spaces or special characters
- Must represent your organisation or brand
- Cannot impersonate another organisation
Common mistakes
- Spaces in the name β use a single word or abbreviation (e.g.
MyBusinessnotMy Business) - Too long β names over 11 characters are truncated by the carrier
- Sending before activation β messages will show a default sender until your Sender ID is activated
Did this page help?
5 of 7
SMS Messaging
How to send a single message, send in bulk, use test mode, and check delivery status.
Sending a single message
- Go to SMS in the sidebar.
- Enter the recipient's phone number in international format (e.g.
+26876123456). - Type your message.
- Click Send.
Sending bulk messages
- On the SMS page, switch to the Bulk tab.
- Upload a CSV or paste numbers β one per line.
- Enter your message.
- Review the recipient count and estimated credit cost.
- Click Send to all.
Test mode
Enable Test mode on the SMS page to simulate sending without using credits or reaching the carrier. The test number +268000000000 always succeeds.
Delivery status
Go to Reports to check delivery status for each message.
| Status | Meaning |
|---|---|
| β Delivered | Confirmed received by the handset |
| π€ Submitted | Accepted by the carrier β delivery pending |
| β³ Pending | Awaiting delivery confirmation |
| β Failed | Could not be delivered |
Did this page help?
6 of 7
OTP Verification
What OTP is, typical use cases, and how to integrate it into your application in two API calls.
OTP (One-Time Password) lets you verify that a user owns a phone number by sending them a code and checking that they entered it correctly.
Typical use cases
- User registration β confirm the phone number during signup
- Login verification β two-factor authentication (2FA)
- Password reset β verify identity before allowing a reset
- Transaction confirmation β confirm high-value actions
- Membership verification β confirm a member's identity
Integration flow
Call the Lunyazi OTP API with the user's phone number. Lunyazi generates a code and sends it via SMS.
POST https://api.lunyazi.com/otp/send
X-Api-Key: your_api_key
{
"channel": "sms",
"recipient": "+26876123456",
"app_name": "Your App Name"
}The response includes an otp_id β save this for the verification step.
Show an input field for the user to enter the code they received on their phone.
Pass the otp_id and the user's entered code to the verify endpoint.
POST https://api.lunyazi.com/otp/verify
X-Api-Key: your_api_key
{
"otp_id": "otp_abc123",
"code": "492817"
}A successful response means the code is valid and the phone number is verified.
+268000000000 always returns code 123456 and uses no credits β use this to test your integration before going live.Eswatini DPA 2022: OTP verification meets the identity verification requirements of Section 14 of the Data Protection Act 2022. See lunyazi.com/otp for more.
Did this page help?
7 of 7
Troubleshooting
Solutions to common issues. If your issue is not listed, contact support.
SMS not delivered
| Possible cause | What to check |
|---|---|
| No credits remaining | Check your balance on the Overview page and top up via Billing. |
| Invalid phone number format | Numbers must be in international format: +26876123456. No spaces or dashes. |
| Recipient's phone is off | A Pending status in Reports means the carrier is still attempting delivery. |
| Message blocked by content policy | Certain words are blocked to comply with carrier policies. If you receive a 403 error, review your message content. |
OTP code not received
| Possible cause | What to check |
|---|---|
| No credits | OTP sends use the same credit pool as SMS. Check your balance. |
| Invalid phone number | Confirm the number is in international format and is reachable. |
| Code expired | OTP codes expire after 10 minutes. Request a new one. |
Unable to recharge
| Possible cause | What to check |
|---|---|
| MoMo approval not completed | Check your phone for the MoMo prompt β it expires after a few minutes. |
| Insufficient MoMo balance | Ensure your MoMo wallet has enough funds before initiating payment. |
| Incorrect number format | Enter your MoMo number without the + sign: 26878XXXXXX. |
API returning 401 Unauthorized
- Your API key may be incorrect β go to Account and copy it again.
- Ensure you are sending the key as the
X-Api-Keyheader, not in the request body.
API returning 429 Too Many Requests
- You have exceeded the per-minute rate limit. Add a delay between sends or use the bulk send endpoint for large batches.
Did this page help?