Skip to content
Download Beeper

Get verification

client.App.Verifications.Get(ctx, verificationID) (*AppVerificationGetResponse, error)
GET/v1/app/setup/verifications/{verificationID}

Get the current state of a device verification transaction.

ParametersExpand Collapse
verificationID string

Verification ID.

minLength1
ReturnsExpand Collapse
type AppVerificationGetResponse struct{…}
Session AppVerificationGetResponseSession

Current app sign-in and encrypted messaging setup state.

E2EE AppVerificationGetResponseSessionE2EE

Encrypted messaging setup status.

CrossSigning bool

Whether this account can verify trusted devices.

FirstSyncDone bool

Whether the first encrypted message sync is complete.

HasBackedUpRecoveryKey bool

Whether the user confirmed that they saved their recovery key.

Initialized bool

Whether encrypted messaging setup has started.

KeyBackup bool

Whether encrypted message backup is available.

Secrets AppVerificationGetResponseSessionE2EESecrets

Encrypted messaging keys available on this device.

MasterKey bool

Whether the account identity key is available.

MegolmBackupKey bool

Whether the encrypted message backup key is available.

RecoveryKey bool

Whether a recovery key is available.

SelfSigningKey bool

Whether the device trust key is available.

UserSigningKey bool

Whether the user trust key is available.

SecretStorage bool

Whether secure key storage is available.

Verified bool

Whether this device is trusted for encrypted messages.

RecoveryKeyGeneratedAt float64Optional

Unix timestamp for when the recovery key was created.

State string

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

One of the following:
const AppVerificationGetResponseSessionStateNeedsLogin AppVerificationGetResponseSessionState = "needs-login"
const AppVerificationGetResponseSessionStateInitializing AppVerificationGetResponseSessionState = "initializing"
const AppVerificationGetResponseSessionStateNeedsCrossSigningSetup AppVerificationGetResponseSessionState = "needs-cross-signing-setup"
const AppVerificationGetResponseSessionStateNeedsVerification AppVerificationGetResponseSessionState = "needs-verification"
const AppVerificationGetResponseSessionStateNeedsSecrets AppVerificationGetResponseSessionState = "needs-secrets"
const AppVerificationGetResponseSessionStateNeedsFirstSync AppVerificationGetResponseSessionState = "needs-first-sync"
const AppVerificationGetResponseSessionStateReady AppVerificationGetResponseSessionState = "ready"
Matrix AppVerificationGetResponseSessionMatrixOptional

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 AppVerificationGetResponseSessionVerificationOptional

Trusted device verification progress.

ID string

Verification ID to pass in verification action paths.

AvailableActions []string

Verification actions that are valid for the current state.

One of the following:
const AppVerificationGetResponseSessionVerificationAvailableActionAccept AppVerificationGetResponseSessionVerificationAvailableAction = "accept"
const AppVerificationGetResponseSessionVerificationAvailableActionCancel AppVerificationGetResponseSessionVerificationAvailableAction = "cancel"
const AppVerificationGetResponseSessionVerificationAvailableActionQrConfirmScanned AppVerificationGetResponseSessionVerificationAvailableAction = "qr.confirmScanned"
const AppVerificationGetResponseSessionVerificationAvailableActionSASStart AppVerificationGetResponseSessionVerificationAvailableAction = "sas.start"
const AppVerificationGetResponseSessionVerificationAvailableActionSASConfirm AppVerificationGetResponseSessionVerificationAvailableAction = "sas.confirm"
Direction string

Whether this device started or received the verification.

One of the following:
const AppVerificationGetResponseSessionVerificationDirectionIncoming AppVerificationGetResponseSessionVerificationDirection = "incoming"
const AppVerificationGetResponseSessionVerificationDirectionOutgoing AppVerificationGetResponseSessionVerificationDirection = "outgoing"
Methods []string

Verification methods supported for this transaction.

One of the following:
const AppVerificationGetResponseSessionVerificationMethodQr AppVerificationGetResponseSessionVerificationMethod = "qr"
const AppVerificationGetResponseSessionVerificationMethodSAS AppVerificationGetResponseSessionVerificationMethod = "sas"
Purpose string

Why this verification exists.

One of the following:
const AppVerificationGetResponseSessionVerificationPurposeLogin AppVerificationGetResponseSessionVerificationPurpose = "login"
const AppVerificationGetResponseSessionVerificationPurposeDevice AppVerificationGetResponseSessionVerificationPurpose = "device"
State string

