> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Frequently Asked Questions

> Common questions about the Orbit API and platform

# Frequently Asked Questions

## General

### What is Orbit?

Orbit is Devotel's Agentic Customer Communications Cloud (Agentic CCC) — one platform spanning 9 aaS pillars (CPaaS, CCaaS, UCaaS, AIaaS, NaaS, CSPaaS, RTC PaaS, CXaaS, CDPaaS). It provides APIs for SMS, WhatsApp, RCS, Viber, Email, and Voice — plus AI-native features like autonomous agents, visual flow builders, and intelligent routing.

### What channels does Orbit support?

Orbit supports six communication channels:

* **SMS** — Global coverage in 190+ countries
* **WhatsApp** — Business API with template and session messaging
* **RCS** — Rich messaging on Android devices
* **Viber** — Popular in Eastern Europe and Southeast Asia
* **Email** — Transactional and marketing email
* **Voice** — Outbound/inbound calls, SIP trunking, IVR, and AI voice agents

### Where is Orbit hosted?

Orbit runs on Google Cloud Platform (GKE Autopilot) in the `europe-west1` region (Belgium). Data is stored in Cloud SQL PostgreSQL 16 with at-rest encryption.

***

## Platform Concepts

### What's the difference between UCaaS and CPaaS?

**CPaaS** (Communications Platform as a Service) is a set of APIs — messaging, voice, video — that a developer integrates into their own application to add communication features. **UCaaS** (Unified Communications as a Service) is a finished internal-communications product — browser softphone, SIP trunking, PBX replacement — configured through a dashboard rather than code. Orbit ships both on the same tenant: build with the [CPaaS APIs](/api-reference/overview), or run your team's own phone system on the [UCaaS pillar](https://orbit.devotel.io/features/ucaas).

### What's the difference between an SMS gateway and an SMS API?

An **SMS gateway** is the underlying wire-protocol connection — traditionally an SMPP bind, an on-premises appliance, or a GSM-modem device — that relays messages to a carrier's SMSC. An **SMS API** is the application-layer interface built on top of that gateway; Orbit's is `POST /api/v1/messages/sms` (see [SMS](/channels/sms)). Most integrations call the SMS API and never touch the underlying gateway protocol directly.

***

## Authentication

### How do I get an API key?

