Appearance
Configuration reference
For merchants
Where: Extensions → My extensions, then click Configure next to SMS for Shopware 6. Click Save at the top right after changing anything.

Stored as: KmhSmsSW.config.<key> in Shopware's system configuration.
Settings per sales channel
A sales channel is one of your storefronts. The Sales Channel drop-down at the top of the page decides which storefront the values you see apply to:
- All Sales Channels (the default) — values here apply to every storefront. Start here.
- A single storefront — shows that storefront's values. Fields you leave untouched inherit the All Sales Channels value; fill a field to override it for that storefront only. This is how you use, for example, a Ghanaian sender ID on your Ghana storefront.

More about sales channels: Shopware's sales channel documentation.
Which boxes do I need?
Only SMS routing and the box of one provider are required. Leave the boxes of providers you do not use empty — an empty provider is simply ignored. The webhook settings in the provider boxes and Logging are optional.
Check credentials
Every provider box ends with a Check credentials button. It asks the provider whether the saved settings for the selected sales channel work — save first — and shows the result (for some providers also the account balance). No message is sent.
SMS routing

| Setting | Key | Type | Default | Description |
|---|---|---|---|---|
| Default SMS provider | defaultSmsProvider | Select | none | Provider tried first: termii, sendexa, africasTalking, twilio. Deliberately empty by default. |
| Default country dial code | defaultDialCode | Text | 234 | Digits only, no +. Used (1) to turn local numbers such as 0803… into international ones before sending — numbers starting with + or 00 are left alone, and if this is empty local numbers are skipped rather than guessed; and (2) as the country preselected in the storefront phone field when the sales channel has no country. See Phone numbers & dial codes. |
Termii

| Setting | Key | Type | Default | Description |
|---|---|---|---|---|
| API key | termiiApiKey | Password | — | From the Termii dashboard. Empty disables Termii. |
| Sender ID | termiiSenderId | Text | — | Approved alphanumeric sender. Required. |
| Carrier route | termiiRoute | Select | generic | generic or dnd (reaches Nigerian DND numbers; billed differently). |
| API base URL | termiiBaseUrl | Text | — | Optional; default https://v3.api.termii.com. |
| Webhook secret key | termiiWebhookSecret | Password | — | Optional. The secret key from the Termii dashboard that Termii signs delivery reports with. Webhook URL in Termii: https://<your-shop>/kmh-sms/webhook/termii. Reports are rejected while it is empty. See delivery reports. |
Sendexa

| Setting | Key | Type | Default | Description |
|---|---|---|---|---|
| API token | sendexaApiToken | Password | — | Base64 token from the dashboard. Empty disables Sendexa. |
| Sender ID | sendexaSenderId | Text | — | Approved sender, max 11 characters. Required. |
| API base URL | sendexaBaseUrl | Text | — | Optional; default https://api.sendexa.co. |
Africa's Talking

| Setting | Key | Type | Default | Description |
|---|---|---|---|---|
| Username | africasTalkingUsername | Text | — | Account username; sandbox selects the sandbox. Required. |
| API key | africasTalkingApiKey | Password | — | Empty disables Africa's Talking. |
| Sender ID or short code | africasTalkingSenderId | Text | — | Optional; empty uses the shared pool. |
| Webhook token | africasTalkingWebhookToken | Password | — | Optional. Africa's Talking does not sign its callbacks, so choose a long random value and use it in the delivery-report URL https://<your-shop>/kmh-sms/webhook/africasTalking?token=<token>. Reports are rejected while it is empty. |
Twilio

| Setting | Key | Type | Default | Description |
|---|---|---|---|---|
| Account SID | twilioAccountSid | Text | — | Starts with AC. Empty disables Twilio. |
| Auth token | twilioAuthToken | Password | — | Required. |
| Sending number | twilioFrom | Text | — | International format. Required unless a messaging service SID is set. |
| Messaging service SID | twilioMessagingServiceSid | Text | — | Optional, MG…. Replaces the sending number. Needed for delivery reports: set the service's status callback URL to https://<your-shop>/kmh-sms/webhook/twilio; callbacks are verified with the auth token. |
Logging

| Setting | Key | Type | Default | Description |
|---|---|---|---|---|
| Enable debug logging | enableDebugging | Toggle | Off | Also log debug/info/notice/warning to var/log/kmh_sms_<env>.log. Errors are always logged. |
| Log levels | logLevels | Multi-select | all | Restrict debug logging to these levels. |