# Okta

Okta sends its one-time codes (phone enrollment and verification, SMS MFA) through our platform with a **Telephony Inline Hook**: no code to write. Okta makes and checks the code; we deliver it with your Verify app (sender, template, language and fraud protection) and it appears on your Verify page tagged `okta`.

## Set up {#setup}

1. Portal › Developers › API keys: create a **live** key with limited access and only the `verify` permission (you can also limit it to Okta's IP addresses).
2. Portal › Verify: copy the id of the app to use (`app_…`).
3. Okta Admin Console › Workflow › Inline Hooks › Add Inline Hook › **Telephony**. URL: `https://app.ogave.co/v1/verify/connectors/okta?app_id=app_…`. Authentication field: `Authorization`; Authentication secret: `Bearer live_…` (your key).
4. Save, then use **Preview** with a test number: it must answer `SUCCESSFUL`. Activate the hook.

## Responses {#responses}

Success: `commands[0].value[0].status = "SUCCESSFUL"` with `transactionId` = the verification id (`ver_…`). When we cannot send (premium number, new country over its limit, rate limits, balance…) we answer `200` with an `error` object and Okta falls back to its own provider. Without a key or without the `verify` permission: `401` / `403`.

## Notes {#notes}

- Channels: `SMS`; `Voice call` uses the voice channel when your account has it.
- Language: Okta's `locale` when a template exists in that language, otherwise the app's.
- Okta checks the code: these verifications are not part of the Verify conversion figures or the approval-rate detectors; rate limits, the premium number list and new-country protection do apply.

```
POST https://app.ogave.co/v1/verify/connectors/okta?app_id=app_…
Authorization: Bearer live_…

{"eventType": "com.okta.telephony.provider", "data": {"messageProfile": {"phoneNumber": "+573001234567", "otpCode": "418276",
  "deliveryChannel": "SMS", "locale": "EN-US", "otpExpires": "2026-11-03T16:20:45.000Z"}}}

200 {"commands": [{"type": "com.okta.telephony.action", "value": [{"status": "SUCCESSFUL", "provider": "Ogave SMS",
  "transactionId": "ver_01…", "transactionMetadata": "sms"}]}]}
```
