Bandwidth SMS Gateway
Purpose
Bandwidth SMS Gateway activates the Bandwidth SMS configuration supplied by SMS Gateway & API Routing. It updates that existing gateway record and uses the base module's request, routing and status code. It adds no standalone menu, sending wizard, callback controller or access role.
This guide describes the Odoo 19 source configuration. Adapter data was compared with 17, 18 and 20; no SMS, callback, provider-account change or runtime test was performed.
Before you start
Install eis_sms_apis and corvus_bandwidth_gateway for the same Odoo major version. The dependency uses Odoo SMS and declares no Enterprise-only requirement. Your hosting must permit custom addons. Provider account credentials and an authorised sender are separate prerequisites.
The wrapper sets its existing gateway to Active, leaves it unarchived, and sets Priority 500, even though credentials and sender values are placeholders. Installation is not proof that the provider connection is usable. Review the route in a controlled database before allowing live SMS traffic.
Access and setup
A Settings administrator opens SMS Gateways under the phone/SMS configuration menu and selects Bandwidth SMS. The base gateway and status models grant access to Settings administrators; this adapter adds no permissions for ordinary senders.
The supplied configuration is:
| Setting | Source configuration |
|---|---|
| Request | POST JSON to https://messaging.bandwidth.com/api/v2/users/{username}/messages |
| Authentication | HTTP Basic using Username and Password |
| Body | from sender, to typed phone array, text message, applicationId |
| Recipients | One request per recipient; its to value is still an array |
| Response rules | HTTP 202 or text containing "id"; capture an id value |
Replace the sender number and application ID literals in JSON Body, and supply the provider-issued credentials. The supplied URL reuses {username} as the URL's user identifier as well as the Basic Auth username. Confirm both values against your account's API configuration; if the identifiers differ, the URL must be configured separately. Do not assume the placeholder proves this account mapping is correct.
Workflow
- Open the existing gateway and inspect API Settings, Authentication, and JSON Body or Parameters. If preparing an unfinished route, use Toggle State from Active to Disabled and ensure Settings does not still select it as the default gateway.
- Replace the relevant placeholders with approved configuration values. Review Request Preview as a visual template; it does not validate credentials, resolve every placeholder or contact the provider.
- Review Country Prefix, Priority, and the default SMS Gateway in Settings. The base engine selects the first matching active prefix route by priority, then the configured default, then the first active gateway. A configured default is selected without checking its state or archive flag: disabling or archiving it does not reliably remove it from routing. Remove it from the default selection while preparing it. This wrapper does not specify a country-prefix rule. Use IAP bypasses custom routing; Fallback to IAP? applies when no gateway was selected, not after a failed provider send.
- Activate only after the configuration and route have been approved for use. Any connectivity test must be a separately authorised SMS send using the provider's permitted test arrangement. Saving or previewing a configuration is not a delivery test.
- After an authorised send, inspect Total SMS, Sent SMS, Failed SMS and the Status tab. The engine accepts configured HTTP success or a matching success substring, unless an explicit Error Key matches. Review provider errors separately before equating a recorded success with delivery.
Practice scenario
In an authorised training database, inspect Bandwidth SMS, identify its credential and sender placeholders, and compare its Priority 500 with another fictional route. Keep the training configuration disabled and unselected as default. Inspect the body/parameter structure without sending. This source-derived exercise has not been executed.
Troubleshooting and limitations
The wrapper supplies no delivery-callback mapping or provider account provisioning. A 202 response means the configured acceptance rule matched, not that the recipient received the SMS. The URL/account-identifier relationship is an integration checkpoint before any live send.
Delivery callbacks, when required, are configured in the base module's Delivery Callbacks tab. This adapter does not enable them or supply provider-specific payload mappings. The base endpoint uses its secret callback token and requires correlation with an existing SMS tracker. HTTP acceptance and a callback returning OK do not independently prove delivery.
Versions and useful links
Catalogue-qualified adapter versions are Odoo 17, 18, 19 and 20. Their provider XML and imports are identical in the reviewed comparison. The operational walkthrough is based on 19.0; the base engine's framework-specific differences still apply, so use matching packages. The adapter's XML is update data and can reapply supplied values when upgraded; review credentials, sender, state and routing after a module update.
Read SMS Gateway & API Routing for routing, permissions and callback setup. Use the Corvus apps catalogue to purchase the exact version. The live catalogue was checked; no provider-backed demo or message delivery was launched.
Open the Odoo 19 demo selector for this catalogue-qualified adapter. Catalogue qualification does not establish a working provider connection. No demo or SMS send was launched.