Download OpenAPI specification:Download
APIs to manage cross-device flow for WebAuthn registration and authentication.
Starts a WebAuthn registration process on a secondary device, and returns a challenge for the client to sign. If successful, the response will contain a credential_creation_options
field that should be passed in the WebAuthn navigator.credentials.create()
API call.
Note: Some fields (user.id
and challenge
) in the credential_creation_options
object are base64 encoded and must first be decoded and converted to an array buffer. It is recommended to use the webauthn-json library that handles this.
{- "cross_device_ticket_id": "string"
}
{- "webauthn_session_id": "string",
- "credential_creation_options": {
- "attestation": "none",
- "authenticatorSelection": {
- "authenticatorAttachment": "platform",
- "requireResidentKey": true,
- "residentKey": { },
- "userVerification": "preferred"
}, - "extensions": {
- "appid": "string",
- "credProps": true,
- "hmacCreateSecret": true
}, - "excludeCredentials": [
- "string"
], - "pubKeyCredParams": [
- {
- "alg": 0,
- "type": "public-key"
}
], - "timeout": 0,
- "challenge": "string",
- "user": {
- "id": "string",
- "name": "string",
- "displayName": "string"
}, - "rp": {
- "id": "string",
- "name": "string",
- "icon": "string"
}
}
}
Initializes a flow that will register WebAuthn credentials using a secondary device. Requested by the access device (e.g., desktop) and requires a logged-in user. Returns cross_device_ticket_id
, which should be passed to the biometric device to start the device registration, such as by encoding it in a QR code.
{- "username": "string"
}
{- "cross_device_ticket_id": "string"
}
Initializes a flow that will register WebAuthn credentials using a secondary device. Requested by the access device (e.g., desktop) for a user that isn't logged in via Transmit (e.g., after password login via an external identity provider). Returns cross_device_ticket_id
, which should be passed to the biometric device to start the device registration, such as by encoding it in a QR code.
{- "external_user_id": "string",
- "username": "string"
}
{- "cross_device_ticket_id": "string"
}
Completes WebAuthn credential registration for the user on a secondary device. For a logged-in registration flow, the user is derived from the access token. For a logged-out registration flow, the user corresponds to the requested external user ID. If no user is found, a new user will be created.
webauthn_encoded_result required | string WebAuthn attestation data returned by the browser upon credential creation, which must be converted from array buffer to a base64 string. If webauthn-json |
Registered credential details
{- "webauthn_encoded_result": "string"
}
{- "webauthn_session_id": "string",
- "user_id": "string",
- "webauthn_username": "string",
- "credential_id": "string",
- "authenticator_attachment": "platform",
- "external_user_id": "string",
- "is_user_created": true
}
Terminates the cross-device flow from the auth device, and updates the status to aborted
.
{- "cross_device_ticket_id": "string"
}
{- "error_code": "invalid_request",
- "message": "Invalid request: property should not be null or undefined"
}
Indicates that the auth device has engaged in the flow, such as when the user scans a QR encoding the cross-device ticket ID. This updates the flow status to scanned
.
{- "cross_device_ticket_id": "string"
}
{- "status": "pending",
- "started_at": "string",
- "approval_data": {
- "transaction_id": "eFII2y40uB9hQ98nXt3tc1IHkRt8GrRZiqZuRn_59wT",
- "sum": "200"
}
}
Initializes a flow that will authenticate WebAuthn credentials using a secondary device. Requested by the access device (e.g., desktop) before delegating authentication to another device. Returns a cross-device ticket ID that should be passed to the biometric device to start the authentication (e.g., by encoding it in a QR code).
{- "client_id": "string",
- "username": "string",
- "approval_data": {
- "transaction_id": "eFII2y40uB9hQ98nXt3tc1IHkRt8GrRZiqZuRn_59wT",
- "sum": "200"
}
}
{- "cross_device_ticket_id": "string"
}
Start a WebAuthn authentication process using a secondary device. If successful, the response will contain a credential_request_options
field that should be passed in the WebAuthn navigator.credentials.get()
API call.
Note: Some fields (challenge
and each id
in the allowCredentials
list) in the credential_request_options
object are base64 encoded and must first be decoded and converted to array buffer. It is recommended to use the webauthn-json library that handles this.
{- "cross_device_ticket_id": "string"
}
{- "webauthn_session_id": "string",
- "credential_request_options": {
- "allowCredentials": [
- {
- "type": "public-key",
- "id": "string",
- "transports": [
- "internal"
]
}
], - "rawChallenge": "string",
- "challenge": "string",
- "timeout": 0,
- "rpId": "string",
- "attestation": "none",
- "userVerification": "preferred",
- "extensions": { }
}
}