Skip to content
Download Beeper

Verifications

Manage device verification transactions

List active verifications
app.verifications.list() -> VerificationListResponse
GET/v1/app/setup/verifications
Start device verification
app.verifications.create(VerificationCreateParams**kwargs) -> VerificationCreateResponse
POST/v1/app/setup/verifications
Get verification
app.verifications.retrieve(strverification_id) -> VerificationRetrieveResponse
GET/v1/app/setup/verifications/{verificationID}
Accept device verification
app.verifications.accept(strverification_id) -> VerificationAcceptResponse
POST/v1/app/setup/verifications/{verificationID}/accept
Cancel device verification
app.verifications.cancel(strverification_id, VerificationCancelParams**kwargs) -> VerificationCancelResponse
POST/v1/app/setup/verifications/{verificationID}/cancel
ModelsExpand Collapse
class VerificationListResponse:
items: List[Item]
id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[ItemError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[ItemOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[ItemQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[ItemSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

class VerificationCreateResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

class VerificationRetrieveResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

class VerificationAcceptResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

class VerificationCancelResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

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
app.verifications.qr.scan(QrScanParams**kwargs) -> QrScanResponse
POST/v1/app/setup/verifications/qr/scan
Confirm QR code scan
app.verifications.qr.confirm_scanned(strverification_id) -> QrConfirmScannedResponse
POST/v1/app/setup/verifications/{verificationID}/qr/confirm-scanned
ModelsExpand Collapse
class QrScanResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

class QrConfirmScannedResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

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
app.verifications.sas.start(strverification_id) -> SASStartResponse
POST/v1/app/setup/verifications/{verificationID}/sas/start
Confirm emoji verification
app.verifications.sas.confirm(strverification_id) -> SASConfirmResponse
POST/v1/app/setup/verifications/{verificationID}/sas/confirm
ModelsExpand Collapse
class SASStartResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

class SASConfirmResponse:
session: Session

Current app sign-in and encrypted messaging setup state.

e2ee: SessionE2EE

Encrypted messaging setup status.

cross_signing: bool

Whether this account can verify trusted devices.

first_sync_done: bool

Whether the first encrypted message sync is complete.

has_backed_up_recovery_key: bool

Whether the user confirmed that they saved their recovery key.

initialized: bool

Whether encrypted messaging setup has started.

key_backup: bool

Whether encrypted message backup is available.

secrets: SessionE2EESecrets

Encrypted messaging keys available on this device.

master_key: bool

Whether the account identity key is available.

megolm_backup_key: bool

Whether the encrypted message backup key is available.

recovery_key: bool

Whether a recovery key is available.

self_signing_key: bool

Whether the device trust key is available.

user_signing_key: bool

Whether the user trust key is available.

secret_storage: bool

Whether secure key storage is available.

verified: bool

Whether this device is trusted for encrypted messages.

recovery_key_generated_at: Optional[float]

Unix timestamp for when the recovery key was created.

state: Literal["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: Optional[SessionMatrix]

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

device_id: str

Current device ID.

homeserver: str

Beeper homeserver URL for this account.

user_id: str

Signed-in Beeper user ID.

verification: Optional[SessionVerification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[SessionVerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[SessionVerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[SessionVerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[SessionVerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.

verification: Optional[Verification]

Trusted device verification progress.

id: str

Verification ID to pass in verification action paths.

available_actions: List[Literal["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: Literal["incoming", "outgoing"]

Whether this device started or received the verification.

One of the following:
"incoming"
"outgoing"
methods: List[Literal["qr", "sas"]]

Verification methods supported for this transaction.

One of the following:
"qr"
"sas"
purpose: Literal["login", "device"]

Why this verification exists.

One of the following:
"login"
"device"
state: Literal["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: Optional[VerificationError]

Verification error details, if verification stopped.

code: str

Verification error code.

reason: str

User-facing verification error message.

other_device: Optional[VerificationOtherDevice]

Other device participating in verification.

id: str

Other device ID.

name: Optional[str]

Other device display name, if known.

other_user_id: Optional[str]

Other Beeper user participating in verification.

qr: Optional[VerificationQr]

QR verification data.

data: str

QR code payload to display for verification.

sas: Optional[VerificationSAS]

Emoji or number comparison data for verification.

emojis: str

Emoji sequence to compare on both devices.

decimals: Optional[str]

Number sequence to compare on both devices.