Providers & webhooks

Build once, deploy to any gateway. USSDly abstracts provider differences behind a single runtime.

Provider abstraction

A flow is provider-agnostic. At deploy time you bind a flow version to a provider and environment; USSDly handles each provider's webhook format and response encoding for you. Supported providers:

ProviderRegion
MoolreGhana / West Africa
HubtelGhana / West Africa
ArkeselGhana / West Africa
Africa's TalkingEast Africa
Nalo SolutionsGhana

The USSD webhook

Each provider binding gets an opaque webhook URL. Point your provider's USSD callback at it:

POST /webhooks/ussd/{provider}/{token}

The {token} routes the request to a specific binding (tenant / environment / flow). The runtime resolves the provider, loads the deployed flow version and advances the session.

Rate limiting

Webhook traffic is throttled per source to protect the runtime from exhaustion. Provider adapters may also verify webhook signatures.

SMS & delivery reports

Provider adapters also handle outbound SMS (send + delivery reports), so the sms flow node and SMS campaigns work the same way across every provider.

Platform SMS (bulk sends, campaigns, and flow sms nodes billed to your credit wallet) is delivered through Moolre as the primary sender, automatically failing over to Arkeselwhen Moolre's balance is low or a send is rejected. Delivery status is reconciled per message against whichever provider actually sent it, so reports stay accurate across a failover.