Riskified · Schema
OtpInitiateRequest
Fraud PreventionChargebacksE-CommercePaymentsRisk ManagementMachine LearningAccount TakeoverPolicy Abuse3DPSD2Returns
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier for the order |
| challenge_access_token | string | A unique token generated by the merchant. It is used to validate that the order matches the OTP after a successful OTP verification. This is critical to ensure that users cannot tamper with the OTP ve |
| localization_language | string | The widget localization language. The language codes currently supported: * “en-US” (English US) * “es-ES” (Spanish Spain) * “fr-FR” (French France) Contact your Integration Engineer for instructions |
| contact_details | string | The merchant’s support contact email |
| channel_method | object | OTP channel details |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/riskified/main/json-schema/riskified-otp-initiate-request-schema.json",
"title": "OtpInitiateRequest",
"x-generated": "2026-10-14",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/riskified-otp-recovery-openapi.yml#/components/schemas/OtpInitiateRequest",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the order"
},
"challenge_access_token": {
"type": "string",
"minLength": 32,
"description": "A unique token generated by the merchant. It is used to validate that the order matches the OTP after a successful OTP verification.\nThis is critical to ensure that users cannot tamper with the OTP verification process.\nThe token has to be at least 32 characters long and hard to guess - we recommend on using UUID"
},
"localization_language": {
"type": "string",
"enum": [
"en-US",
"es-ES",
"fr-FR"
],
"description": "The widget localization language.\nThe language codes currently supported:\n* “en-US” (English US)\n* “es-ES” (Spanish Spain)\n* “fr-FR” (French France)\n\n Contact your Integration Engineer for instructions on expanded language support."
},
"contact_details": {
"type": "string",
"description": "The merchant’s support contact email"
},
"channel_method": {
"$ref": "#/$defs/channel_method",
"description": "OTP channel details"
}
},
"required": [
"id",
"challenge_access_token",
"localization_language",
"channel_type",
"sender_name"
],
"$defs": {
"channel_method": {
"type": "object",
"properties": {
"channel_type": {
"type": "string",
"enum": [
"Sms"
],
"description": "The OTP sending medium - currently only 'Sms' (case-sensitive) is available"
},
"sender_name": {
"type": "string",
"description": "The name of the sender (merchant) that will appear in the SMS"
}
},
"required": [
"channel_type",
"sender_name"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/riskified-otp-initiate-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.