Skip to content
Download Beeper

Accept device verification

client.App.Verifications.Accept(ctx, verificationID) (*AppVerificationAcceptResponse, error)
POST/v1/app/setup/verifications/{verificationID}/accept

Accept an incoming device verification request.

ParametersExpand Collapse
verificationID string

Verification ID.

minLength1
ReturnsExpand Collapse
type AppVerificationAcceptResponse struct{…}
Session AppVerificationAcceptResponseSession

Current app sign-in and encrypted messaging setup state.

E2EE AppVerificationAcceptResponseSessionE2EE

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 AppVerificationAcceptResponseSessionE2EESecrets

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 AppVerificationAcceptResponseSessionStateNeedsLogin AppVerificationAcceptResponseSessionState = "needs-login"
const AppVerificationAcceptResponseSessionStateInitializing AppVerificationAcceptResponseSessionState = "initializing"
const AppVerificationAcceptResponseSessionStateNeedsCrossSigningSetup AppVerificationAcceptResponseSessionState = "needs-cross-signing-setup"
const AppVerificationAcceptResponseSessionStateNeedsVerification AppVerificationAcceptResponseSessionState = "needs-verification"
const AppVerificationAcceptResponseSessionStateNeedsSecrets AppVerificationAcceptResponseSessionState = "needs-secrets"
const AppVerificationAcceptResponseSessionStateNeedsFirstSync AppVerificationAcceptResponseSessionState = "needs-first-sync"
const AppVerificationAcceptResponseSessionStateReady AppVerificationAcceptResponseSessionState = "ready"
Matrix AppVerificationAcceptResponseSessionMatrixOptional

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 AppVerificationAcceptResponseSessionVerificationOptional

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 AppVerificationAcceptResponseSessionVerificationAvailableActionAccept AppVerificationAcceptResponseSessionVerificationAvailableAction = "accept"
const AppVerificationAcceptResponseSessionVerificationAvailableActionCancel AppVerificationAcceptResponseSessionVerificationAvailableAction = "cancel"
const AppVerificationAcceptResponseSessionVerificationAvailableActionQrConfirmScanned AppVerificationAcceptResponseSessionVerificationAvailableAction = "qr.confirmScanned"
const AppVerificationAcceptResponseSessionVerificationAvailableActionSASStart AppVerificationAcceptResponseSessionVerificationAvailableAction = "sas.start"
const AppVerificationAcceptResponseSessionVerificationAvailableActionSASConfirm AppVerificationAcceptResponseSessionVerificationAvailableAction = "sas.confirm"
Direction string

Whether this device started or received the verification.

One of the following:
const AppVerificationAcceptResponseSessionVerificationDirectionIncoming AppVerificationAcceptResponseSessionVerificationDirection = "incoming"
const AppVerificationAcceptResponseSessionVerificationDirectionOutgoing AppVerificationAcceptResponseSessionVerificationDirection = "outgoing"
Methods []string

Verification methods supported for this transaction.

One of the following:
const AppVerificationAcceptResponseSessionVerificationMethodQr AppVerificationAcceptResponseSessionVerificationMethod = "qr"
const AppVerificationAcceptResponseSessionVerificationMethodSAS AppVerificationAcceptResponseSessionVerificationMethod = "sas"
Purpose string

Why this verification exists.

One of the following:
const AppVerificationAcceptResponseSessionVerificationPurposeLogin AppVerificationAcceptResponseSessionVerificationPurpose = "login"
const AppVerificationAcceptResponseSessionVerificationPurposeDevice AppVerificationAcceptResponseSessionVerificationPurpose = "device"
State string

Current trusted-device verification state.

One of the following:
const AppVerificationAcceptResponseSessionVerificationStateRequested AppVerificationAcceptResponseSessionVerificationState = "requested"
const AppVerificationAcceptResponseSessionVerificationStateReady AppVerificationAcceptResponseSessionVerificationState = "ready"
const AppVerificationAcceptResponseSessionVerificationStateSASReady AppVerificationAcceptResponseSessionVerificationState = "sas_ready"
const AppVerificationAcceptResponseSessionVerificationStateQrScanned AppVerificationAcceptResponseSessionVerificationState = "qr_scanned"
const AppVerificationAcceptResponseSessionVerificationStateDone AppVerificationAcceptResponseSessionVerificationState = "done"
const AppVerificationAcceptResponseSessionVerificationStateCancelled AppVerificationAcceptResponseSessionVerificationState = "cancelled"
const AppVerificationAcceptResponseSessionVerificationStateError AppVerificationAcceptResponseSessionVerificationState = "error"
Error AppVerificationAcceptResponseSessionVerificationErrorOptional

