Skip to content
Download Beeper

Verifications

Manage device verification transactions

List active verifications
client.app.verifications.list(RequestOptionsoptions?): VerificationListResponse { items }
GET/v1/app/setup/verifications
Start device verification
client.app.verifications.create(VerificationCreateParams { purpose, userID } body?, RequestOptionsoptions?): VerificationCreateResponse { session, verification }
POST/v1/app/setup/verifications
Get verification
client.app.verifications.retrieve(stringverificationID, RequestOptionsoptions?): VerificationRetrieveResponse { session, verification }
GET/v1/app/setup/verifications/{verificationID}
Accept device verification
client.app.verifications.accept(stringverificationID, RequestOptionsoptions?): VerificationAcceptResponse { session, verification }
POST/v1/app/setup/verifications/{verificationID}/accept
Cancel device verification
client.app.verifications.cancel(stringverificationID, VerificationCancelParams { code, reason } body?, RequestOptionsoptions?): VerificationCancelResponse { session, verification }
POST/v1/app/setup/verifications/{verificationID}/cancel
ModelsExpand Collapse
VerificationListResponse { items }
items: Array<Item>
id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

VerificationCreateResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

VerificationRetrieveResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

VerificationAcceptResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

VerificationCancelResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

VerificationsQr

First-party sign-in and encrypted messaging setup for Beeper Desktop and Beeper Server.

Scan verification QR code
client.app.verifications.qr.scan(QrScanParams { data } body, RequestOptionsoptions?): QrScanResponse { session, verification }
POST/v1/app/setup/verifications/qr/scan
Confirm QR code scan
client.app.verifications.qr.confirmScanned(stringverificationID, RequestOptionsoptions?): QrConfirmScannedResponse { session, verification }
POST/v1/app/setup/verifications/{verificationID}/qr/confirm-scanned
ModelsExpand Collapse
QrScanResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

QrConfirmScannedResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

VerificationsSAS

First-party sign-in and encrypted messaging setup for Beeper Desktop and Beeper Server.

Start emoji verification
client.app.verifications.sas.start(stringverificationID, RequestOptionsoptions?): SASStartResponse { session, verification }
POST/v1/app/setup/verifications/{verificationID}/sas/start
Confirm emoji verification
client.app.verifications.sas.confirm(stringverificationID, RequestOptionsoptions?): SASConfirmResponse { session, verification }
POST/v1/app/setup/verifications/{verificationID}/sas/confirm
ModelsExpand Collapse
SASStartResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

SASConfirmResponse { session, verification }
session: Session { e2ee, state, matrix, verification }

Current app sign-in and encrypted messaging setup state.

e2ee: E2EE { crossSigning, firstSyncDone, hasBackedUpRecoveryKey, 6 more }

Encrypted messaging setup status.

crossSigning: boolean

Whether this account can verify trusted devices.

firstSyncDone: boolean

Whether the first encrypted message sync is complete.

hasBackedUpRecoveryKey: boolean

Whether the user confirmed that they saved their recovery key.

initialized: boolean

Whether encrypted messaging setup has started.

keyBackup: boolean

Whether encrypted message backup is available.

secrets: Secrets { masterKey, megolmBackupKey, recoveryKey, 2 more }

Encrypted messaging keys available on this device.

masterKey: boolean

Whether the account identity key is available.

megolmBackupKey: boolean

Whether the encrypted message backup key is available.

recoveryKey: boolean

Whether a recovery key is available.

selfSigningKey: boolean

Whether the device trust key is available.

userSigningKey: boolean

Whether the user trust key is available.

secretStorage: boolean

Whether secure key storage is available.

verified: boolean

Whether this device is trusted for encrypted messages.

recoveryKeyGeneratedAt?: number

Unix timestamp for when the recovery key was created.

state: "needs-login" | "initializing" | "needs-cross-signing-setup" | 4 more

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
"needs-login"
"initializing"
"needs-cross-signing-setup"
"needs-verification"
"needs-secrets"
"needs-first-sync"
"ready"
matrix?: Matrix { deviceID, homeserver, userID }

Signed-in account details. Omitted until sign-in is complete.

deviceID: string

Current device ID.

homeserver: string

Beeper homeserver URL for this account.

userID: string

Signed-in Beeper user ID.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.

verification?: Verification { id, availableActions, direction, 8 more }

Trusted device verification progress.

id: string

Verification ID to pass in verification action paths.

availableActions: Array<"accept" | "cancel" | "qr.confirmScanned" | 2 more>

Verification actions that are valid for the current state.

One of the following:
"accept"
"cancel"
"qr.confirmScanned"
"sas.start"
"sas.confirm"
direction: "incoming" | "outgoing"

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: Array<"qr" | "sas">

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: "login" | "device"

Why this verification exists.

One of the following:
"login"
"device"
state: "requested" | "ready" | "sas_ready" | 4 more

Current trusted-device verification state.

One of the following:
"requested"
"ready"
"sas_ready"
"qr_scanned"
"done"
"cancelled"
"error"
error?: Error { code, reason }

Verification error details, if verification stopped.

code: string

Verification error code.

reason: string

User-facing verification error message.

otherDevice?: OtherDevice { id, name }

Other device participating in verification.

id: string

Other device ID.

name?: string

Other device display name, if known.

otherUserID?: string

Other Beeper user participating in verification.

qr?: Qr { data }

QR verification data.

data: string

QR code payload to display for verification.

sas?: SAS { emojis, decimals }

Emoji or number comparison data for verification.

emojis: string

Emoji sequence to compare on both devices.

decimals?: string

Number sequence to compare on both devices.