Current trusted-device verification state.

One of the following:
const AppVerificationGetResponseSessionVerificationStateRequested AppVerificationGetResponseSessionVerificationState = "requested"
const AppVerificationGetResponseSessionVerificationStateReady AppVerificationGetResponseSessionVerificationState = "ready"
const AppVerificationGetResponseSessionVerificationStateSASReady AppVerificationGetResponseSessionVerificationState = "sas_ready"
const AppVerificationGetResponseSessionVerificationStateQrScanned AppVerificationGetResponseSessionVerificationState = "qr_scanned"
const AppVerificationGetResponseSessionVerificationStateDone AppVerificationGetResponseSessionVerificationState = "done"
const AppVerificationGetResponseSessionVerificationStateCancelled AppVerificationGetResponseSessionVerificationState = "cancelled"
const AppVerificationGetResponseSessionVerificationStateError AppVerificationGetResponseSessionVerificationState = "error"
Error AppVerificationGetResponseSessionVerificationErrorOptional

Verification error details, if verification stopped.

Code string

Verification error code.

Reason string

User-facing verification error message.

OtherDevice AppVerificationGetResponseSessionVerificationOtherDeviceOptional

Other device participating in verification.

ID string

Other device ID.

Name stringOptional

Other device display name, if known.

OtherUserID stringOptional

Other Beeper user participating in verification.

Qr AppVerificationGetResponseSessionVerificationQrOptional

QR verification data.

Data string

QR code payload to display for verification.

SAS AppVerificationGetResponseSessionVerificationSASOptional

Emoji or number comparison data for verification.

Emojis string

Emoji sequence to compare on both devices.

Decimals stringOptional

Number sequence to compare on both devices.

Verification AppVerificationGetResponseVerificationOptional

Trusted device verification progress.

ID string

Verification ID to pass in verification action paths.

AvailableActions []string

Verification actions that are valid for the current state.

One of the following:
const AppVerificationGetResponseVerificationAvailableActionAccept AppVerificationGetResponseVerificationAvailableAction = "accept"
const AppVerificationGetResponseVerificationAvailableActionCancel AppVerificationGetResponseVerificationAvailableAction = "cancel"
const AppVerificationGetResponseVerificationAvailableActionQrConfirmScanned AppVerificationGetResponseVerificationAvailableAction = "qr.confirmScanned"
const AppVerificationGetResponseVerificationAvailableActionSASStart AppVerificationGetResponseVerificationAvailableAction = "sas.start"
const AppVerificationGetResponseVerificationAvailableActionSASConfirm AppVerificationGetResponseVerificationAvailableAction = "sas.confirm"
Direction string

Whether this device started or received the verification.

One of the following:
const AppVerificationGetResponseVerificationDirectionIncoming AppVerificationGetResponseVerificationDirection = "incoming"
const AppVerificationGetResponseVerificationDirectionOutgoing AppVerificationGetResponseVerificationDirection = "outgoing"
Methods []string

Verification methods supported for this transaction.

One of the following:
const AppVerificationGetResponseVerificationMethodQr AppVerificationGetResponseVerificationMethod = "qr"
const AppVerificationGetResponseVerificationMethodSAS AppVerificationGetResponseVerificationMethod = "sas"
Purpose string

Why this verification exists.

One of the following:
const AppVerificationGetResponseVerificationPurposeLogin AppVerificationGetResponseVerificationPurpose = "login"
const AppVerificationGetResponseVerificationPurposeDevice AppVerificationGetResponseVerificationPurpose = "device"
State string

Current trusted-device verification state.

One of the following:
const AppVerificationGetResponseVerificationStateRequested AppVerificationGetResponseVerificationState = "requested"
const AppVerificationGetResponseVerificationStateReady AppVerificationGetResponseVerificationState = "ready"
const AppVerificationGetResponseVerificationStateSASReady AppVerificationGetResponseVerificationState = "sas_ready"
const AppVerificationGetResponseVerificationStateQrScanned AppVerificationGetResponseVerificationState = "qr_scanned"
const AppVerificationGetResponseVerificationStateDone AppVerificationGetResponseVerificationState = "done"
const AppVerificationGetResponseVerificationStateCancelled AppVerificationGetResponseVerificationState = "cancelled"
const AppVerificationGetResponseVerificationStateError AppVerificationGetResponseVerificationState = "error"
Error AppVerificationGetResponseVerificationErrorOptional

Verification error details, if verification stopped.