Verification error details, if verification stopped.

Code string

Verification error code.

Reason string

User-facing verification error message.

OtherDevice AppVerificationAcceptResponseSessionVerificationOtherDeviceOptional

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 AppVerificationAcceptResponseSessionVerificationQrOptional

QR verification data.

Data string

QR code payload to display for verification.

SAS AppVerificationAcceptResponseSessionVerificationSASOptional

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 AppVerificationAcceptResponseVerificationOptional

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 AppVerificationAcceptResponseVerificationAvailableActionAccept AppVerificationAcceptResponseVerificationAvailableAction = "accept"
const AppVerificationAcceptResponseVerificationAvailableActionCancel AppVerificationAcceptResponseVerificationAvailableAction = "cancel"
const AppVerificationAcceptResponseVerificationAvailableActionQrConfirmScanned AppVerificationAcceptResponseVerificationAvailableAction = "qr.confirmScanned"
const AppVerificationAcceptResponseVerificationAvailableActionSASStart AppVerificationAcceptResponseVerificationAvailableAction = "sas.start"
const AppVerificationAcceptResponseVerificationAvailableActionSASConfirm AppVerificationAcceptResponseVerificationAvailableAction = "sas.confirm"
Direction string

Whether this device started or received the verification.

One of the following:
const AppVerificationAcceptResponseVerificationDirectionIncoming AppVerificationAcceptResponseVerificationDirection = "incoming"
const AppVerificationAcceptResponseVerificationDirectionOutgoing AppVerificationAcceptResponseVerificationDirection = "outgoing"
Methods []string

Verification methods supported for this transaction.

One of the following:
const AppVerificationAcceptResponseVerificationMethodQr AppVerificationAcceptResponseVerificationMethod = "qr"
const AppVerificationAcceptResponseVerificationMethodSAS AppVerificationAcceptResponseVerificationMethod = "sas"
Purpose string

Why this verification exists.

One of the following:
const AppVerificationAcceptResponseVerificationPurposeLogin AppVerificationAcceptResponseVerificationPurpose = "login"
const AppVerificationAcceptResponseVerificationPurposeDevice AppVerificationAcceptResponseVerificationPurpose = "device"
State string

Current trusted-device verification state.

One of the following:
const AppVerificationAcceptResponseVerificationStateRequested AppVerificationAcceptResponseVerificationState = "requested"
const AppVerificationAcceptResponseVerificationStateReady AppVerificationAcceptResponseVerificationState = "ready"
const AppVerificationAcceptResponseVerificationStateSASReady AppVerificationAcceptResponseVerificationState = "sas_ready"
const AppVerificationAcceptResponseVerificationStateQrScanned AppVerificationAcceptResponseVerificationState = "qr_scanned"
const AppVerificationAcceptResponseVerificationStateDone AppVerificationAcceptResponseVerificationState = "done"
const AppVerificationAcceptResponseVerificationStateCancelled AppVerificationAcceptResponseVerificationState = "cancelled"
const AppVerificationAcceptResponseVerificationStateError AppVerificationAcceptResponseVerificationState = "error"
Error AppVerificationAcceptResponseVerificationErrorOptional

Verification error details, if verification stopped.

Code string

Verification error code.

Reason string

User-facing verification error message.

OtherDevice AppVerificationAcceptResponseVerificationOtherDeviceOptional

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 AppVerificationAcceptResponseVerificationQrOptional

QR verification data.

Data string

QR code payload to display for verification.

SAS AppVerificationAcceptResponseVerificationSASOptional

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.

Accept device 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"),
  )
  response, err := client.App.Verifications.Accept(context.TODO(), "x")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.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"
    }
  }
}