Skip to content
Download Beeper

Accept device verification

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

Accept an incoming device verification request.

ParametersExpand Collapse
verificationID string

Verification ID.

minLength1
ReturnsExpand Collapse
type AppSetupVerificationAcceptResponse struct{…}
Session AppSetupVerificationAcceptResponseSession

Current app sign-in and encrypted messaging setup state.

E2EE AppSetupVerificationAcceptResponseSessionE2EE

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 AppSetupVerificationAcceptResponseSessionE2EESecrets

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 AppSetupVerificationAcceptResponseSessionStateNeedsLogin AppSetupVerificationAcceptResponseSessionState = "needs-login"
const AppSetupVerificationAcceptResponseSessionStateInitializing AppSetupVerificationAcceptResponseSessionState = "initializing"
const AppSetupVerificationAcceptResponseSessionStateNeedsCrossSigningSetup AppSetupVerificationAcceptResponseSessionState = "needs-cross-signing-setup"
const AppSetupVerificationAcceptResponseSessionStateNeedsVerification AppSetupVerificationAcceptResponseSessionState = "needs-verification"
const AppSetupVerificationAcceptResponseSessionStateNeedsSecrets AppSetupVerificationAcceptResponseSessionState = "needs-secrets"
const AppSetupVerificationAcceptResponseSessionStateNeedsFirstSync AppSetupVerificationAcceptResponseSessionState = "needs-first-sync"
const AppSetupVerificationAcceptResponseSessionStateReady AppSetupVerificationAcceptResponseSessionState = "ready"
Matrix AppSetupVerificationAcceptResponseSessionMatrixOptional

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 AppSetupVerificationAcceptResponseSessionVerificationOptional

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 AppSetupVerificationAcceptResponseSessionVerificationAvailableActionAccept AppSetupVerificationAcceptResponseSessionVerificationAvailableAction = "accept"
const AppSetupVerificationAcceptResponseSessionVerificationAvailableActionCancel AppSetupVerificationAcceptResponseSessionVerificationAvailableAction = "cancel"
const AppSetupVerificationAcceptResponseSessionVerificationAvailableActionQRConfirmScanned AppSetupVerificationAcceptResponseSessionVerificationAvailableAction = "qr.confirmScanned"
const AppSetupVerificationAcceptResponseSessionVerificationAvailableActionSASStart AppSetupVerificationAcceptResponseSessionVerificationAvailableAction = "sas.start"
const AppSetupVerificationAcceptResponseSessionVerificationAvailableActionSASConfirm AppSetupVerificationAcceptResponseSessionVerificationAvailableAction = "sas.confirm"
Direction string

Whether this device started or received the verification.

One of the following:
const AppSetupVerificationAcceptResponseSessionVerificationDirectionIncoming AppSetupVerificationAcceptResponseSessionVerificationDirection = "incoming"
const AppSetupVerificationAcceptResponseSessionVerificationDirectionOutgoing AppSetupVerificationAcceptResponseSessionVerificationDirection = "outgoing"
Methods []string

Verification methods supported for this transaction.

One of the following:
const AppSetupVerificationAcceptResponseSessionVerificationMethodQR AppSetupVerificationAcceptResponseSessionVerificationMethod = "qr"
const AppSetupVerificationAcceptResponseSessionVerificationMethodSAS AppSetupVerificationAcceptResponseSessionVerificationMethod = "sas"
Purpose string

Why this verification exists.

One of the following:
const AppSetupVerificationAcceptResponseSessionVerificationPurposeLogin AppSetupVerificationAcceptResponseSessionVerificationPurpose = "login"
const AppSetupVerificationAcceptResponseSessionVerificationPurposeDevice AppSetupVerificationAcceptResponseSessionVerificationPurpose = "device"
State string

Current trusted-device verification state.

One of the following:
const AppSetupVerificationAcceptResponseSessionVerificationStateRequested AppSetupVerificationAcceptResponseSessionVerificationState = "requested"
const AppSetupVerificationAcceptResponseSessionVerificationStateReady AppSetupVerificationAcceptResponseSessionVerificationState = "ready"
const AppSetupVerificationAcceptResponseSessionVerificationStateSASReady AppSetupVerificationAcceptResponseSessionVerificationState = "sas_ready"
const AppSetupVerificationAcceptResponseSessionVerificationStateQRScanned AppSetupVerificationAcceptResponseSessionVerificationState = "qr_scanned"
const AppSetupVerificationAcceptResponseSessionVerificationStateDone AppSetupVerificationAcceptResponseSessionVerificationState = "done"
const AppSetupVerificationAcceptResponseSessionVerificationStateCancelled AppSetupVerificationAcceptResponseSessionVerificationState = "cancelled"
const AppSetupVerificationAcceptResponseSessionVerificationStateError AppSetupVerificationAcceptResponseSessionVerificationState = "error"
Error AppSetupVerificationAcceptResponseSessionVerificationErrorOptional