Code string

Verification error code.

Reason string

User-facing verification error message.

OtherDevice AppVerificationGetResponseVerificationOtherDeviceOptional

Other device participating in verification.

ID string

Other device ID.

Name stringOptional

Other device display name, if known.

OtherUserID stringOptional

Other Beeper user participating in verification.

Qr AppVerificationGetResponseVerificationQrOptional

QR verification data.

Data string

QR code payload to display for verification.

SAS AppVerificationGetResponseVerificationSASOptional

Emoji or number comparison data for verification.

Emojis string

Emoji sequence to compare on both devices.

Decimals stringOptional

Number sequence to compare on both devices.

Get verification

package main

import (
  "context"
  "fmt"

  "github.com/beeper/desktop-api-go"
  "github.com/beeper/desktop-api-go/option"
)

func main() {
  client := beeperdesktopapi.NewClient(
    option.WithAccessToken("My Access Token"),
  )
  verification, err := client.App.Verifications.Get(context.TODO(), "x")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", verification.Session)
}
{
  "session": {
    "e2ee": {
      "crossSigning": true,
      "firstSyncDone": true,
      "hasBackedUpRecoveryKey": true,
      "initialized": true,
      "keyBackup": true,
      "secrets": {
        "masterKey": true,
        "megolmBackupKey": true,
        "recoveryKey": true,
        "selfSigningKey": true,
        "userSigningKey": true
      },
      "secretStorage": true,
      "verified": true,
      "recoveryKeyGeneratedAt": 0
    },
    "state": "needs-login",
    "matrix": {
      "deviceID": "deviceID",
      "homeserver": "homeserver",
      "userID": "userID"
    },
    "verification": {
      "id": "id",
      "availableActions": [
        "accept"
      ],
      "direction": "incoming",
      "methods": [
        "qr"
      ],
      "purpose": "login",
      "state": "requested",
      "error": {
        "code": "code",
        "reason": "reason"
      },
      "otherDevice": {
        "id": "id",
        "name": "name"
      },
      "otherUserID": "otherUserID",
      "qr": {
        "data": "data"
      },
      "sas": {
        "emojis": "emojis",
        "decimals": "decimals"
      }
    }
  },
  "verification": {
    "id": "id",
    "availableActions": [
      "accept"
    ],
    "direction": "incoming",
    "methods": [
      "qr"
    ],
    "purpose": "login",
    "state": "requested",
    "error": {
      "code": "code",
      "reason": "reason"
    },
    "otherDevice": {
      "id": "id",
      "name": "name"
    },
    "otherUserID": "otherUserID",
    "qr": {
      "data": "data"
    },
    "sas": {
      "emojis": "emojis",
      "decimals": "decimals"
    }
  }
}
Returns Examples
{
  "session": {
    "e2ee": {
      "crossSigning": true,
      "firstSyncDone": true,
      "hasBackedUpRecoveryKey": true,
      "initialized": true,
      "keyBackup": true,
      "secrets": {
        "masterKey": true,
        "megolmBackupKey": true,
        "recoveryKey": true,
        "selfSigningKey": true,
        "userSigningKey": true
      },
      "secretStorage": true,
      "verified": true,
      "recoveryKeyGeneratedAt": 0
    },
    "state": "needs-login",
    "matrix": {
      "deviceID": "deviceID",
      "homeserver": "homeserver",
      "userID": "userID"
    },
    "verification": {
      "id": "id",
      "availableActions": [
        "accept"
      ],
      "direction": "incoming",
      "methods": [
        "qr"
      ],
      "purpose": "login",
      "state": "requested",
      "error": {
        "code": "code",
        "reason": "reason"
      },
      "otherDevice": {
        "id": "id",
        "name": "name"
      },
      "otherUserID": "otherUserID",
      "qr": {
        "data": "data"
      },
      "sas": {
        "emojis": "emojis",
        "decimals": "decimals"
      }
    }
  },
  "verification": {
    "id": "id",
    "availableActions": [
      "accept"
    ],
    "direction": "incoming",
    "methods": [
      "qr"
    ],
    "purpose": "login",
    "state": "requested",
    "error": {
      "code": "code",
      "reason": "reason"
    },
    "otherDevice": {
      "id": "id",
      "name": "name"
    },
    "otherUserID": "otherUserID",
    "qr": {
      "data": "data"
    },
    "sas": {
      "emojis": "emojis",
      "decimals": "decimals"
    }
  }
}