Channels/SMS
Zenziva
Indonesian SMS gateway. Local pricing, custom alphanumeric sender, broad local carrier coverage.
Zenziva is an Indonesia-focused SMS provider. If your users are all in Indonesia, Zenziva is usually 2–5× cheaper than Twilio per message.
Pricing
- Trial — free with limited quota.
- Regular SMS — around Rp 300/SMS.
- Masking SMS (custom sender name) — around Rp 500/SMS.
- Volume discounts apply. https://zenziva.id for current rates.
Setup
- Register at https://zenziva.id.
- Top up credit (Indonesian pricing, IDR).
- From the dashboard, copy the userkey and passkey (or API token depending on account type).
import "github.com/gopackx/go-notification/channel/sms/zenziva"
notifier.RegisterChannel(zenziva.New(zenziva.Config{
Userkey: os.Getenv("ZENZIVA_USERKEY"),
Passkey: os.Getenv("ZENZIVA_PASSKEY"),
Subdomain: os.Getenv("ZENZIVA_SUBDOMAIN"),
}))Configuration reference
| Field | Type | Required | Description |
|---|---|---|---|
Userkey | string | yes | Account userkey. |
Passkey | string | yes | Account passkey / API token. |
Subdomain | string | yes | Your Zenziva account subdomain (the API endpoint host). |
Timeout | time.Duration | no | HTTP timeout per send. Default: 30s. |
Number format
Zenziva accepts local (08123456789) or international (628123456789 without +) formats. Normalize to one format in your code — mixing causes confusion in delivery logs.
Regular vs Masking
- Regular — cheapest. Recipient sees a random short code as the sender.
- Masking — your brand name as the sender (e.g.
BCA,Tokopedia). Better UX but more expensive and requires sender-name registration with Zenziva.
Troubleshooting
status: 2(fail) — bad credentials or insufficient balance.- Message delivered status stuck at
pending— carrier-side delay. Indonesian operators have intermittent slowness; don't retry too aggressively. - Masking sender rejected by carrier — Telkomsel/XL/Indosat each have their own sender-registration process, handled on Zenziva's side. If a sender works for some users and fails for others, it's probably not registered with the failing user's carrier.