1. Sign up at [orbit.devotel.io](https://orbit.devotel.io/signup)
2. Navigate to **Settings > API Keys**
3. Click **Create Key**
4. Copy and securely store the key — it's only shown once

### What's the difference between live and test keys?

| Key Type    | Prefix        | Environment | Real Messages  |
| ----------- | ------------- | ----------- | -------------- |
| Live Secret | `dv_live_sk_` | Production  | Yes            |
| Test Secret | `dv_test_sk_` | Sandbox     | No (simulated) |
| Public      | `dv_live_pk_` | Client-side | Read-only      |

### Are public keys read-only?

Yes. Because a public key (`dv_..._pk_`) is meant to be embedded in client-side code, it is restricted to read-only scopes when you create it. Write and administrative scopes — `messages:write`, `contacts:write`, `admin`, the `*` wildcard, and the sensitive account reads `billing:read` / `settings:read` — are rejected with a `422`.

For anything that sends or modifies data, use a secret key (`dv_..._sk_`) from your backend. Still treat any key you ship to a browser as publicly visible and grant it the minimum reads it needs.

### Can I use the same key across multiple applications?

Yes, but we recommend creating separate keys for each application or service for better security and audit tracing. You can create unlimited API keys.

***

## Messaging

### What phone number format does Orbit use?

All phone numbers must be in E.164 format: `+[country code][number]`. Examples:

* US: `+14155552671`
* UK: `+447911123456`
* Turkey: `+905551234567`

### How are SMS messages billed?

SMS messages are billed per segment:

* **GSM-7 encoding** (standard characters): 160 chars per segment, 153 for multi-part
* **Unicode** (emoji, non-Latin scripts): 70 chars per segment, 67 for multi-part

Each segment counts as one message against your plan or credits.

### What happens if a message fails?

Failed messages can be retried using `POST /api/v1/messages/{id}/retry`. The original message parameters are reused. Orbit also supports automatic retry through campaign settings.

### Do I need 10DLC registration for US SMS?

Yes. All Application-to-Person (A2P) SMS to US numbers requires 10DLC registration through The Campaign Registry. See our [10DLC guide](/guides/10dlc-registration) for step-by-step instructions.

### What is the maximum message size?

| Channel  | Limit                            |
| -------- | -------------------------------- |
| SMS      | 1,600 characters (multi-segment) |
| WhatsApp | 4,096 characters                 |
| RCS      | 4,096 characters                 |
| Email    | 25 MB (including attachments)    |

***

## Voice

### What codecs does Orbit support?

Orbit supports OPUS, PCMU (G.711 mu-law), and PCMA (G.711 A-law). OPUS is recommended for the best quality at lower bandwidth.

### Can I bring my own SIP trunk?

Yes. Connect your existing carrier via SIP trunking. Orbit supports TLS/SRTP encryption and standard SIP authentication. See the [Voice API](/api-reference/voice) documentation.

### How do AI voice agents work?

Orbit's voice agents combine:

1. **STT** (Deepgram Nova-3) — converts caller speech to text
2. **LLM** (Anthropic Claude) — generates a response
3. **TTS** (Cartesia Sonic 3.5) — speaks the response back

The entire round-trip typically completes in under 500ms.

***

## AI Agents

### What LLM models can I use?

Orbit is Anthropic-only for chat and reasoning — agent conversations and text generation run on Anthropic's Claude models. Embeddings are the one exception, generated with OpenAI's `text-embedding-3-large`. Tenants don't connect their own model-provider keys. Supported models:

* `claude-opus-4-7` — top-tier reasoning for complex agents
* `claude-fable-5` — vision-enabled (image and PDF input); the intended platform default, but currently export-suspended and unavailable for completions
* `claude-sonnet-4-6` — balanced quality / cost; the model a new agent is assigned at creation time
* `claude-haiku-4-5-20251001` — low-latency classification + cheap tasks

New agents are created on `claude-sonnet-4-6` unless you select another model — that is the per-agent create-time default, which is distinct from the platform runtime default. `claude-fable-5` is the intended platform runtime default once it returns from export suspension; until then the platform runtime default falls back to `claude-opus-4-7`. You can change an agent's model at any time.

### Can agents use external tools?

Yes. Define custom tools with JSON Schema parameters. The agent will invoke tools during conversations to look up data, take actions, or fetch information from your systems.

### What are guardrails?

Guardrails are rules that validate AI agent outputs before they reach end users. They can enforce:

* No PII exposure
* No profanity or harmful content
* Brand voice consistency
* Factual accuracy checks

***

## Billing

### What pricing model does Orbit use?

Orbit is **pay-as-you-go** with no monthly subscription tiers. You pre-load credits; outbound usage (messages, voice minutes, AI agent invocations) deducts at per-channel rates. There are no Starter, Growth, or Business subscription plans — only PAYG and Enterprise (negotiated rate card).

### What is the Enterprise plan?

Enterprise customers get negotiated per-channel rate cards, volume discounts, dedicated support, SLA guarantees, and a custom contract. Contact [sales@devotel.io](mailto:sales@devotel.io) for details.

### How do prepaid credits work?

Credits are purchased in advance via the dashboard or Stripe Checkout and consumed for messages, voice minutes, and agent invocations. Credits never expire. Enable auto-top-up in **Settings → Billing → Auto top-up** to prevent service interruption.

### Is there a free tier?

There is no permanent free tier. New accounts receive a small trial credit to test the platform. See the [Pricing page](https://orbit.devotel.io/pricing) for current trial credit details.

***

## Webhooks

### How do I verify webhook signatures?

Every webhook includes an `X-Orbit-Signature` header (the canonical HMAC-SHA256 signature). For backwards compatibility, a legacy `X-Devotel-Signature` header is also included. Verify either signature by computing the HMAC of the raw request body using your webhook secret. See the [Webhook Security guide](/webhooks/security) for verification examples and code samples in multiple languages.

### What happens if my webhook endpoint is down?

Orbit retries failed webhook deliveries on a fixed schedule: up to 6 retries at `1m → 5m → 30m → 2h → 8h → 24h` (plus up to 20% jitter), spanning roughly 34.6 hours end-to-end. After all attempts are exhausted, the event is sent to a dead letter queue. You can review failed deliveries in the dashboard. See [Webhook Events](/reference/webhook-events) for the full retry semantics.

### Can I subscribe to specific event types?

Yes. When creating a webhook, specify the events you want to receive:

```json theme={null}
{ "events": ["message.delivered", "message.failed", "call.completed"] }
```

Use `["*"]` to subscribe to all events.

***

## SDKs

### Which SDKs are available?

| Language                      | Package                  | Status                      |
| ----------------------------- | ------------------------ | --------------------------- |
| Node.js / TypeScript (server) | `@devotel/orbit-sdk`     | GA                          |
| Browser / web (client)        | `@devotel/orbit-web-sdk` | GA                          |
| Python                        | `devotel-orbit-sdk`      | Roadmap — not yet published |

Only the Node and Web SDKs are available today. Python, Go, Java, PHP, Ruby, and .NET are on the roadmap and have not been published to any package registry — `pip install devotel-orbit-sdk` and the other install commands do not work yet. Until each ships, call the REST API directly — `curl`, `fetch`, `httpx`, or any HTTP client works.

### Do I need an SDK to use Orbit?

No. The Orbit API is a standard REST API. The Node SDK + Web SDK are convenience wrappers; the same endpoints are reachable from any HTTP client.

***

## Support

### How do I contact support?

* **Email:** [support@devotel.io](mailto:support@devotel.io)
* **Dashboard:** In-app chat via the help widget
* **Enterprise:** Dedicated Slack channel and account manager

### Where can I check service status?

Visit [status.orbit.devotel.io](https://status.orbit.devotel.io) for real-time platform status, incident history, and maintenance schedules.

### How do I report a security vulnerability?

Email [security@devotel.io](mailto:security@devotel.io). We respond within 24 hours and follow responsible disclosure practices.
