---
title: supertokens-node/recipe/webauthn
description: References documentation for the supertokens-node/recipe/webauthn package
sidebar:
  order: 90
---

## Classes

### default

Defined in: [recipe/webauthn/index.ts:33](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L33)

#### Constructors

##### Constructor

```ts check=false reason="Generated API signature"
new default(): default;
```

###### Returns

[`default`](#default)

#### Properties

| Property | Modifier | Type | Default value | Defined in |
| ------ | ------ | ------ | ------ | ------ |
| <a id="member-default-error"></a> `Error` | `static` | *typeof* `default` | `SuperTokensError` | [recipe/webauthn/index.ts:36](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L36) |
| <a id="member-default-init"></a> `init` | `static` | (`config?`) => [`RecipeListFunction`](types#recipelistfunction) | `Recipe.init` | [recipe/webauthn/index.ts:34](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L34) |

#### Methods

##### consumeRecoverAccountToken()

```ts check=false reason="Generated API signature"
static consumeRecoverAccountToken(input): Promise<
  | {
  email: string;
  status: "OK";
  userId: string;
}
| ConsumeRecoverAccountTokenErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:191](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L191)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `token`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.tenantId` | `string` |
| `input.token` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

###### Returns

`Promise`\<
  \| \{
  `email`: `string`;
  `status`: `"OK"`;
  `userId`: `string`;
\}
  \| `ConsumeRecoverAccountTokenErrorResponse`\>

##### createRecoverAccountLink()

```ts check=false reason="Generated API signature"
static createRecoverAccountLink(__namedParameters): Promise<
  | GenerateRecoverAccountTokenErrorResponse
  | {
  link: string;
  status: string;
}>;
```

Defined in: [recipe/webauthn/index.ts:210](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L210)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | \{ `email`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `userId`: `string`; \} |
| `__namedParameters.email` | `string` |
| `__namedParameters.tenantId` | `string` |
| `__namedParameters.userContext?` | `Record`\<`string`, `any`\> |
| `__namedParameters.userId` | `string` |

###### Returns

`Promise`\<
  \| `GenerateRecoverAccountTokenErrorResponse`
  \| \{
  `link`: `string`;
  `status`: `string`;
\}\>

##### generateRecoverAccountToken()

```ts check=false reason="Generated API signature"
static generateRecoverAccountToken(input): Promise<
  | {
  status: "OK";
  token: string;
}
| GenerateRecoverAccountTokenErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:150](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L150)

We do not make email optional here because we want to
allow passing in primaryUserId. If we make email optional,
and if the user provides a primaryUserId, then it may result in two problems:
 - there is no recipeUserId = input primaryUserId, in this case,
   this function will throw an error
 - There is a recipe userId = input primaryUserId, but that recipe has no email,
   or has wrong email compared to what the user wanted to generate a reset token for.

And we want to allow primaryUserId being passed in.

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `email`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `userId`: `string`; \} |
| `input.email` | `string` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.userId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
  `token`: `string`;
\}
  \| `GenerateRecoverAccountTokenErrorResponse`\>

##### getCredential()

```ts check=false reason="Generated API signature"
static getCredential(input): Promise<
  | {
  createdAt: number;
  recipeUserId: RecipeUserId;
  relyingPartyId: string;
  status: "OK";
  webauthnCredentialId: string;
}
| GetCredentialErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:322](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L322)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnCredentialId`: `string`; \} |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnCredentialId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `createdAt`: `number`;
  `recipeUserId`: [`RecipeUserId`](index#recipeuserid-1);
  `relyingPartyId`: `string`;
  `status`: `"OK"`;
  `webauthnCredentialId`: `string`;
\}
  \| `GetCredentialErrorResponse`\>

##### getGeneratedOptions()

```ts check=false reason="Generated API signature"
static getGeneratedOptions(input): Promise<
  | {
  challenge: string;
  createdAt: number;
  email?: string;
  expiresAt: number;
  origin: string;
  relyingPartyId: string;
  relyingPartyName: string;
  status: "OK";
  timeout: number;
  userPresence: boolean;
  userVerification: UserVerification;
  webauthnGeneratedOptionsId: string;
}
| GetGeneratedOptionsErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:83](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L83)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `challenge`: `string`;
  `createdAt`: `number`;
  `email?`: `string`;
  `expiresAt`: `number`;
  `origin`: `string`;
  `relyingPartyId`: `string`;
  `relyingPartyName`: `string`;
  `status`: `"OK"`;
  `timeout`: `number`;
  `userPresence`: `boolean`;
  `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification);
  `webauthnGeneratedOptionsId`: `string`;
\}
  \| `GetGeneratedOptionsErrorResponse`\>

##### getUserFromRecoverAccountToken()

```ts check=false reason="Generated API signature"
static getUserFromRecoverAccountToken(input): Promise<
  | {
  recipeUserId?: RecipeUserId;
  status: "OK";
  user: User;
}
| GetUserFromRecoverAccountTokenErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:289](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L289)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `token`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.tenantId` | `string` |
| `input.token` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

###### Returns

`Promise`\<
  \| \{
  `recipeUserId?`: [`RecipeUserId`](index#recipeuserid-1);
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| `GetUserFromRecoverAccountTokenErrorResponse`\>

##### listCredentials()

```ts check=false reason="Generated API signature"
static listCredentials(input): Promise<{
  credentials: object[];
  status: "OK";
}>;
```

Defined in: [recipe/webauthn/index.ts:333](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L333)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

###### Returns

`Promise`\<\{
  `credentials`: `object`[];
  `status`: `"OK"`;
\}\>

##### recoverAccount()

```ts check=false reason="Generated API signature"
static recoverAccount(__namedParameters): Promise<
  | ConsumeRecoverAccountTokenErrorResponse
  | {
  status: "OK";
}
| RegisterCredentialErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:162](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L162)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | \{ `credential`: [`RegistrationPayload`](recipe-webauthn-types#registrationpayload); `tenantId?`: `string`; `token`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `__namedParameters.credential` | [`RegistrationPayload`](recipe-webauthn-types#registrationpayload) |
| `__namedParameters.tenantId?` | `string` |
| `__namedParameters.token` | `string` |
| `__namedParameters.userContext?` | `Record`\<`string`, `any`\> |
| `__namedParameters.webauthnGeneratedOptionsId` | `string` |

###### Returns

`Promise`\<
  \| `ConsumeRecoverAccountTokenErrorResponse`
  \| \{
  `status`: `"OK"`;
\}
  \| `RegisterCredentialErrorResponse`\>

##### registerCredential()

```ts check=false reason="Generated API signature"
static registerCredential(input): Promise<
  | {
  status: "OK";
}
| RegisterCredentialErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:198](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L198)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`RegistrationPayload`](recipe-webauthn-types#registrationpayload); `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`RegistrationPayload`](recipe-webauthn-types#registrationpayload) |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `RegisterCredentialErrorResponse`\>

##### registerOptions()

```ts check=false reason="Generated API signature"
static registerOptions(input): Promise<
  | {
  attestation: Attestation;
  authenticatorSelection: {
     requireResidentKey: boolean;
     residentKey: ResidentKey;
     userVerification: UserVerification;
  };
  challenge: string;
  createdAt: number;
  excludeCredentials: object[];
  expiresAt: number;
  pubKeyCredParams: object[];
  rp: {
     id: string;
     name: string;
  };
  status: "OK";
  timeout: number;
  user: {
     displayName: string;
     id: string;
     name: string;
  };
  webauthnGeneratedOptionsId: string;
}
| RegisterOptionsErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:38](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L38)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | `object` & \| \{ `recoverAccountToken`: `string`; \} \| \{ `displayName`: `string`; `email`: `string`; \} |

###### Returns

`Promise`\<
  \| \{
  `attestation`: [`Attestation`](recipe-webauthn-types#attestation);
  `authenticatorSelection`: \{
     `requireResidentKey`: `boolean`;
     `residentKey`: [`ResidentKey`](recipe-webauthn-types#residentkey);
     `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification);
  \};
  `challenge`: `string`;
  `createdAt`: `number`;
  `excludeCredentials`: `object`[];
  `expiresAt`: `number`;
  `pubKeyCredParams`: `object`[];
  `rp`: \{
     `id`: `string`;
     `name`: `string`;
  \};
  `status`: `"OK"`;
  `timeout`: `number`;
  `user`: \{
     `displayName`: `string`;
     `id`: `string`;
     `name`: `string`;
  \};
  `webauthnGeneratedOptionsId`: `string`;
