RCS Business Messaging
Preview
REST

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.

Base URL

api.sendexa.co

HTTPS only

Auth

Basic

Dashboard Base64 token

Setup time

~1 day

Agent review may take longer

Sandbox

Yes

Test numbers available

Prerequisites

Sendexa business account

Active account with API access and enough credits for RCS (and SMS fallback if enabled).

KYC / business verification

Brand legal name, registration docs, and website — required for agent verification.

Brand assets

Square logo (PNG/JPG, ≥ 224×224), brand colour, short description, privacy policy URL.

Approved SMS sender ID

Recommended for fallback. Must already be approved under SMS for Ghana routes.

Setup steps

1
Enable RCS on your business

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.

2
Register an RCS agent

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).

FieldTypeRequiredDescription
displayNamestring
required
Brand name shown in the thread header (e.g. “GCB Bank”, “Jumia GH”). Max 40 characters.
descriptionstring
required
Short public description of what customers can expect (max 100 characters recommended).
logoUrlstring (URL)
required
Public HTTPS URL to square logo (PNG/JPG). Min 224×224. Transparent PNG preferred.
brandColorstringoptionalHex colour (e.g. #0B5FFF) used in the agent header on supporting clients.
contact.phonestringoptionalCustomer-care MSISDN in E.164 (e.g. +233302XXXXXX).
contact.emailstringoptionalSupport email shown on the agent profile.
contact.websitestring (URL)
required
Official brand website or product landing page.
privacyPolicyUrlstring (URL)
required
Public privacy policy — required for verification review.
useCasesstring[]
required
One or more of: transactional, promotional, conversational, otp.
countriesstring[]
required
ISO country codes for launch markets, e.g. ["GH"]. Expand later as coverage grows.

Example agent registration payload (dashboard / support)

JSON
{
"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"]
}
3
Configure SMS fallback

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.

JSON
{
"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.

4
Connect webhooks

In Dashboard → RCS → Webhooks, set an HTTPS URL and copy the webhook secret. Subscribe to:

rcs.delivered
rcs.read
rcs.failed
rcs.user_reply
rcs.suggestion_click

Full payload schemas and signature verification are documented in RCS Webhooks.

5
Send your first message

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.

Bash
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 countries and 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.

Go-live checklist

RCS product enabled on the business
Agent approved with production agentId
SMS sender ID approved for fallback routes
Webhook URL verified (200 OK) with signature checks
Sandbox send tested on an RCS-capable handset
Fallback path verified by forcing a non-RCS number
Error handling for AGENT_NOT_APPROVED and RATE_LIMIT_EXCEEDED
messageId persistence for audit / support