Getting Started
Enable RCS Business Messaging on your Sendexa business, register a verified brand agent, wire SMS fallback, and send your first rich message to a Ghana MSISDN.
API credentials
Use your dashboard Base64 Basic Auth token for all REST calls to api.sendexa.co.
Approved agent
Register a brand agent with logo, name, and use cases before production sends.
SMS fallback ready
Keep an approved SMS sender ID for automatic degradation when RCS is unavailable.
Webhook endpoint
HTTPS URL that returns 200 quickly for delivery and engagement events.
Authentication
Authorization: Basic <token>. Auth guide →api.sendexa.co
HTTPS only
Basic
Dashboard Base64 token
~1 day
Agent review may take longer
Yes
Test numbers available
Preview product
Prerequisites
Active account with API access and enough credits for RCS (and SMS fallback if enabled).
Brand legal name, registration docs, and website — required for agent verification.
Square logo (PNG/JPG, ≥ 224×224), brand colour, short description, privacy policy URL.
Recommended for fallback. Must already be approved under SMS for Ghana routes.
Setup steps
In the Sendexa Dashboard go to Products → RCS Business Messaging → Enable. During Preview this may require support to flip the feature flag on your organisation.
Once enabled, the sidebar shows Agents, Messages, and Webhooks.
An agent is your public brand identity on RCS. Users see the display name, logo, and verification badge in their messaging app (e.g. Google Messages).
| Field | Type | Required | Description |
|---|---|---|---|
| displayName | string | required | Brand name shown in the thread header (e.g. “GCB Bank”, “Jumia GH”). Max 40 characters. |
| description | string | required | Short public description of what customers can expect (max 100 characters recommended). |
| logoUrl | string (URL) | required | Public HTTPS URL to square logo (PNG/JPG). Min 224×224. Transparent PNG preferred. |
| brandColor | string | optional | Hex colour (e.g. #0B5FFF) used in the agent header on supporting clients. |
| contact.phone | string | optional | Customer-care MSISDN in E.164 (e.g. +233302XXXXXX). |
| contact.email | string | optional | Support email shown on the agent profile. |
| contact.website | string (URL) | required | Official brand website or product landing page. |
| privacyPolicyUrl | string (URL) | required | Public privacy policy — required for verification review. |
| useCases | string[] | required | One or more of: transactional, promotional, conversational, otp. |
| countries | string[] | required | ISO country codes for launch markets, e.g. ["GH"]. Expand later as coverage grows. |
Example agent registration payload (dashboard / support)
{"displayName": "Sendexa","description": "Secure alerts, receipts, and support from Sendexa.","logoUrl": "https://cdn.sendexa.co/brand/sendexa-logo-512.png","brandColor": "#0B5FFF","contact": {"phone": "+233302555010","email": "hello@sendexa.co","website": "https://sendexa.co"},"privacyPolicyUrl": "https://sendexa.co/privacy","useCases": ["transactional", "otp", "promotional"],"countries": ["GH"]}
Agent statuses
draft— saved, not submittedpending_review— with Sendexa / carrier reviewapproved— production sends allowed (agentIdissued)rejected— fix assets / use cases and resubmitsuspended— temporarily blocked for policy issues
RCS reach depends on handset capability and carrier support. For OTPs, transfer alerts, and any mission-critical notice, always enable SMS fallback with an approved sender ID.
{"fallback": {"enabled": true,"channel": "sms","from": "Sendexa","message": "Your Sendexa verification code is 482193. Valid for 5 minutes."}}
Fallback rules: SMS is only charged when triggered; the status API and webhooks report delivery.channel as rcs or sms. Keep the SMS body under 160 characters when possible to use a single SMS credit.
In Dashboard → RCS → Webhooks, set an HTTPS URL and copy the webhook secret. Subscribe to:
Full payload schemas and signature verification are documented in RCS Webhooks.
Use your approved agentId and a test handset known to support RCS (or rely on SMS fallback). Ghana local numbers are accepted and normalised to international format.
curl -X POST 'https://api.sendexa.co/v1/rcs/send' \-H 'Content-Type: application/json' \-H 'Authorization: Basic YOUR_DASHBOARD_BASE64_TOKEN' \-d '{"to": "0555539152","agentId": "AGT-SENDXA-GH","type": "text","text": {"body": "Welcome to Sendexa RCS. Reply HELP for support."},"suggestions": [{ "type": "reply", "text": "HELP", "postbackData": "help" },{ "type": "openUrl", "text": "Visit site", "url": "https://sendexa.co" }],"fallback": {"enabled": true,"channel": "sms","from": "Sendexa","message": "Welcome to Sendexa. Visit https://sendexa.co or reply HELP for support."},"reference": "onboarding-demo-001"}'
RCS capability & Africa notes
RCS capability is determined at delivery time by the carrier and handset — there is no guaranteed “always on” flag for every Ghana number. Typical patterns:
- Android devices with Google Messages and an active data connection are most likely to receive RCS.
- Feature phones and some iOS / dual-SIM configurations may fall back to SMS even when the MSISDN is valid.
- Carrier rollout varies across MTN Ghana, Telecel, AirtelTigo, and regional operators — enable fallback for reliability.
- For multi-country campaigns (NG, KE, ZA, etc.), request agent expansion of
countriesand confirm local content / DND rules with Sendexa.
The send response initially returns delivery.rcsCapable: null. Once the network responds, status and webhooks populate capability and whether fallback fired.