\}
  \| `RegisterOptionsErrorResponse`\>

##### removeCredential()

```ts check=false reason="Generated API signature"
static removeCredential(input): Promise<
  | {
  status: "OK";
}
| RemoveCredentialErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:311](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L311)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnCredentialId`: `string`; \} |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnCredentialId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `RemoveCredentialErrorResponse`\>

##### removeGeneratedOptions()

```ts check=false reason="Generated API signature"
static removeGeneratedOptions(input): Promise<
  | {
  status: "OK";
}
| RemoveGeneratedOptionsErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:300](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L300)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `RemoveGeneratedOptionsErrorResponse`\>

##### sendEmail()

```ts check=false reason="Generated API signature"
static sendEmail(input): Promise<void>;
```

Defined in: [recipe/webauthn/index.ts:281](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L281)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | [`TypeWebauthnRecoverAccountEmailDeliveryInput`](recipe-webauthn-types#typewebauthnrecoveraccountemaildeliveryinput) & `object` |

###### Returns

`Promise`\<`void`\>

##### sendRecoverAccountEmail()

```ts check=false reason="Generated API signature"
static sendRecoverAccountEmail(__namedParameters): Promise<
  | {
  link: string;
  status: string;
}
  | {
  status: string;
}>;
```

Defined in: [recipe/webauthn/index.ts:240](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L240)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | \{ `email`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `userId`: `string`; \} |
| `__namedParameters.email` | `string` |
| `__namedParameters.tenantId` | `string` |
| `__namedParameters.userContext?` | `Record`\<`string`, `any`\> |
| `__namedParameters.userId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `link`: `string`;
  `status`: `string`;
