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
- Portal › Developers › API keys: create a live key with limited access and only the
verifypermission (you can also limit it to Okta's IP addresses). - Portal › Verify: copy the id of the app to use (
app_…). - 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). - Save, then use Preview with a test number: it must answer
SUCCESSFUL. Activate the hook.
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
- Channels:
SMS;Voice calluses the voice channel when your account has it. - Language: Okta's
localewhen 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"}]}]}