POST
/
webauthn
/
registration
/
finalize
Finalize WebAuthn registration
curl --request POST \
  --url https://{tenant_id}.hanko.io/webauthn/registration/finalize \
  --header 'Content-Type: application/json' \
  --data '{
  "id": "_18q6IjW09tiM4NSbsZjocUtGx00Muv5mN6LZCelCMDD...",
  "rawId": "_18q6IjW09tiM4NSbsZjocUtGx00Muv5mN6LZCelCMDD...",
  "type": "public-key",
  "response": {
    "clientDataJson": "eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdl...",
    "attestationObject": "o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVjfSZYN...",
    "transports": [
      "internal"
    ]
  }
}'
{
  "user_id": "c339547d-e17d-4ba7-8a1d-b3d5a4d17c1c"
}
Deprecated. Please use the Flow API instead. What’s the Flow API?.
Finalize a registration with Webauthn using the WebAuthn API response to a navigator.credentials.create() call.
The Webauthn API uses binary data represented by ArrayBuffers for certain input/output values. The Hanko API returns these values as base64url-encoded, so they must be converted to ArrayBuffers when passed to the Webauthn API. Similarly, Webauthn API output must be converted to base64url-encoded values when passed to the Hanko API (e.g. using the webauthn-json library).

Authorizations

hanko
string
cookie
required

Body

application/json

Challenge response

WebAuthn API response to a navigator.credentials.create() call

Response

200
application/json

Successful registration

The response is of type object.