\}
  \| \{
  `status`: `string`;
\}\>

##### signIn()

```ts check=false reason="Generated API signature"
static signIn(input): Promise<
  | {
  recipeUserId: RecipeUserId;
  status: "OK";
  user: User;
}
| SignInErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:108](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L108)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload); `session`: `SessionContainerInterface`; `shouldTryLinkingWithSessionUser`: `boolean`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload) |
| `input.session` | `SessionContainerInterface` |
| `input.shouldTryLinkingWithSessionUser` | `boolean` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `recipeUserId`: [`RecipeUserId`](index#recipeuserid-1);
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| `SignInErrorResponse`\>

##### signInOptions()

```ts check=false reason="Generated API signature"
static signInOptions(input): Promise<
  | {
  challenge: string;
  createdAt: number;
  expiresAt: number;
  status: "OK";
  timeout: number;
  userVerification: UserVerification;
  webauthnGeneratedOptionsId: string;
}
| SignInOptionsErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:67](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L67)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `origin`: `string`; `relyingPartyId`: `string`; `relyingPartyName`: `string`; `tenantId`: `string`; `timeout`: `number`; `userContext?`: `Record`\<`string`, `any`\>; `userPresence`: `boolean`; `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification); \} |
| `input.origin` | `string` |
| `input.relyingPartyId` | `string` |
| `input.relyingPartyName` | `string` |
| `input.tenantId` | `string` |
| `input.timeout` | `number` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.userPresence` | `boolean` |
| `input.userVerification` | [`UserVerification`](recipe-webauthn-types#userverification) |

###### Returns

`Promise`\<
  \| \{
  `challenge`: `string`;
  `createdAt`: `number`;
  `expiresAt`: `number`;
  `status`: `"OK"`;
  `timeout`: `number`;
  `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification);
  `webauthnGeneratedOptionsId`: `string`;
\}
  \| `SignInOptionsErrorResponse`\>

##### signUp()

```ts check=false reason="Generated API signature"
static signUp(input): Promise<
  | {
  recipeUserId: RecipeUserId;
  status: "OK";
  user: User;
}
| SignUpErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:94](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L94)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`RegistrationPayload`](recipe-webauthn-types#registrationpayload); `session`: `SessionContainerInterface`; `shouldTryLinkingWithSessionUser`: `boolean`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`RegistrationPayload`](recipe-webauthn-types#registrationpayload) |
| `input.session` | `SessionContainerInterface` |
| `input.shouldTryLinkingWithSessionUser` | `boolean` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

###### Returns

`Promise`\<
  \| \{
  `recipeUserId`: [`RecipeUserId`](index#recipeuserid-1);
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| `SignUpErrorResponse`\>

##### updateUserEmail()

```ts check=false reason="Generated API signature"
static updateUserEmail(input): Promise<
  | {
  status: "OK";
}
| UpdateUserEmailErrorResponse>;
```

Defined in: [recipe/webauthn/index.ts:340](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L340)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `email`: `string`; `recipeUserId`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.email` | `string` |
| `input.recipeUserId` | `string` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

###### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `UpdateUserEmailErrorResponse`\>

##### verifyCredentials()

```ts check=false reason="Generated API signature"
static verifyCredentials(input): Promise<{
  status:   | "OK"
     | "UNKNOWN_USER_ID_ERROR"
     | "INVALID_CREDENTIALS_ERROR"
     | "INVALID_OPTIONS_ERROR"
     | "INVALID_AUTHENTICATOR_ERROR"
     | "CREDENTIAL_NOT_FOUND_ERROR"
     | "OPTIONS_NOT_FOUND_ERROR";
}>;
```

Defined in: [recipe/webauthn/index.ts:122](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L122)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload); `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload) |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

###### Returns

`Promise`\<\{
  `status`:   \| `"OK"`
     \| `"UNKNOWN_USER_ID_ERROR"`
     \| `"INVALID_CREDENTIALS_ERROR"`
     \| `"INVALID_OPTIONS_ERROR"`
     \| `"INVALID_AUTHENTICATOR_ERROR"`
     \| `"CREDENTIAL_NOT_FOUND_ERROR"`
     \| `"OPTIONS_NOT_FOUND_ERROR"`;
\}\>

## Variables

### consumeRecoverAccountToken()

```ts check=false reason="Generated API signature"
consumeRecoverAccountToken: (input) => Promise<
  | {
  email: string;
  status: "OK";
  userId: string;
}
  | ConsumeRecoverAccountTokenErrorResponse> = Wrapper.consumeRecoverAccountToken;
```

Defined in: [recipe/webauthn/index.ts:371](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L371)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `token`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.tenantId` | `string` |
| `input.token` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

#### Returns

`Promise`\<
  \| \{
  `email`: `string`;
  `status`: `"OK"`;
  `userId`: `string`;
\}
  \| `ConsumeRecoverAccountTokenErrorResponse`\>

***

### createRecoverAccountLink()

```ts check=false reason="Generated API signature"
createRecoverAccountLink: (__namedParameters) => Promise<
  | GenerateRecoverAccountTokenErrorResponse
  | {
  link: string;
  status: string;
}> = Wrapper.createRecoverAccountLink;
```

Defined in: [recipe/webauthn/index.ts:375](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L375)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | \{ `email`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `userId`: `string`; \} |
| `__namedParameters.email` | `string` |
| `__namedParameters.tenantId` | `string` |
| `__namedParameters.userContext?` | `Record`\<`string`, `any`\> |
| `__namedParameters.userId` | `string` |

#### Returns

`Promise`\<
  \| `GenerateRecoverAccountTokenErrorResponse`
  \| \{
  `link`: `string`;
  `status`: `string`;
\}\>

***

### Error

```ts check=false reason="Generated API signature"
Error: typeof default = Wrapper.Error;
```

Defined in: [recipe/webauthn/index.ts:355](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L355)

***

### generateRecoverAccountToken()

```ts check=false reason="Generated API signature"
generateRecoverAccountToken: (input) => Promise<
  | {
  status: "OK";
  token: string;
}
  | GenerateRecoverAccountTokenErrorResponse> = Wrapper.generateRecoverAccountToken;
```

Defined in: [recipe/webauthn/index.ts:367](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L367)

We do not make email optional here because we want to
allow passing in primaryUserId. If we make email optional,
and if the user provides a primaryUserId, then it may result in two problems:
 - there is no recipeUserId = input primaryUserId, in this case,
   this function will throw an error
 - There is a recipe userId = input primaryUserId, but that recipe has no email,
   or has wrong email compared to what the user wanted to generate a reset token for.

And we want to allow primaryUserId being passed in.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `email`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `userId`: `string`; \} |
| `input.email` | `string` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.userId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
  `token`: `string`;
\}
  \| `GenerateRecoverAccountTokenErrorResponse`\>

***

### getCredential()

```ts check=false reason="Generated API signature"
getCredential: (input) => Promise<
  | {
  createdAt: number;
  recipeUserId: RecipeUserId;
  relyingPartyId: string;
  status: "OK";
  webauthnCredentialId: string;
}
  | GetCredentialErrorResponse> = Wrapper.getCredential;
```

Defined in: [recipe/webauthn/index.ts:389](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L389)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnCredentialId`: `string`; \} |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnCredentialId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `createdAt`: `number`;
  `recipeUserId`: [`RecipeUserId`](index#recipeuserid-1);
  `relyingPartyId`: `string`;
  `status`: `"OK"`;
  `webauthnCredentialId`: `string`;
\}
  \| `GetCredentialErrorResponse`\>

***

### getGeneratedOptions()

```ts check=false reason="Generated API signature"
getGeneratedOptions: (input) => Promise<
  | {
  challenge: string;
  createdAt: number;
  email?: string;
  expiresAt: number;
  origin: string;
  relyingPartyId: string;
  relyingPartyName: string;
  status: "OK";
  timeout: number;
  userPresence: boolean;
  userVerification: UserVerification;
  webauthnGeneratedOptionsId: string;
}
  | GetGeneratedOptionsErrorResponse> = Wrapper.getGeneratedOptions;
```

Defined in: [recipe/webauthn/index.ts:381](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L381)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `challenge`: `string`;
  `createdAt`: `number`;
  `email?`: `string`;
  `expiresAt`: `number`;
  `origin`: `string`;
  `relyingPartyId`: `string`;
  `relyingPartyName`: `string`;
  `status`: `"OK"`;
  `timeout`: `number`;
  `userPresence`: `boolean`;
  `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification);
  `webauthnGeneratedOptionsId`: `string`;
\}
  \| `GetGeneratedOptionsErrorResponse`\>

***

### getUserFromRecoverAccountToken()

```ts check=false reason="Generated API signature"
getUserFromRecoverAccountToken: (input) => Promise<
  | {
  recipeUserId?: RecipeUserId;
  status: "OK";
  user: User;
}
  | GetUserFromRecoverAccountTokenErrorResponse> = Wrapper.getUserFromRecoverAccountToken;
```

Defined in: [recipe/webauthn/index.ts:383](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L383)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `token`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.tenantId` | `string` |
| `input.token` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

#### Returns

`Promise`\<
  \| \{
  `recipeUserId?`: [`RecipeUserId`](index#recipeuserid-1);
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| `GetUserFromRecoverAccountTokenErrorResponse`\>

***

### init()

```ts check=false reason="Generated API signature"
init: (config?) => RecipeListFunction = Wrapper.init;
```

Defined in: [recipe/webauthn/index.ts:353](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L353)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `config?` | [`TypeInput`](recipe-webauthn-types#typeinput) |

#### Returns

[`RecipeListFunction`](types#recipelistfunction)

***

### listCredentials()

```ts check=false reason="Generated API signature"
listCredentials: (input) => Promise<{
  credentials: object[];
  status: "OK";
}> = Wrapper.listCredentials;
```

Defined in: [recipe/webauthn/index.ts:391](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L391)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

#### Returns

`Promise`\<\{
  `credentials`: `object`[];
  `status`: `"OK"`;
\}\>

***

### recoverAccount()

```ts check=false reason="Generated API signature"
recoverAccount: (__namedParameters) => Promise<
  | ConsumeRecoverAccountTokenErrorResponse
  | {
  status: "OK";
}
  | RegisterCredentialErrorResponse> = Wrapper.recoverAccount;
```

Defined in: [recipe/webauthn/index.ts:369](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L369)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | \{ `credential`: [`RegistrationPayload`](recipe-webauthn-types#registrationpayload); `tenantId?`: `string`; `token`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `__namedParameters.credential` | [`RegistrationPayload`](recipe-webauthn-types#registrationpayload) |
| `__namedParameters.tenantId?` | `string` |
| `__namedParameters.token` | `string` |
| `__namedParameters.userContext?` | `Record`\<`string`, `any`\> |
| `__namedParameters.webauthnGeneratedOptionsId` | `string` |

#### Returns

`Promise`\<
  \| `ConsumeRecoverAccountTokenErrorResponse`
  \| \{
  `status`: `"OK"`;
\}
  \| `RegisterCredentialErrorResponse`\>

***

### registerCredential()

```ts check=false reason="Generated API signature"
registerCredential: (input) => Promise<
  | {
  status: "OK";
}
  | RegisterCredentialErrorResponse> = Wrapper.registerCredential;
```

Defined in: [recipe/webauthn/index.ts:373](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L373)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`RegistrationPayload`](recipe-webauthn-types#registrationpayload); `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`RegistrationPayload`](recipe-webauthn-types#registrationpayload) |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `RegisterCredentialErrorResponse`\>

***

### registerOptions()

```ts check=false reason="Generated API signature"
registerOptions: (input) => Promise<
  | {
  attestation: Attestation;
  authenticatorSelection: {
     requireResidentKey: boolean;
     residentKey: ResidentKey;
     userVerification: UserVerification;
  };
  challenge: string;
  createdAt: number;
  excludeCredentials: object[];
  expiresAt: number;
  pubKeyCredParams: object[];
  rp: {
     id: string;
     name: string;
  };
  status: "OK";
  timeout: number;
  user: {
     displayName: string;
     id: string;
     name: string;
  };
  webauthnGeneratedOptionsId: string;
}
  | RegisterOptionsErrorResponse> = Wrapper.registerOptions;
```

Defined in: [recipe/webauthn/index.ts:357](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L357)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | `object` & \| \{ `recoverAccountToken`: `string`; \} \| \{ `displayName`: `string`; `email`: `string`; \} |

#### Returns

`Promise`\<
  \| \{
  `attestation`: [`Attestation`](recipe-webauthn-types#attestation);
  `authenticatorSelection`: \{
     `requireResidentKey`: `boolean`;
     `residentKey`: [`ResidentKey`](recipe-webauthn-types#residentkey);
     `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification);
  \};
  `challenge`: `string`;
  `createdAt`: `number`;
  `excludeCredentials`: `object`[];
  `expiresAt`: `number`;
  `pubKeyCredParams`: `object`[];
  `rp`: \{
     `id`: `string`;
     `name`: `string`;
  \};
  `status`: `"OK"`;
  `timeout`: `number`;
  `user`: \{
     `displayName`: `string`;
     `id`: `string`;
     `name`: `string`;
  \};
  `webauthnGeneratedOptionsId`: `string`;
\}
  \| `RegisterOptionsErrorResponse`\>

***

### removeCredential()

```ts check=false reason="Generated API signature"
removeCredential: (input) => Promise<
  | {
  status: "OK";
}
  | RemoveCredentialErrorResponse> = Wrapper.removeCredential;
```

Defined in: [recipe/webauthn/index.ts:387](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L387)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `recipeUserId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnCredentialId`: `string`; \} |
| `input.recipeUserId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnCredentialId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `RemoveCredentialErrorResponse`\>

***

### removeGeneratedOptions()

```ts check=false reason="Generated API signature"
removeGeneratedOptions: (input) => Promise<
  | {
  status: "OK";
}
  | RemoveGeneratedOptionsErrorResponse> = Wrapper.removeGeneratedOptions;
```

Defined in: [recipe/webauthn/index.ts:385](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L385)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `RemoveGeneratedOptionsErrorResponse`\>

***

### sendEmail()

```ts check=false reason="Generated API signature"
sendEmail: (input) => Promise<void> = Wrapper.sendEmail;
```

Defined in: [recipe/webauthn/index.ts:379](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L379)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | [`TypeWebauthnRecoverAccountEmailDeliveryInput`](recipe-webauthn-types#typewebauthnrecoveraccountemaildeliveryinput) & `object` |

#### Returns

`Promise`\<`void`\>

***

### sendRecoverAccountEmail()

```ts check=false reason="Generated API signature"
sendRecoverAccountEmail: (__namedParameters) => Promise<
  | {
  link: string;
  status: string;
}
  | {
  status: string;
}> = Wrapper.sendRecoverAccountEmail;
```

Defined in: [recipe/webauthn/index.ts:377](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L377)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | \{ `email`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `userId`: `string`; \} |
| `__namedParameters.email` | `string` |
| `__namedParameters.tenantId` | `string` |
| `__namedParameters.userContext?` | `Record`\<`string`, `any`\> |
| `__namedParameters.userId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `link`: `string`;
  `status`: `string`;
\}
  \| \{
  `status`: `string`;
\}\>

***

### signIn()

```ts check=false reason="Generated API signature"
signIn: (input) => Promise<
  | {
  recipeUserId: RecipeUserId;
  status: "OK";
  user: User;
}
  | SignInErrorResponse> = Wrapper.signIn;
```

Defined in: [recipe/webauthn/index.ts:361](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L361)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload); `session`: `SessionContainerInterface`; `shouldTryLinkingWithSessionUser`: `boolean`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload) |
| `input.session` | `SessionContainerInterface` |
| `input.shouldTryLinkingWithSessionUser` | `boolean` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `recipeUserId`: [`RecipeUserId`](index#recipeuserid-1);
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| `SignInErrorResponse`\>

***

### signInOptions()

```ts check=false reason="Generated API signature"
signInOptions: (input) => Promise<
  | {
  challenge: string;
  createdAt: number;
  expiresAt: number;
  status: "OK";
  timeout: number;
  userVerification: UserVerification;
  webauthnGeneratedOptionsId: string;
}
  | SignInOptionsErrorResponse> = Wrapper.signInOptions;
```

Defined in: [recipe/webauthn/index.ts:359](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L359)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `origin`: `string`; `relyingPartyId`: `string`; `relyingPartyName`: `string`; `tenantId`: `string`; `timeout`: `number`; `userContext?`: `Record`\<`string`, `any`\>; `userPresence`: `boolean`; `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification); \} |
| `input.origin` | `string` |
| `input.relyingPartyId` | `string` |
| `input.relyingPartyName` | `string` |
| `input.tenantId` | `string` |
| `input.timeout` | `number` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.userPresence` | `boolean` |
| `input.userVerification` | [`UserVerification`](recipe-webauthn-types#userverification) |

#### Returns

`Promise`\<
  \| \{
  `challenge`: `string`;
  `createdAt`: `number`;
  `expiresAt`: `number`;
  `status`: `"OK"`;
  `timeout`: `number`;
  `userVerification`: [`UserVerification`](recipe-webauthn-types#userverification);
  `webauthnGeneratedOptionsId`: `string`;
\}
  \| `SignInOptionsErrorResponse`\>

***

### signUp()

```ts check=false reason="Generated API signature"
signUp: (input) => Promise<
  | {
  recipeUserId: RecipeUserId;
  status: "OK";
  user: User;
}
  | SignUpErrorResponse> = Wrapper.signUp;
```

Defined in: [recipe/webauthn/index.ts:363](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L363)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`RegistrationPayload`](recipe-webauthn-types#registrationpayload); `session`: `SessionContainerInterface`; `shouldTryLinkingWithSessionUser`: `boolean`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`RegistrationPayload`](recipe-webauthn-types#registrationpayload) |
| `input.session` | `SessionContainerInterface` |
| `input.shouldTryLinkingWithSessionUser` | `boolean` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

#### Returns

`Promise`\<
  \| \{
  `recipeUserId`: [`RecipeUserId`](index#recipeuserid-1);
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| `SignUpErrorResponse`\>

***

### updateUserEmail()

```ts check=false reason="Generated API signature"
updateUserEmail: (input) => Promise<
  | {
  status: "OK";
}
  | UpdateUserEmailErrorResponse> = Wrapper.updateUserEmail;
```

Defined in: [recipe/webauthn/index.ts:393](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L393)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `email`: `string`; `recipeUserId`: `string`; `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; \} |
| `input.email` | `string` |
| `input.recipeUserId` | `string` |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |

#### Returns

`Promise`\<
  \| \{
  `status`: `"OK"`;
\}
  \| `UpdateUserEmailErrorResponse`\>

***

### verifyCredentials()

```ts check=false reason="Generated API signature"
verifyCredentials: (input) => Promise<{
  status:   | "OK"
     | "UNKNOWN_USER_ID_ERROR"
     | "INVALID_CREDENTIALS_ERROR"
     | "INVALID_OPTIONS_ERROR"
     | "INVALID_AUTHENTICATOR_ERROR"
     | "CREDENTIAL_NOT_FOUND_ERROR"
     | "OPTIONS_NOT_FOUND_ERROR";
}> = Wrapper.verifyCredentials;
```

Defined in: [recipe/webauthn/index.ts:365](https://github.com/supertokens/supertokens-node/blob/8353a9a70d8b17dd9ff6ffe41201fa2ef0e60218/lib/ts/recipe/webauthn/index.ts#L365)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `credential`: [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload); `tenantId`: `string`; `userContext?`: `Record`\<`string`, `any`\>; `webauthnGeneratedOptionsId`: `string`; \} |
| `input.credential` | [`AuthenticationPayload`](recipe-webauthn-types#authenticationpayload) |
| `input.tenantId` | `string` |
| `input.userContext?` | `Record`\<`string`, `any`\> |
| `input.webauthnGeneratedOptionsId` | `string` |

#### Returns

`Promise`\<\{
  `status`:   \| `"OK"`
     \| `"UNKNOWN_USER_ID_ERROR"`
     \| `"INVALID_CREDENTIALS_ERROR"`
     \| `"INVALID_OPTIONS_ERROR"`
     \| `"INVALID_AUTHENTICATOR_ERROR"`
     \| `"CREDENTIAL_NOT_FOUND_ERROR"`
     \| `"OPTIONS_NOT_FOUND_ERROR"`;
\}\>

## References

### APIInterface

Re-exports [APIInterface](recipe-webauthn-types#apiinterface)

***

### APIOptions

Re-exports [APIOptions](recipe-webauthn-types#apioptions)

***

### RecipeInterface

Re-exports [RecipeInterface](recipe-webauthn-types#recipeinterface)
