Skip to main content

Verify Push API

Verify Push endpoints exposed by the Devotel CPaaS API Base path: /api/v1/verify/push Endpoint count: 4

Verify a push challenge signature

POST /api/v1/verify/push/challenges/{challengeId}/verify
Verify the device’s signature over the challenge’s signing string. On match: challenge moves to approved, factor flips to verified. On mismatch: attempts increment; auto-denied at maxAttempts.
string
required
string
required
The device’s base64-encoded signature over the challenge signing string factorId.challengeId.nonce (1–4096 characters).

Register a push factor

POST /api/v1/verify/push/factors
Register a device’s public key for phishing-resistant MFA. Returns a binding challenge the device must sign to activate the factor.
string
required
Stable identifier for the end user this device belongs to — your user id, email, or username (1–255 characters).
string
required
Human-readable label for the paired device, shown when the user reviews their registered factors (1–120 characters).
string (enum: ed25519|ecdsa-p256)
required
Signature algorithm of the device key pair — ed25519 or ecdsa-p256.
string
required
The device’s base64-encoded public key. The matching private key never leaves the device; it signs each challenge (1–4096 characters).
string (enum: raw|spki)
required
Encoding of publicKeyraw for a bare key or spki for a SubjectPublicKeyInfo-wrapped key.
string
Optional push-token id (FCM, APNs, or Web Push) the service uses to deliver challenge notifications to this device (1–120 characters).
object
Optional free-form key/value bag — device model, OS version, attestation chain. The caller defines the contract.

Issue a push challenge

POST /api/v1/verify/push/factors/{factorId}/challenges
Mint a server-issued nonce + persist a pending challenge row. The device signs <factorId>.<challengeId>.<nonce> and submits the signature via /verify/push/challenges/:challengeId/verify.
string
required
string
Human-readable prompt shown in the push notification so the user knows what they are approving, e.g. the action or device (1–280 characters).
integer
Lifetime of the issued challenge, in seconds, before it expires. Defaults to 120; range 30–600.

Revoke a push factor

POST /api/v1/verify/push/factors/{factorId}/revoke
Mark a factor as revoked. All subsequent challenges are rejected with a 409 + reason=FACTOR_REVOKED. Irreversible.
string
required