/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { v3V3ChallengeRequest } from "../funcs/v3V3ChallengeRequest.js"; import { v3V3CompleteRequest } from "../funcs/v3V3CompleteRequest.js"; import { v3V3DeviceRevokeRequest } from "../funcs/v3V3DeviceRevokeRequest.js"; import { v3V3StartRequest } from "../funcs/v3V3StartRequest.js"; import { v3V3TokenRequest } from "../funcs/v3V3TokenRequest.js"; import { v3V3UnifyBindRequest } from "../funcs/v3V3UnifyBindRequest.js"; import { v3V3UnifyRequest } from "../funcs/v3V3UnifyRequest.js"; import { v3V3UnifyStatusRequest } from "../funcs/v3V3UnifyStatusRequest.js"; import { v3V3ValidateRequest } from "../funcs/v3V3ValidateRequest.js"; import { v3V3VerifyRequest } from "../funcs/v3V3VerifyRequest.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class V3 extends ClientSDK { /** * Request OAuth Token * * @remarks * This endpoint allows you to request an OAuth token. */ async v3TokenRequest( request?: components.V3TokenRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3TokenRequest( this, request, options, )); } /** * Submit Challenge * * @remarks * This endpoint allows you to submit challenge information. */ async v3ChallengeRequest( request?: components.V3ChallengeRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3ChallengeRequest( this, request, options, )); } /** * Complete Flow * * @remarks * This endpoint allows you to verify the user and complete the flow. */ async v3CompleteRequest( request?: components.V3CompleteRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3CompleteRequest( this, request, options, )); } /** * Revoke Device * * @remarks * This endpoint allows you to revoke a Prove Key device, marking it as inactive * so it can no longer be used in an auth flow. */ async v3DeviceRevokeRequest( request?: components.V3DeviceRevokeRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3DeviceRevokeRequest( this, request, options, )); } /** * Start Flow * * @remarks * This endpoint allows you to start the solution flow. */ async v3StartRequest( request?: components.V3StartRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3StartRequest( this, request, options, )); } /** * Initiate Possession Check * * @remarks * This endpoint allows you to initiate the possession check. */ async v3UnifyRequest( request?: components.V3UnifyRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3UnifyRequest( this, request, options, )); } /** * Bind Prove Key * * @remarks * This endpoint allows you to bind a Prove Key to a phone number of a Unify session and get the possession result. */ async v3UnifyBindRequest( request?: components.V3UnifyBindRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3UnifyBindRequest( this, request, options, )); } /** * Check Status * * @remarks * This endpoint allows you to check the status of a Unify session and get the possession result. */ async v3UnifyStatusRequest( request?: components.V3UnifyStatusRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3UnifyStatusRequest( this, request, options, )); } /** * Validate Phone Number * * @remarks * This endpoint allows you to check if the phone number entered/discovered earlier in the flow is validated. */ async v3ValidateRequest( request?: components.V3ValidateRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3ValidateRequest( this, request, options, )); } /** * Verify * * @remarks * Runs Prove verification flows in one endpoint. Set `verificationType` in the request body to select the flow. * * ## Pre-fill for consumers (identity) * * Use `verificationType` = `prefill` for consumer identity pre-fill. Requires the appropriate pre-fill product on the token. * Response fields vary by flow; for pre-fill, `identity` may include name, contact, address, and assurance fields, and * `evaluation` may include `authentication`, `identification`, and `risk` objects with a `result` (for example `pass` or `fail`). * Evaluation is omitted from the response when `evaluation.includeEvaluation` is not enabled. * * Illustrative **200** response body for this flow (values are synthetic, not real data): * * { * "correlationId": "11111111-2222-3333-4444-555555555555", * "phoneNumber": "+15555550123", * "proveId": "22222222-3333-4444-5555-666666666666", * "provePhoneAlias": "SYNTHPFA00000000000000000000000000000000000000000000000000000001", * "clientRequestId": "client-synthetic-prefill-001", * "identity": { * "firstName": "Sample", * "lastName": "Person", * "dateOfBirth": "1990-06-15", * "nationalId": "900-00-0000", * "emails": [ * "sample.person@example.invalid", * "s.person@example.invalid" * ], * "addresses": [ * { * "address": "100 Synthetic St", * "extendedAddress": "Unit 1", * "city": "Exampletown", * "region": "EX", * "zipCode": "00001" * }, * { * "address": "200 Placeholder Rd", * "extendedAddress": "", * "city": "Demo City", * "region": "DM", * "zipCode": "00002" * } * ], * "assuranceLevel": "AL3", * "reasons": ["AL3a"] * }, * "evaluation": { * "authentication": { "result": "pass" }, * "identification": { "result": "pass" }, * "risk": { "result": "pass" } * } * } */ async v3VerifyRequest( request?: components.V3VerifyRequest | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(v3V3VerifyRequest( this, request, options, )); } }