Verification error details, if verification stopped.

Code string

Verification error code.

Reason string

User-facing verification error message.

OtherDevice AppSetupVerificationAcceptResponseSessionVerificationOtherDeviceOptional

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 AppSetupVerificationAcceptResponseSessionVerificationQROptional

QR verification data.

Data string

QR code payload to display for verification.

SAS AppSetupVerificationAcceptResponseSessionVerificationSASOptional

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 AppSetupVerificationAcceptResponseVerificationOptional

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 AppSetupVerificationAcceptResponseVerificationAvailableActionAccept AppSetupVerificationAcceptResponseVerificationAvailableAction = "accept"
const AppSetupVerificationAcceptResponseVerificationAvailableActionCancel AppSetupVerificationAcceptResponseVerificationAvailableAction = "cancel"
const AppSetupVerificationAcceptResponseVerificationAvailableActionQRConfirmScanned AppSetupVerificationAcceptResponseVerificationAvailableAction = "qr.confirmScanned"
const AppSetupVerificationAcceptResponseVerificationAvailableActionSASStart AppSetupVerificationAcceptResponseVerificationAvailableAction = "sas.start"
const AppSetupVerificationAcceptResponseVerificationAvailableActionSASConfirm AppSetupVerificationAcceptResponseVerificationAvailableAction = "sas.confirm"
Direction string

Whether this device started or received the verification.

One of the following:
const AppSetupVerificationAcceptResponseVerificationDirectionIncoming AppSetupVerificationAcceptResponseVerificationDirection = "incoming"
const AppSetupVerificationAcceptResponseVerificationDirectionOutgoing AppSetupVerificationAcceptResponseVerificationDirection = "outgoing"
Methods []string

Verification methods supported for this transaction.

One of the following:
const AppSetupVerificationAcceptResponseVerificationMethodQR AppSetupVerificationAcceptResponseVerificationMethod = "qr"
const AppSetupVerificationAcceptResponseVerificationMethodSAS AppSetupVerificationAcceptResponseVerificationMethod = "sas"
Purpose string

Why this verification exists.

One of the following:
const AppSetupVerificationAcceptResponseVerificationPurposeLogin AppSetupVerificationAcceptResponseVerificationPurpose = "login"
const AppSetupVerificationAcceptResponseVerificationPurposeDevice AppSetupVerificationAcceptResponseVerificationPurpose = "device"
State string

Current trusted-device verification state.

One of the following:
const AppSetupVerificationAcceptResponseVerificationStateRequested AppSetupVerificationAcceptResponseVerificationState = "requested"
const AppSetupVerificationAcceptResponseVerificationStateReady AppSetupVerificationAcceptResponseVerificationState = "ready"
const AppSetupVerificationAcceptResponseVerificationStateSASReady AppSetupVerificationAcceptResponseVerificationState = "sas_ready"
const AppSetupVerificationAcceptResponseVerificationStateQRScanned AppSetupVerificationAcceptResponseVerificationState = "qr_scanned"
const AppSetupVerificationAcceptResponseVerificationStateDone AppSetupVerificationAcceptResponseVerificationState = "done"
const AppSetupVerificationAcceptResponseVerificationStateCancelled AppSetupVerificationAcceptResponseVerificationState = "cancelled"
const AppSetupVerificationAcceptResponseVerificationStateError AppSetupVerificationAcceptResponseVerificationState = "error"
Error AppSetupVerificationAcceptResponseVerificationErrorOptional

Verification error details, if verification stopped.

Code string

Verification error code.

Reason string

User-facing verification error message.

OtherDevice AppSetupVerificationAcceptResponseVerificationOtherDeviceOptional

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 AppSetupVerificationAcceptResponseVerificationQROptional

QR verification data.

Data string

QR code payload to display for verification.

SAS AppSetupVerificationAcceptResponseVerificationSASOptional

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.Setup.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"
    }
  }
}