Skip to content

SMS provider

Transactional SMS (order confirmations, OTPs, shipping updates) runs through a shared, versioned package. The call site — send_sms(...) — is provider-agnostic; each adapter maps its vendor onto the same canonical contract.

Setting value Provider
twilio Twilio
a BD local gateway a local SMS gateway adapter
Setting Purpose Default Where
sms_provider The SMS provider for this store blank → the deployment default Tenant config → Providers
SMS_DEFAULT_PROVIDER Deployment-wide default SMS provider twilio .env
provider credentials API keys / tokens Integrations (encrypted)

The active provider resolves in order: TenantConfig.sms_providerSMS_DEFAULT_PROVIDER (.env, defaults to twilio) → the first provider that has credentials.

  1. Add the provider’s credentials as an App integration — encrypted at rest automatically.
  2. Set sms_provider in the tenant config (or SMS_DEFAULT_PROVIDER in .env for a deployment-wide default).

The Test connection button on the SMS card is a real, live check: Nudova reads your account balance from the gateway. A wrong or revoked API key fails immediately, with the gateway’s own error message.

It is deliberately not a test send. An SMS costs money and lands on a real handset — you shouldn’t have to pay, or spam someone, to find out whether a key works. The balance read is free and has no side effects, and it proves the same thing.

Related: Payment providers · Courier providers · Phone-risk provider.