Reference
After you Build an integration, Test & activate, and Enable on pipelines & cloning, use this reference to understand how BYO SMS behaves once live: which integration routes each SMS, what each outcome costs, and which settings your Akedly contact controls.
Managed Vodafone integrations differ
BYO SMS here describes an integration you build and own. If Akedly operates a managed Vodafone integration for your account, several of the capabilities described below are fixed by Akedly and are not yours to set — see Managed Vodafone.
Send-time routing
BYO routing applies to every SMS for a pipeline with BYO SMS on: primary OTP SMS, WhatsApp-to-SMS fallback, delivery-retry fallback, and one-way utility SMS.
- Name
Destination coverage- Type
- routing requirement
- Description
Akedly considers active integrations that cover the destination country.
- Name
Pipeline copy first- Type
- scope precedence
- Description
A matching integration cloned onto the pipeline wins over one in the account registry.
- Name
Explicit country first- Type
- coverage precedence
- Description
Within the selected scope, an integration that lists the destination country wins over a catch-all integration.
- Name
No match- Type
- routing fallback
- Description
For a generic OTP send, if no active integration covers the destination, Akedly sends the OTP SMS through its own providers. A utility SMS gets no such Akedly SMS fallback: its SMS leg has no route (though a utility that also allows WhatsApp can still deliver over WhatsApp). This fallback covers the no coverage case only. Two different things can go wrong on an integration that does cover the destination, and they behave oppositely. A managed Vodafone integration that has not passed its readiness gate is blocked before dispatch: nothing is sent and the OTP does not fall back to Akedly's own providers. A generic integration routes normally, and if its request chain then fails, what happens is the integration's own If your API fails choice — which defaults to falling back to Akedly. See When your provider fails below.
See Enable on pipelines & cloning for the pipeline controls, effective-routing preview, and cloning rules.
When your provider fails
For generic OTP sends, the integration's If your API fails choice controls what happens when its request chain fails.
- Name
Fall back to Akedly's SMS (recommended)- Type
- failure behavior
- Description
The default — Akedly sends the SMS through its own providers, billing at Akedly's normal SMS rates, not the flat Own SMS fee.
- Name
Strict- Type
- failure behavior
- Description
For a handled request-chain failure, Akedly never sends the SMS itself; the attempt fails and the pipeline's normal channel fallback continues.
Fallback follows the selected mode
If processing fails outside a normal chain outcome on a generic integration, handling returns control to Akedly's normal SMS path rather than confirming a BYO delivery.
Utility SMS is always strict
One-way utility SMS sends only through your integration. The If your API fails choice is ignored: if Akedly determines that the provider did not accept the submission, the utility send fails and nothing is billed. If the provider outcome cannot be determined after dispatch, Akedly keeps the transaction in reconciliation and may bill it once the outcome is resolved. Utility SMS never falls back to Akedly's own providers.
The request chain must use HTTPS, resolve only to public addresses, follow no redirects, finish within 5 seconds, and keep each response at or below 64 KB. See Build an integration for the full limits.
Billing
Own SMS fee
Akedly charges a flat Own SMS platform fee only after a successful OTP verification — not per message, per attempt, or on failure. The default is 0.05 EGP.
- Name
Fee resolution- Type
- pricing order
- Description
Akedly resolves the fee in order: a per-integration override, then a per-account rate, then the 0.05 EGP default. Akedly sets every override level.
- Name
Your provider's cost is separate- Type
- direct provider billing
- Description
Akedly does not resell the SMS. You pay your SMS provider directly at its rate; Akedly charges the resolved Own SMS fee for a successful BYO verification, or for an accepted BYO utility submission once its billing settles — see the utility row below, since acceptance and payment are not the same moment.
- Name
Fallback billing- Type
- Akedly SMS pricing
- Description
For a generic OTP send, if the request chain fails and Akedly sends the SMS, that message bills at Akedly's normal SMS rate, not the flat Own SMS fee.
- Name
Utility SMS- Type
- accepted-send billing
- Description
The same resolved flat fee applies to one-way utility SMS sent over BYO. Akedly attempts to bill it after the provider accepts the submission because there is no verification step to wait for. A definitive failure before provider acceptance charges nothing; an unresolved provider outcome can remain pending for reconciliation. A utility send never falls back to Akedly's SMS.
- Name
Delivery receipts- Type
- utility SMS
- Description
A BYO utility SMS emits no
message.statuswebhook: the send is final for Akedly once your provider accepts the submission, and that is not a handset-delivery confirmation. Akedly's own legacy Cequens SMS route does still emitdelivered/failedfrom a carrier receipt, but a BYO send never takes that route — see Utility Webhooks.
The fee appears as Own SMS in your cost breakdowns.
Errors you'll see in the dashboard
- Name
Failed activation test- Type
- step diagnostic
- Description
See Test & activate for the failed step, HTTP status, provider response body, redacted and truncated trace data, and transport or timeout details shown by the result.
- Name
Recipient outside coverage- Type
- test validation
- Description
See Test & activate for coverage-scoped testing. The dialog refuses an out-of-coverage number before sending and explains its country and the integration's coverage.
- Name
Activation-test limit reached- Type
- rate limit
- Description
See Test & activate for the generic integration limits and what to do after reaching one.
- Name
Country unavailable for coverage- Type
- routing validation
- Description
If Akedly cannot route a country, the dashboard does not let you add it to the integration's coverage.
- Name
Activation blocked- Type
- status conflict
- Description
See Test & activate and Enable on pipelines & cloning for the two activation checks: a passing test and non-overlapping coverage in the same scope.
- Name
HTTP 200 with an error body- Type
- silent success
- Description
The dashboard's success check is status-only, so a provider error returned inside an accepted status can count as success. See Build an integration for the accepted-status defaults and configuration guidance.
What your Akedly contact controls
These are Akedly-controlled settings you can't change from the dashboard.
- Name
Entitlement- Type
- Akedly-managed account access
- Description
Unlocks BYO SMS for an account on granular pricing. Akedly automatically grants it the first time the account is verified.
- Name
Account default- Type
- Akedly-managed routing default
- Description
Sets the account-wide BYO SMS on/off value that a pipeline's Inherit from account mode follows.
- Name
Egress allowlist- Type
- Akedly-managed domain restriction
- Description
For generic integrations, restricts which provider domains the request chain may call. When set, only allowlisted hosts are reachable. This is separate from the pipeline's recipient allowlist.
- Name
Fee override- Type
- Akedly-managed pricing
- Description
Sets a custom Own SMS fee for the account or a specific integration, replacing the 0.05 EGP default at that level.
What's next / related
- Overview — review the BYO SMS mental model and prerequisites.
- Build an integration — configure coverage, credentials, and the request chain.
- Test & activate — run the activation test and diagnose failures.
- Enable on pipelines & cloning — turn on routing and manage pipeline-specific copies.
