---
title: "Generate Registration Options"
method: POST
path: "/user-authenticators/passkey/registration-options"
tags: ["Passkeys"]
---

# Generate Registration Options

`POST /user-authenticators/passkey/registration-options`

Generate options to register a new passkey.

## Request body

- object
  - `username` string — The username which uniquely identifies the user, e.g. email address. Will be inferred from an existing user identifier if not passed.
  - `displayName` string — An additional identifier which will be displayed to the user to help them recognize the passkey.
  - `authenticatorAttachment` 'platform' | 'cross-platform', nullable — The preferred authenticator type. Set to `platform` for the device authenticator, `cross-platform` for a roaming authenticator, or `null` to let the user choose.
  - `securePaymentConfirmation` boolean — Register a Secure Payment Confirmation (SPC) credential for use in 3-D Secure payments. When true, Authsignal forces a platform authenticator with required user verification and the WebAuthn `payment` extension, and marks the stored credential payment-capable.
  - `instrumentDisplayName` string — An optional payment instrument label (e.g. "Visa ••1234") persisted against an SPC credential and shown in future payment dialogs. Only applies when `securePaymentConfirmation` is true.

## Response `200`

OK

- object
  - `challengeId` string, required — The ID of the passkey challenge. Should be passed back to the complete the registration.
  - `options` object, required — The options for public key credential creation, based on https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson.

## Other responses

- `400` — Invalid Request
- `401` — Unauthorized
- `404` — Not Found

---

[API](https://skmtc.dev/authsignal/apis/call-connect-api.md) · [All operations](https://skmtc.dev/authsignal/apis/call-connect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/authsignal/call-connect-api/revisions/5604d744e3ad/schema)
