v5

OpenAPI 3.1.0Proprietary2026-08-011476181.4 MB
Strong Customer Authentication

Get 2FA reset status

Poll the status of an in-progress 2FA reset until it reaches the liveness-passed value, after which the reset can be completed.

This endpoint is only meaningful for customers in a region where SCA is required (e.g. EU). For customers outside SCA-regulated regions, this returns 409.

get/sca/factors/reset/{resetId}

Response

The current reset status.

status'INITIATED' | 'PENDING_REVIEW' | 'LIVENESS_PASSED' | 'COMPLETED' | 'REJECTED' | 'EXPIRED' required

The reset status. | Value | Terminal | Meaning | |-------|----------|---------| | INITIATED | no | Reset started; liveness not yet submitted. Keep polling. | | PENDING_REVIEW | no | Liveness submitted; under review. Keep polling. | | LIVENESS_PASSED | no | Liveness passed; call the complete endpoint to finish the reset. | | COMPLETED | yes | Reset finished; the lost factor is cleared and re-enrollment can begin. | | REJECTED | yes | Liveness failed. Stop polling; start a new reset. | | EXPIRED | yes | The reset window closed before it completed. Stop polling; start a new reset. | Stop polling on any terminal value.

factor'SMS_OTP' | 'TOTP' | 'PASSKEY' required

A Strong Customer Authentication factor.

FactorDescription
SMS_OTPOne-time code sent by SMS to the customer's verified phone. Requires no prior enrollment.
TOTPTime-based one-time code from an authenticator app. Requires enrollment. Not valid for per-transaction challenges (cannot carry dynamic linking).
PASSKEYWebAuthn passkey assertion. Requires enrollment.
enrollmentStatus'PENDING' | 'COMPLETED' | 'null' nullable

The enrollment status of the replacement factor. PENDING until the customer finishes re-enrolling, then COMPLETED. Null for an SMS_OTP reset, where completing the reset enrolls the new number directly with no separate enrollment step.

expiresAtstring date-time required

When the reset window closes. Poll no longer than this.

completedAtstring date-time nullable

When the reset completed; null until then.

Example response

{
  "status": "INITIATED",
  "enrollmentStatus": "PENDING",
  "expiresAt": "2025-10-03T12:15:00Z"
}