Zigatext messaging platform is everything you need for your mobile marketing, OTP, etc.
Zigatext API is RESTful. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
https://api.zigatext.com/v1
General Settings
(at the topright menu) > Profile
tab and change your account type to Corporate - to enable you Integrate Zigatext into third-party projects.Projects
tab and create project, the Access Key
generated for the project is what you’ll be using to access our services.Ziga Units
(at the topright menu) > Fund Project
tab and transfer units from your main Zigatext account to the project.If the project units finishes your main units will not be touched unless you transfer more units to project.
You can use one Zigatext account to manage many projects.
Important! Sender name registration is now mandatory. Kindly submit your sender name for registration by logging into your Zigatext account:
Message Box
menu item then + Register Sender Name
button.The Zigatext API uses Access key
to authenticate requests. You can view and manage your projects API keys in the Zigatext Dashboard.
For Raw HTTP request include Access-Key
to the http request header with your access key as the value.
Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
All your requests must carry Access-Key
http header with your project access key as the value and all POST requests must be JSON-encoded Content-Type: application/json
POST [/third-party/messages/send]
{
"sender":"dev-group",
"message": "Your awesome message",
"recipients": "23470xxxxxxxx",
"use_corporate_route": false,
"callback_url": ""
}
sender
is your custom name/title for your message and it should not exceed 11 characters (space is also counted as character)recipients
the phone number(s) you want to receive your message. Phone number is in intl format (meaning that phone number should include zipcode)message
is the content you want to send to your recipient(s)use_corporate_route
can either be true or false. Value ‘true’ means that you want your message delivers to Do-Not-disturb (DND) numbers for countries that has dnd policycallback_url
when you submit message for sending our server queue’s the message for delivery and after delivery your callback url is called to notify your system/website that your message has been sent. Then you can use the message id passed as query string to retrieve delivery details. This parameter is optional in case you don’t want to receive callbackPOST [/third-party/messages/schedule]
{
"sender":"zigatext",
"recipients":"23470xxxxxxxx,23480xxxxxxxx",
"use_corporate_route":true,
"extras":[
{
"deliver_at":"2018-06-17 17:50:00",
"time_zone_id":1018
}
],
"message":"it is awesome",
"callback_url": ""
}
Most of the parameter are the same with send
method above.
extras
accepts arrays of delivery times, in case you want your scheduled message to deliver at different times.time_zone_id
You can call our time zone endpoint to get list of timezones and their ids. It’s used to set at what timezone you want your scheduled message to delivery to your recipient(s)GET [/third-party/messages/{sentID}]
GET [/third-party/messages/{sentID}/extras]
GET [/third-party/newsletters]
POST [/third-party/newsletters/{newsletterID}/subscribers]
{
"name": "Subscriber's name",
"phone_no": "23470xxxxxxxx"
}
To add subscriber from your system/website to your Newsletter list, first login to your Zigatext dashboard, create the newsletter list and associate it to your project. Next call Newsletter endpoint
to pull your list with their ids
name
subscriber’s name.phone_no
subscriber’s phone numberPOST [/third-party/newsletters/{newsletterID}/subscribers/bulk]
{
"subscribers": [
{
"name": "Subscriber 1",
"phone_no": "23470xxxxxxxx"
},
{
"name": "Subscriber 2",
"phone_no": "23480xxxxxxxx"
}
]
}
This is same as adding single subscriber but in this case you add multiple subscribers at once
GET [/third-party/birthdays/groups]
POST [/third-party/birthdays/{groupID}/contacts]
{
"name": "Chibuike Mba",
"phone_no": "234703xxxxxxx",
"day": 9,
"month_id": 1
}
To add contact from your system/website to your birthday group, first login to your Zigatext dashboard and create the birthday group. Next call Birthday endpoint
to pull your groups with their ids
name
celebrant’s namephone_no
celebrant’s phone numberday
day of the monthmonth_id
month id is from 1 - 12POST [/third-party/birthdays/{groupID}/contacts/bulk]
{
"contacts": [
{
"day": 19,
"month_id": 7,
"name": "Benjamin Akawu",
"phone_no": "23481xxxxxxx"
},
{
"day": 30,
"month_id": 5,
"name": "Bernard Inyang",
"phone_no": "234806xxxxxxx"
},
{
"day": 05,
"month_id": 3,
"name": "Khaleb Uche",
"phone_no": "234810xxxxxxx"
}
]
This is same as adding single contact but in this case you add multiple contacts at once
GET [/third-party/time-zones]
GET [/third-party/check-balance]
GET [/third-party/months]
All your requests must carry Access-Key
http header with your project access key as the value and all POST requests must be JSON-encoded Content-Type: application/json
POST [/third-party/verifications/verify-number]
{
"type":"OTP",
"validity": 0,
"phone_no": "23470xxxxxxxx",
"sender": "Zigatext"
}
type
is verification method: One-Time Password (OTP), Timed One-Time Password (TOTP), IVR (not functional), CLI (missed call, not functional)validity
the life span of the PIN, non zero value for TOTPphone_no
recipient phone numbersender
this is used to identify the app the verification pin is meant forPOST [/third-party/verifications/verify-pin]
{
"id": 1,
"pin": "909075",
"phone_no": "23470xxxxxxxx"
}
Most of the parameter are the same with send
method above.
id
once the verification pin is successfully sent, the response payload of Send OTP/TOTP
comes with ID property, its expected to be stored and used here during pin validation.pin
the pin the user received.phone_no
recipient’s phone number.