Getting started
Integration types
When you create a new app the very first thing you'll choose is the integration type. Everything else flows from this decision.
Embedded
Your app is shipped into okta-web as code and runs in the same process.
| Hosted by | Okta |
| UI | Livewire/Blade rendered inside the tenant dashboard |
| Communication | In-process calls into App\Services\PartnerApi\* |
| Repository | Dedicated GitHub repo with ready-made boilerplate |
| Pro | Seamless tenant UX, low latency |
| Con | Strict isolation rules — must go through PartnerApi |
External
Your app is hosted by you and talks to Okta exclusively over HTTP.
| Hosted by | You |
| UI | Yours (web/mobile/server-only) |
| Communication | REST API + signed webhooks |
| Repository | None — no source code lives at Okta |
| Pro | Full freedom over your stack |
| Con | You manage hosting, secrets, webhook security |
Notification (provider)
A pluggable notification provider (WhatsApp / SMS / Push / Slack / ...)
that the platform consumes through one unified send(recipient, message)
interface, regardless of the underlying transport.
| Hosted by | You (api), Okta (embedded), or both (hybrid) |
| UI | None — server-only app invoked by the rest of the platform |
| Communication | Single unified call from the platform per recipient |
| Pro | Adds a new channel (e.g. WhatsApp Cloud, Twilio) without core changes |
| Con | The platform owns the contract — you can't extend it on your own |
Three delivery modes:
api— OktaPOSTs to your endpoint with HMAC.embedded— you ship a class inside okta-web that implementsPartnerNotificationProvider.hybrid— embedded as the primary, falls back to api on failure.
Rule of thumb: Pick Embedded for features that should feel like part of Okta (e.g. a custom reports tab). Pick External when you need an independent service (e.g. linking Okta to a system you already operate). Pick Notification when you only want to add a delivery channel — no UI, no workflow, just a way for the rest of the platform to reach users on a new medium.
Payment (provider)
A payment gateway/method (Tabby / Tamara / Noon Payments / ...) a tenant
installs once, after which any other app charges through it via a uniform
charge(...) contract. Shaped like a notification provider, but the verb is
collecting money rather than sending messages. Same three delivery modes:
api / embedded / hybrid. Consuming this contract (charging from
another app) is available exclusively to Embedded apps — see
Consuming payments from your
app. Full details in
Payment apps.