{
  "openapi": "3.1.0",
  "info": {
    "title": "Signicat MobileID API",
    "version": "1.0",
    "description": "- **Base URL**: `https://api.signicat.com/mobileid/core/`\n- **Documentation**: See the [MobileID](/docs/mobile-identity/mobileid/) developer documentation.\n- **Support**: [Create a support ticket](https://dashboard.signicat.com/contact-us/tickets/) in the Signicat Dashboard.\n\n# Introduction\n\nThe Signicat MobileID API enables you to implement strong customer authentication on mobile devices.\n\nThis REST API uses the OAuth 2.0 protocol for authorisation. All request and response bodies are formatted in JSON.\n\n# Get started\n\n## 1. Connect to this API\n\nBefore you can start making requests to this API, you need to learn how to connect to it. To do this, see the **Connect to Signicat APIs** [Quick start guide](/docs/dashboard/connect-to-signicat-apis/quick-start-guide/).\n\n## 2. Onboard to MobileID\n\nYou need to complete the onboarding of your account for MobileID. To do this, you can use the Signicat Dashboard:\n\n1. Go to **Signicat Dashboard** > **Products** > [**MobileID**](https://dashboard.signicat.com/mobileid).\n2. Click the **Add MobileID** button.\n\n## 3. Next steps\n\nSuccess! You can now start making requests to the MobileID API.\n\n1. For your MobileID account, you can now create users.\n2. Each user can register one or more devices.\n3. The devices can be used to perform authentication and authorisation operations with your app.\n\nTo learn how to test out a MobileID authentication using the Authenticator App and the ReuseID API, see our MobileID [Quick start guide](/docs/mobile-identity/mobileid/quick-start-guides/mobileid-authentication).\n\n# Using this API\n\n## Audit logs\n\nUse the Signicat **Audit logs** service to see documented evidence of the sequence of activities that have affected a system.\n\n- Access it: **Signicat Dashboard** > **Settings** > [**Audit logs**](https://dashboard.signicat.com/audit)\n- For information generic to all Signicat audit logs, see the general [Audit logs](/docs/dashboard/settings/audit-logs/) documentation.\n\n## Errors\n\nWhen you make an API call to Signicat and an error occurs, you will receive a response message with an error code.\n\n- For errors generic to all Signicat APIs, see the general [Error codes](/docs/dashboard/error-codes/) documentation.\n- For errors specific to this service, see the MobileID [Error codes](/docs/mobile-identity/mobileid/error-codes/) documentation.\n\n## Events (callback)\n\nUse the Signicat **Events** service to automatically receive information about when something happens in one of our services into your system.\n\n> **Note**: This is often referred to as callback.\n\n- Access it: Go to **Signicat Dashboard** > **Settings** > [**Events**](https://dashboard.signicat.com/events)\n- For information generic to all Signicat events, see the general [Events](/docs/dashboard/settings/events/) documentation.\n- For information specific to this service, see the MobileID [Events](/docs/mobile-identity/mobileid/features/events/) documentation.\n\n## Response headers\n\nAll MobileID responses set the following headers:\n\n| **Header name** | **Description** | **Type** |\n| :-- | :-- | :-- |\n| `X-TRACE-ID` | The unique identifier of the request in the tracing system. This makes it possible for us to trace the history of the request in detail. | String |\n\n# Common concepts\n\n## App Attest statuses\n\nPossible values for the App Attest attestation status (`appAttestStatus`).\n\n| **Status name** | **Description** |\n| :-- | :-- |\n| `VERIFIED` | Attestation verification was successful. |\n| `FAILED_CLIENT_APPLE_SERVER_UNAVAILABLE` | Attestation failed because the Apple App Attest server was unavailable. |\n| `FAILED_CLIENT_NOT_SUPPORTED` | Attestation failed because Apple App Attest is not supported on the device. |\n| `FAILED_CLIENT_UNEXPECTED_ERROR` | Attestation failed because of an unexpected error; you can find further details in the error message. |\n| `FAILED_CLIENT_TIMEOUT` | Attestation failed because the request took longer than the configured timeout. |\n| `FAILED_VALIDATION_EXCEPTION` | Validation of the attestation object failed because the integrity check failed. |\n\n## Authentication levels\n\nPossible values for the authentication level (`authLevel`).\n\n| **Level name** | **Description** |\n| :-- | :-- |\n| `ONE_FACTOR` | One factor authentication. |\n| `TWO_FACTOR` | Two factor authentication. |\n\n## Authentication methods\n\nPossible values for the authentication method (`authMethod`).\n\n| **Method name** | **Description** |\n| :-- | :-- |\n| `DEVICE` | Device. |\n| `DEVICE_PIN` | PIN code. |\n| `DEVICE_IOS_FACE_ID` | Face ID for iOS. |\n| `DEVICE_STRONG_TOUCH_ID` | Touch ID for iOS, where the registered fingerprints at activation time cannot be updated. |\n| `DEVICE_ANDROID_BIOMETRIC_PROMPT` | Biometric ID for Android. |\n| `DEVICE_SERVER_SIDE_FACE` | Server side face authentication. |\n\n## Geofencing client statuses\n\nPossible values for the geofencing client status (`clientStatus`).\n\n| **Status name** | **Description** |\n| :-- | :-- |\n| `OK` | The country code was obtained. |\n| `LOCATION_NOT_ENABLED` | Either: <ul><li>The location was not requested by the SDK.</li> <li>The end-user declined access to location services for the SDK on their device.</li></ul> |\n| `LOCATION_TIMEOUT` | The device did not obtain a location within the configured accuracy before timeout. |\n| `LOCATION_MOCKED` | **Android devices only**<br /><br /> The location of the device was mocked.<br /><br /> This is based on the location methods [isFromMockProvider()](https://developer.android.com/reference/android/location/Location#isFromMockProvider()) and [isMock()](https://developer.android.com/reference/android/location/Location#isMock()), which indicate whether this location is marked as a mock location.<br /><br /> **Note**: To test faking the GPS location of the device, you can download and install a mock location app, then enable it in the [Developer options](https://developer.android.com/studio/debug/dev-options) on the device. |\n| `GEOCODER_NOT_SUPPORTED` | **Android devices only**<br /><br /> Geocoder is not supported on the device. |\n| `GEOCODER_NETWORK_ERROR` | Either: <ul><li>The geocoder network or service is not available.</li> <li>Too many requests have been made to the geocoder service (offered by Apple or Google), as it is rate-limited for each app.</li></ul> |\n| `GEOCODER_UNEXPECTED_ERROR` | An unexpected geocoder error occurred. |\n| `GEOCODER_TIMEOUT` | The geocoder call did not finish within time the limit. |\n| `GEOCODER_NO_RESULT_FOUND` | The reverse geocode request yielded an empty result for the current location. |\n\n## Geofencing server boundary validation statuses\n\nPossible values for the geofencing server boundary validation status (`serverBoundaryValidation`).\n\n| **Status name** | **Description** |\n| :-- | :-- |\n| `SUCCESS` | The evaluation of the country against the allowed region succeeded. |\n| `FAILURE` | The evaluation of the country against the allowed region failed. |\n\n## Hardware-protected key client statuses\n\nPossible values for the hardware-protected key client status (`hwKeyClientStatus`).\n\n| **Status name** | **Description** | **Operation** |\n| :-- | :-- | :-- |\n| `OK_KEY_PROVIDED` | Activation of hardware-protected keys was successful on the client. | Registration |\n| `OK_SIGNED_SUCCESS` | The authentication challenge was successfully signed with the hardware-protected key on the client. | Authentication, Signature  |\n| `INFO_NO_HARDWARE_SUPPORT` | The client device does not have Secure Enclave, or it is running in a simulator.<br /><br /> **Note**: This is only applicable for iOS. | Registration  |\n| `INFO_NO_OPERATING_SYSTEM_SUPPORT` | The client operating system does not support hardware-protected keys.<br /><br /> It is supported on: <ul><li>Android 6 (most devices)</li> <li>Android 7 or later (all devices)</li> <li>iOS 10 or later (devices with Secure Enclave)</li></ul> | Registration  |\n| `INFO_NOT_ACTIVATED_WITH_HW_KEY` | The registration was not activated with hardware-protected keys support, because the device hardware does not support hardware crypto-protected keys. | Authentication, Signature  |\n| `ERR_KEY_GENERATION_FAILED` | There was an unexpected error during the generation of a keypair on the client. | Registration  |\n| `ERR_RETRIEVE_PUBLIC_KEY_FAILED` | There was an unexpected error retrieving the public key.<br /><br /> **Note**: This is only applicable for iOS. | Registration  |\n| `ERR_RETRIEVE_PRIVATE_KEY_REF_FAILED` | There was an unexpected error when retrieving the reference to the private key. | Registration, Authentication, Signature |\n| `ERR_SIGN_OPERATION_FAILED` | There was an unexpected error when generating the signature. | Registration, Authentication, Signature |\n\n## Hardware-protected key server results\n\nPossible values for the hardware-protected key server result (`hwKeyServerResult`).\n\n| **Result name** | **Description** | **Validation strategy** |\n| :-- | :-- | :-- |\n| `SIGNATURE_VERIFICATION_SUCCESS` | Verification of the hardware-protected key signature was successful. | The operation will be successful in both validation strategies (`SUPPORTED`, `RISK_PARAMS`). |\n| `SIGNATURE_VERIFICATION_FAILED` | Verification of the hardware-protected key signature failed. | The operation will fail if using the `SUPPORTED` validation strategy. |\n| `NOT_ACTIVATED_WITH_HW_KEY` | The signature could not be verified because the registration was not activated with hardware-protected keys.<br /><br /> **Note**: This is only applicable for authentication. | The operation will not fail, regardless of which validation strategy is used (`SUPPORTED`, `RISK_PARAMS`). |\n| `NOT_PROVIDED_BY_CLIENT` | The client is on an Encap version that does not support the hardware-protected keys feature.<br /><br /> **Note**: This is only applicable for registration. | The operation will not fail, regardless of which validation strategy is used (`SUPPORTED`, `RISK_PARAMS`). The device will be activated without hardware-protected keys. The device will be able to perform all operations, but will not be able to use the hardware-protected keys feature.<br /><br /> To enable this feature, the client must use Encap version 3.8 or newer. |\n\n## Lock reason\n\nPossible values for the lock reason (`lockReason`).\n\n| **Reason name** | **Description** |\n| :-- | :-- |\n| `OPEN` | The device is unlocked. |\n| `DEVICE_OR_PIN_VERIFICATION_FAILED` | The device is locked due to a failed authentication, caused by use of the wrong device and/or a second-factor error (incorrect PIN code or biometrics). |\n| `LOCKED_BY_ADMIN` | The device is locked by administrative operation. |\n| `DEVICE_VERIFICATION_FAILED` | The device is locked due to a failed authentication with the wrong device. |\n| `PIN_VERIFICATION_FAILED` | The device is locked due to a failed authentication, caused by a second-factor error (incorrect PIN code or biometrics). |\n| `INCORRECT_SALT_KEY_ID` | The device is locked because it provided an incorrect Salt-key ID. |\n| `HW_KEY_VERIFICATION_FAILED` | The device is locked because it failed the verification of the hardware-protected key (the key provided was incorrect). |\n| `APPATTEST_VERIFICATION_FAILED` | The device is locked because it failed the verification of the App Attest attestation. |\n| `PLAYINTEGRITY_VERIFICATION_FAILED` | The device is locked because it failed the verification of the Play Integrity attestation. |\n\n## Operation context maximum character length\n\nThe maximum character length that the operation context content (`content`) can be for the different MobileID operations.\n\n| **Property name** | **Registration** | **Authentication** | **Signature** |\n| :-- | :-- | :-- | :-- |\n| Pre-operation context content (`content`) | Not applicable. | 5000 characters. | 20000 characters. |\n| Post-operation context content (`content`) | 5000 characters. | 5000 characters. | 5000 characters. |\n\n## Operation error codes\n\nPossible values for the operation error code.\n\n| **Error code name** | **Description** |\n| :-- | :-- |\n| `CANCELLED_BY_DEVICE` | The operation failed because the session was cancelled by the device. |\n| `CANCELLED_BY_SP` | The operation failed because the session was cancelled by the service provider. |\n| `CANCELLED_AUTH_METHOD_DEACTIVATED` | The operation failed because the session was cancelled by the device. The device started a deactivation of authentication method(s). |\n| `CANCELLED_NEW_ACTIVATION` | The operation failed because the session was cancelled when a new activation was started. |\n| `EXPIRED` | The operation failed because the session has expired. |\n| `LOCKED` | The operation failed because the device is locked. |\n| `LOCKED_BY_ADMIN` | The operation failed because the device is locked by admin. |\n| `LOCKED_DEVICE_VERIFICATION_FAILED` | The operation failed because the device is locked by device verification. |\n| `LOCKED_PIN_VERIFICATION_FAILED` | The operation failed because the device is locked by PIN verification. |\n| `LOCKED_INCORRECT_SALT_KEY_ID` | The operation failed because the device is locked by incorrect Salt-key ID. |\n| `CALLBACK_FAILED` | The operation failed because the session callback failed. Legacy value from synchronous callback model. |\n| `LOCKED_HW_KEY_VERIFICATION_FAILED` | The operation failed because the device provided an incorrect signed challenge. |\n| `LOCKED_INTERMEDIATE_PUSH_VERIFICATION_FAILED` | The operation failed because the intermediate push attestation validation failed. |\n| `CANCELLED_INTERMEDIATE_PUSH_REQUIRED` | The operation failed because of missing intermediate push attestation details. |\n| `AUTHORIZATION_TOKEN_VERIFICATION_FAILED` | The operation failed because authorisation token validation failed. |\n| `CANCELLED_PERFORM_RECOVERY_STARTED` | The operation failed because the session was cancelled when recovery was started. |\n| `FAILED_RECOVERY_DOES_NOT_EXIST` | The operation failed because the recovery does not exist. |\n| `LOCKED_PERFORM_RECOVERY_FAILED` | The operation failed because the recovery is locked. |\n| `GEOFENCING_FAILED` | The operation failed because the geofencing validation failed. |\n| `LOCKED_APPATTEST_VERIFICATION_FAILED` | The operation failed because the App Attest validation failed. |\n| `CANCELLED_APPATTEST_REQUIRED` | The operation failed because of missing App Attest attestation details. |\n| `CALLBACK_PROCESSING_ERROR` | The operation failed because of an error in the data sent from the client. |\n| `LOCKED_PLAYINTEGRITY_VERIFICATION_FAILED` | The operation failed because the Play Integrity attestation validation failed. |\n\n## Operation states\n\nPossible values for the operation state (`state`).\n\n**Note**: The state and the values that are returned in the response depend on the API call you are carrying out.\n\n| **Status name** | **Description** |\n| :-- | :-- |\n| `PENDING` | The operation has been successfully initiated.<br /><br /> It is waiting for the device to complete the operation. |\n| `COMPLETED` | The operation has been completed. |\n| `FAILED` | The operation has failed.<br /><br /> The response contains an `errorCode`, and the cause of the error is given in the `errorDescription`.<br /><br /> See [operation error codes](/apis/mobileid/#section/Common-concepts/Operation-error-codes) for possible values. |\n\n## Operation types\n\nPossible values for the operation type.\n\n| **Operation type** | **Description** |\n| :-- | :-- |\n| `REGISTRATION` | The operation type is registration. |\n| `RE_REGISTRATION` | The operation type is re-registration. |\n| `AUTHENTICATION` | The operation type is authentication. |\n| `SIGNING` | The operation type is signing. |\n| `PASSPORT_SCAN` | The operation type is passport scan. |\n| `RECOVERY` | An existing recovery has been used to perform a recovery for a new device. |\n| `AUTH_AND_ACTIVATE` | An additional authentication method is activated for an existing device. |\n| `AUTH_AND_DEACTIVATE` | An authentication method is deactivated for an existing device. |\n| `ADD_OR_UPDATE_RECOVERY` | A recovery is set up for an existing device. |\n\n## Passport scan states\n\nPossible values for the passport scan state (`passportScanState`).\n\n| **State name** | **Description** |\n| :-- | :-- |\n| `ACCEPTED` | The passport verification was successful. |\n| `REJECTED` | The passport verification has failed. |\n| `INCONCLUSIVE` | It was not possible to finish the passport scan operation.<br /><br /> There are multiple reasons why a verification may fail, therefore the end-user should retry 1-2 more times. |\n| `FAILED` | The operation has failed. |\n\n## Play Integrity statuses\n\nPossible values for the Play Integrity attestation status (`playIntegrityStatus`).\n\n| **Status name** | **Description** |\n| :-- | :-- |\n| `VERIFIED` | Attestation verification was successful. |\n| `FAILED_INTEGRITY_CHECK` | Attestation failed because the integrity check failed. |\n| `FAILED_UNRECOGNIZED_PLAY_APP` | Attestation failed because the Google Play app is unrecognized. |\n| `FAILED_UNLICENSED_PLAY_APP` | Attestation failed because the Google Play app is unlicensed. |\n| `FAILED_INCORRECT_PACKAGE_NAME` | Attestation failed because of incorrect package name. |\n| `FAILED_INVALID_JWS` | Attestation failed because of invalid JWS format. |\n| `FAILED_CLIENT_API_FAILURE` | Attestation failed because Google Play Integrity returned an API exception. |\n| `FAILED_CLIENT_TIMEOUT` | Attestation failed due to request taking longer than the configured timeout. |\n| `FAILED_INCORRECT_NONCE` | Attestation failed because of incorrect nonce. |\n| `FAILED_MISSING_JWS` | Attestation failed because of missing JWS. |\n| `FAILED_MISSING_STATUS` | Attestation failed because of missing status returned from the client. |\n| `FAILED_INVALID_TIMESTAMP` | Attestation failed because the timestamp is not within the lifetime of the Encap server session. |\n| `FAILED_CLIENT_PLAY_SERVICES_OUT_OF_DATE` | Attestation failed because the client does not have Google Play or the version is too old. |\n\n## Recovery methods\n\nPossible values for the recovery method (`recoveryMethod`).\n\n| **Recovery method** | **Description** |\n| :-- | :-- |\n| `CLOUD_BACKUP_RECOVERY_CODE` | Recovery is based on cloud backup and a recovery key locked with a PIN. |\n| `CLOUD_BACKUP_SERVER_SIDE_FACE` | Recovery is based on cloud backup and a recovery key locked with server-side face authentication. |\n\n## Recovery statuses\n\nPossible values for the recovery status (`recoveryStatus`).\n\n| **Status name** | **Description** |\n| :-- | :-- |\n| `ACTIVATED` | Recovery has been set up for the device and is ready to be used. |\n| `DEACTIVATED` | Recovery has been deactivated. |\n| `RECOVERED` | Recovery has been used to recover the device. |\n| `LOCKED` | Recovery has been locked. |\n\n## Risk attributes\n\nThe risk attributes that can be collected for the device (`riskAttributes`).\n\nYou can configure which attributes are collected in the application configuration. To learn more, see [Risk data](/docs/mobile-identity/mobileid/features/application-configuration#risk-data) in the **Application configuration** feature documentation.\n\n- Risk attributes marked with **Yes** in the **Always configured** column are always collected, for debugging purposes.\n- Risk attributes marked with **No** in the **Always configured** column are only collected if configured in the application configuration.\n- The **Platform** column indicates whether the risk attribute is available for Android, iOS, or both.\n\n| **Attribute name** | **Type** | **Description** | **Always collected** | **Platform** |\n| :-- | :-- | :-- | :-- | :-- |\n| `operatingSystemFingerprint` | String | A fingerprint of the operating system. You can use this to detect whether the device is running a custom ROM or operating system. | Yes | Android |\n| `operatingSystemVersion` | String | The operating system version of the mobile device.<br /><br /> **Examples**: `6.0.1`, `iOS 14.4` | Yes | Android, iOS |\n| `inputMethod` | String | The input method that was used to enter text in the application. You can use this to detect when a custom keyboard is being used on the device.<br /><br /> **Note**: See [Create an input method](https://developer.android.com/guide/topics/text/creating-input-method) in the Android developer documentation for details. | No | Android |\n| `isDebuggable` | Boolean | Indicates whether the application running can be debugged using a source-level debugger, either by manifest entry or in an emulator.<br /><br > **Note**: Looks for `android:debuggable=true` in the manifest. | No | Android |\n| `isDebugEnabled` | Boolean | Indicates whether debug is enabled on the mobile device, either by the end-user setting (USB-debugging enabled) or when running in emulator (debugging enabled by default). | No | Android |\n| `isDebuggerConnected` | Boolean | Indicates whether a debugger is connected to the application. | No | Android |\n| `isEmulator` | Boolean | Indicates whether the application is running in an emulator. | No | Android |\n| `isRootAvailable` | Boolean | Indicates whether or not the mobile device has been rooted/jailbroken.<br /><br /> **Note**: This value has to be passed to Encap using the `setRiskParameter` API.<br /><br /> If the application is using Promon Shield, then the callback value can be passed to Encap. | No | Android, iOS |\n| `isSecureScreenLockEnabled` | Boolean | Indicates whether or not the mobile device has secure screen enabled.<br /><br /> **Note**: This indicates whether the end-user has enabled either biometric or passcode authentication for unlocking their mobile device. | No | Android, iOS |\n| `serverClientIp` | String | The host address that the request originated from. It contains the value of the X-Forwarded-For (XFF) header from the request, and can contain multiple IP addresses depending on proxy and load balancers.<br /><br > **Note**: If XFF is not present, we will use the remote address of the request. It can be either the IP of the client or the last proxy that sent the request.<br /><br /> It is specified by the value of the Common Gateway Interface (CGI) variable `REMOTE_ADDR`. | No | Android, iOS |\n| `signerHashes` | Base64 | A SHA-256 hash of the public key, certificate, and application signer. If there are more signers, then each hash is comma-separated.<br /><br /> **Note**: You can use this to detect whether the application has been re-signed. | No | Android |\n| `userAgent` | String | The HTTP User-Agent as reported from the mobile device application. | No | Android, iOS |\n| `deviceHash` | Base64 | The SHA256 hash of the unique hardware device ID for the client device. | Yes | Android, iOS |\n| `deviceManufacturer` | String | The manufacturer of the mobile device.<br /><br /> **Examples**: `Samsung`, `Apple`. | Yes | Android, iOS |\n| `deviceModel` | String | The model name of the mobile device.<br /><br /> **Examples**: `Nexus S`, `iPad2,2` | Yes | Android, iOS |\n| `operatingSystemType` | String | The operating system type of the mobile device.<br /><br /> **Examples**: `Android`, `iOS` | Yes | Android, iOS |\n| `applicationHash` | Base64 | The SHA256 hash of the application name.<br /><br /> **Note**: The server can use this for detecting re-packaging. | No | Android, iOS |\n| `clientSideIp` | JSON | An array containing the client network interfaces. This includes the type of the network and the IP address.<br /><br /> **Note**: The list can contain multiple interfaces if the end-user's device is connected to more than one at the time of the transaction.<br /><br /> **Examples**: `[{\"Type\":\"Cellular\",\"IPAddress\":\"123.123.123.123\"}, {\"Type\":\"Wifi\",\"IPAddress\":\"124.124.124.124\"}]` | No | Android, iOS |\n| `hwKeyClientStatus` | String | The status of the hardware-protected key signature preformed by the Encap client SDK.<br /><br /> **Note**: See [Hardware-protected key client statuses](#section/Common-concepts/Hardware-protected-key-client-statuses) for possible values. | No | Android, iOS |\n| `hwKeyServerResult` | String | The result of the hardware-protected key signature verification on the Encap server.<br /><br /> **Note**: See [Hardware-protected key server results](#section/Common-concepts/Hardware-protected-key-server-results) for possible values. | No | Android, iOS |\n| `batteryLevel` | Integer | The battery level of the mobile device, given as a percentage. | No | Android, iOS |\n| `isPowerConnected` | Boolean | Indicates whether or not the mobile device is being charged or is connected to a charger. | No | Android, iOS |\n| `timeZone` | String | The current time zone setting of the device. |  | Android, iOS |\n| `locale`  | String   | The current locale or language setting of the device. |  | Android, iOS |\n| `isDeveloperMode` | Boolean | Indicates whether the developer settings are enabled on the device. |  | Android | \n| `isOverlayDetected` | Boolean | Indicates whether a screen overlay is detected on the device. |  | Android | \n| `magnetometer` | JSON | An array containing the magnetic field strength measurements with timestamp from the device's magnetometer sensor. |  | iOS, Android |\n| `barometer` | JSON | An array containing atmospheric pressure measurements with timestamp from the device's barometer sensor. |  | iOS, Android |\n| `gravity` | JSON | An array containing gravity force measurements with timestamp from the device's gravity sensor. |  | iOS, Android |\n| `ssid` | Base64 | Provides the name of the Wi-Fi network that the device is connected to. |  | iOS, Android | \n| `bssid` | String | Provides the MAC address of the Wi-Fi access point to which the device is connected to. |  | iOS, Android |\n| `isVpnEnabled` | Boolean | Indicates whether the mobile device is connected to a VPN. |  | iOS, Android |\n| `isProxyEnabled` | Boolean | Indicates whether the mobile device is connected to a HTTP/HTTPS proxy. |  | iOS, Android |"
  },
  "servers": [
    {
      "url": "https://api.signicat.com/mobileid/core"
    }
  ],
  "tags": [
    {
      "name": "User",
      "description": "The MobileID user API provides you with operations related to creating and managing users (sometimes referred to as <i>identities</i>) for MobileID.\n\n-----\n\n <b>Note</b>: The request and response samples are for illustrative purposes only,\nand discrepancies can occur between the sample values in request and response objects.\n\n -----\n\n## Useful information\nMost operations in the MobileID service require a MobileID user, which is identified by a valid user ID (<code>userId</code>).\n\nA user may optionally contain attributes such as an address or phone number, in the form of key-value pairs.\n\nA MobileID user can have two different states:\n<table><th>User&nbsp;state</th><th>Description</th></tr>\n<tr><td><code>ACTIVE</code></td><td>An active state represents a normal MobileID user which is successfully registered.</td></tr>\n<tr><td><code>LOCKED</code></td><td>A locked state represents a MobileID user which has been locked.<br><br> You cannot perform any device operations on a MobileID user in a locked state.</td></tr>\n</table>\n"
    },
    {
      "name": "Registration",
      "description": "The MobileID registration API provides you with operations related to registering devices for MobileID.\n\n-----\n\n <b>Note</b>: The request and response samples are for illustrative purposes only,\nand discrepancies can occur between the sample values in request and response objects.\n\n-----\n\n## Useful information\nAll registration operations return a registration response containing an [operation state](/apis/mobileid/#section/Common-concepts/Operation-states).\n\n#### Registration modes\nThere are two registration modes (<code>registrationMode</code>) for creating and updating a registration:\n\n<table><tr><td><b>Registration mode</b></td> <td><b>Description</b></td></tr>\n<tr><td><code>REGISTRATION</code></td> <td>Registration (<code>REGISTRATION</code>) is the default registration mode, and will be set automatically if no registration mode is specified in the request for the <b>Start registration</b> operation.<br><br> You can also set this manually by specifying <code>REGISTRATION</code> as the registration mode.</td></tr>\n<tr><td><code>RE_REGISTRATION</code></td> <td>In re-registration (<code>RE_REGISTRATION</code>) mode, users can be re-registered and create new login credentials on the same device ID (<code>deviceId</code>), given that they are using the same device that they were originally enrolled on. This allows you to reuse the same device ID, instead of creating a new one.<br><br>To trigger a re-registration, you must set <code>RE_REGISTRATION</code> as the registration mode in the <b>Start registration</b> operation.</td></tr></table>\n\n#### Operation context\nWhen you perform a registration, you can use our post-operation context (<code>postOperationContext</code>).\n\nTo learn more, see our <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/operation-context\" target=\"_blank\">operation context</a> feature documentation.\n"
    },
    {
      "name": "Authentication",
      "description": "The MobileID authentication API provides you with operations related to authentication and authorisation for MobileID.\n\n-----\n\n <b>Note</b>: The request and response samples are for illustrative purposes only,\nand discrepancies can occur between the sample values in request and response objects.\n\n-----\n\n## Useful information\nAll authentication operations return an authentication response containing an [operation state](/apis/mobileid/#section/Common-concepts/Operation-states).\n\n#### Operation context\nWhen you perform an authentication, you can use our pre-operation context (<code>preOperationContext</code>) and post-operation context (<code>postOperationContext</code>).\n\nTo learn more, see our <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/operation-context\" target=\"_blank\">operation context</a> feature documentation.\n"
    },
    {
      "name": "Signature",
      "description": "The MobileID signature API provides you with operations related to signing for MobileID.\n\nYou can read more about the signature operation in our [Signature](https://developer.signicat.com/docs/mobile-identity/mobileid/features/signature) feature documentation.\n\n-----\n\n <b>Note</b>: The request and response samples are for illustrative purposes only,\nand discrepancies can occur between the sample values in request and response objects.\n\n-----\n\n## Useful information\n\nAll signature operations return a signature response containing an [operation state](/apis/mobileid/#section/Common-concepts/Operation-states).\n\n#### Operation context\nWhen you perform a signing, you can use our pre-operation context (<code>preOperationContext</code>) and post-operation context (<code>postOperationContext</code>).\n\nTo learn more, see our <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/operation-context\" target=\"_blank\">operation context</a> feature documentation.\n\n"
    },
    {
      "name": "Device management",
      "description": "The MobileID device management API provides you with operations related to device management for MobileID.\n\n-----\n\n <b>Note</b>: The request and response samples are for illustrative purposes only,\nand discrepancies can occur between the sample values in request and response objects.\n\n-----\n\n## Useful information\nAll device management operations require:\n<ul><li>A MobileID user, identified by a user ID (<code>userID</code>).</li>\n<li>A registered device, identified by a device ID (<code>deviceID</code>).</li></ul>\n\n"
    },
    {
      "name": "Account recovery",
      "description": "\nThe MobileID account recovery API provides you with operations for our MobileID account recovery feature.\n\n-----\n\n<b>Note</b>: The request and response samples are for illustrative purposes only,\nand discrepancies can occur between the sample values in request and response objects.\n\n-----\n\n## Useful information\nThe operations in this API require the transaction ID (`transactionId`) of the recovery.\n\nTo find the `transactionId`, you need to:\n1. Use the [Get device transactions](/apis/mobileid/#tag/Device-management/operation/getDeviceTransactions) endpoint to see all device transactions for a specified device.\n2. Look for transactions with operation type (`operationType`) as `RECOVERY`.\n3. Locate the `transactionId` in this response. This is what you should use for operations in this API.\n"
    },
    {
      "name": "Identity verification",
      "description": "The MobileID identity verification API provides you with operations related to managing the results of identity verification processes,\nand allows you to link them to the MobileID users that perform them.\n\nThe identity verification processes are performed in the Signicat [ID Document and Biometric Verification](https://developer.signicat.com/docs/id-document-and-biometric-verification/) product.\n\n-----\n\n<b>Note</b>: The request and response samples are for illustrative purposes only,\nand discrepancies can occur between the sample values in request and response objects.\n\n-----\n\n## Useful information\nSome operations in this API require the proofing ID (`proofingId`) of the identity verification, which is created when the identity verification is added.\n"
    }
  ],
  "paths": {
    "/devices/{deviceId}/recovery-lock": {
      "get": {
        "tags": [
          "Device management"
        ],
        "summary": "Get recovery lock",
        "description": "You can use the <b>Get recovery lock</b> operation to check whether the MobileID account recovery feature is locked or not for a given end-user's device, specified by the device ID (<code>deviceID</code>).\n\nIf the account recovery feature is enabled in the application configuration, then all devices can use account recovery by default, and the recovery lock (<code>recoveryLock</code>) parameter will have value <code>false</code>.\n\n",
        "operationId": "getRecoveryLockStatus",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the recovery lock status for the device.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecoveryLock",
                  "additionalProperties": false
                },
                "example": {
                  "recoveryLock": false
                }
              }
            }
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Invalid_request",
                  "code": "invalid_request",
                  "status": 400,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "userId parameter is missing"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "409": {
            "description": "The device is deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Device is deleted",
                  "code": "device_is_deleted",
                  "status": 409,
                  "traceId": "Cannot carry out operation on device with state DELETED",
                  "detail": "userId parameter is missing"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Device management"
        ],
        "summary": "Update recovery lock",
        "description": "You can use the <b>Update recovery lock</b> operation to disable the MobileID account recovery feature for a given end-user's device, specified by the device ID (<code>deviceID</code>).\n\nThis is done by updating the recovery lock (<code>recoveryLock</code>) parameter to <code>true</code>. This means that recovery operations cannot be performed.\n",
        "operationId": "putRecoveryLockStatus",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecoveryLockRequest",
                "additionalProperties": false
              },
              "example": {
                "recoveryLock": true
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Successfully updated the recovery lock status for the device.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecoveryLock",
                  "additionalProperties": false
                },
                "example": {
                  "recoveryLock": true
                }
              }
            }
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The user ID parameter is missing.": {
                    "description": "The user ID parameter is missing.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid_request",
                      "code": "invalid_request",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "userId parameter is missing"
                    }
                  },
                  "The request parameter is invalid.": {
                    "description": "The request parameter is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "You must provide recoveryLock and it must be true|false",
                      "traceId": "fb619e0f789111d96bea22dacae2cddd"
                    }
                  },
                  "The request identifier is invalid.": {
                    "description": "The request identifier is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid identifier",
                      "code": "invalid_identifier",
                      "status": 400,
                      "detail": "deviceId must start with a letter or digit and contain only digits, lowercase letters (a-f), and the character -",
                      "traceId": "05af98dcbe861fee1c0e156fdd5c21e5"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "409": {
            "description": "The device is deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Device is deleted",
                  "code": "device_is_deleted",
                  "status": 409,
                  "traceId": "Cannot carry out operation on device with state DELETED",
                  "detail": "userId parameter is missing"
                }
              }
            }
          }
        }
      }
    },
    "/devices/{deviceId}/geofencing": {
      "get": {
        "tags": [
          "Device management"
        ],
        "summary": "Get geofencing settings",
        "description": "Retrieve geofencing configuration for the given device.",
        "operationId": "getGeofencingSettings",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the geofencing settings for the device.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeofenceSettings",
                  "additionalProperties": false
                },
                "example": {
                  "mode": "OPTIONAL",
                  "allowedContinents": "EU",
                  "allowedCountries": "CT",
                  "deniedCountries": "RU"
                }
              }
            }
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Invalid_request",
                  "code": "invalid_request",
                  "status": 400,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "userId parameter is missing"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "409": {
            "description": "The device is deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Device is deleted",
                  "code": "device_is_deleted",
                  "status": 409,
                  "traceId": "Cannot carry out operation on device with state DELETED",
                  "detail": "userId parameter is missing"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Device management"
        ],
        "summary": "Update geofencing settings",
        "description": "Update geofencing configuration for the given device",
        "operationId": "putGeofencingSettings",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GeofenceSettings",
                "additionalProperties": false
              },
              "example": {
                "mode": "OPTIONAL",
                "allowedContinents": "EU",
                "allowedCountries": "CT",
                "deniedCountries": "RU"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Successfully updated the geofencing settings for the device.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeofenceSettings",
                  "additionalProperties": false
                },
                "example": {
                  "mode": "OPTIONAL",
                  "allowedContinents": "EU",
                  "allowedCountries": "CT",
                  "deniedCountries": "RU"
                }
              }
            }
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The user ID parameter is missing.": {
                    "description": "The user ID parameter is missing.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid_request",
                      "code": "invalid_request",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "userId parameter is missing"
                    }
                  },
                  "The request parameter is invalid.": {
                    "description": "The request parameter is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "You must provide recoveryLock and it must be true|false",
                      "traceId": "fb619e0f789111d96bea22dacae2cddd"
                    }
                  },
                  "The request identifier is invalid.": {
                    "description": "The request identifier is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid identifier",
                      "code": "invalid_identifier",
                      "status": 400,
                      "detail": "deviceId must start with a letter or digit and contain only digits, lowercase letters (a-f), and the character -",
                      "traceId": "05af98dcbe861fee1c0e156fdd5c21e5"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "409": {
            "description": "The device is deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Device is deleted",
                  "code": "device_is_deleted",
                  "status": 409,
                  "traceId": "Cannot carry out operation on device with state DELETED",
                  "detail": "userId parameter is missing"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Device management"
        ],
        "summary": "Delete geofencing settings",
        "description": "Delete geofencing configuration for the given device",
        "operationId": "deleteGeofencingSettings",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted the geofencing settings for the device."
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Invalid_request",
                  "code": "invalid_request",
                  "status": 400,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "userId parameter is missing"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "Not found. The server cannot find the requested resource.": {
                    "description": "Not found. The server cannot find the requested resource.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "User entity does not exist",
                      "code": "user_entity_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                    }
                  },
                  "The device does not exist.": {
                    "description": "The device does not exist.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Device does not exist",
                      "code": "device_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1d",
                      "detail": "Failed getting device by ID : ed85c025-4e6c-47e2-86ec-f0e58f739ee6 for user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789."
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "The device is deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Device is deleted",
                  "code": "device_is_deleted",
                  "status": 409,
                  "traceId": "Cannot carry out operation on device with state DELETED",
                  "detail": "userId parameter is missing"
                }
              }
            }
          }
        }
      }
    },
    "/users": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Create user",
        "description": "The <b>Create user</b> operation creates a valid MobileID user with an active (<code>ACTIVE</code>) user state (<code>state</code>).\n\nOnce the user is successfully created, a unique user ID (<code>userId</code>) is generated. This <code>userId</code> is then used to identify the user in all subsequent MobileID operations.\n",
        "operationId": "addUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRequest",
                "additionalProperties": false
              },
              "example": {
                "externalRef": "Empl10300469",
                "segment": "SE",
                "attributes": {
                  "firstname": "George",
                  "lastname": "Harrison"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully created a MobileID user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User",
                  "additionalProperties": false
                },
                "example": {
                  "externalRef": "Empl10300469",
                  "segment": "SE",
                  "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                  "created": "2022-08-23T12:28:57.123Z",
                  "state": "ACTIVE",
                  "attributes": {
                    "firstname": "George",
                    "lastname": "Harrison"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The attribute is invalid.": {
                    "description": "The attribute is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "Attribute:'FirstName'",
                          "reason": "Attribute:'FirstName' must start with a letter, digit or an '_', and contain only digits, lowercase letters (a-z), and the characters -._~"
                        }
                      ]
                    }
                  },
                  "Multiple attributes are invalid.": {
                    "description": "Multiple attributes are invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "Attribute:'FirstName'",
                          "reason": "Attribute:'FirstName' must start with a letter, digit or an '_', and contain only digits, lowercase letters (a-z), and the characters -._~"
                        },
                        {
                          "name": "Attribute:'LastName'",
                          "reason": "Attribute:'LastName' must start with a letter, digit or an '_', and contain only digits, lowercase letters (a-z), and the characters -._~"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "409": {
            "description": "Conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "User already exists": {
                    "description": "The error response when a user already exists.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "User entity already exists",
                      "code": "user_entity_already_exists",
                      "status": 409,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Aborting user creation. User entity with user ID: Empl10300469 already exists."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/users/resolve": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Resolve external reference",
        "description": "The <b>Resolve external reference</b> operation resolves a specified external reference for an end-user and returns the associated user ID (<code>userId</code>) to use for subsequent MobileID operations.",
        "operationId": "resolveUserIDByExtref",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalRefResolveRequest",
                "additionalProperties": false
              },
              "example": {
                "externalRef": "Empl10300469"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully resolved the external reference and fetched the MobileID user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserIdValue",
                  "additionalProperties": false
                },
                "example": {
                  "externalRef": "Empl10300469",
                  "userId": "0e99b25c-abde-4553-973b-8d94d49cd87e"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with external reference: bobdylan."
                }
              }
            }
          }
        }
      }
    },
    "/signatures": {
      "post": {
        "tags": [
          "Signature"
        ],
        "summary": "Start signing",
        "description": "The <b>Start signing</b> operation initiates a signing on the end-user's device.\n\nThe operation response is returned with an operation state (<code>state</code>) set to <code>PENDING</code>, as the end-user now has to complete the operation on their device.\n\nThe operation response contains a transaction ID (<code>transactionId</code>) that will be used for subsequent operations, such as checking the status of the operation.\n\n\n",
        "operationId": "addSignature",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignatureRequest",
                "additionalProperties": false
              },
              "example": {
                "userId": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                "device": {
                  "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
                },
                "operationProperties": {
                  "sessionTimeout": "90000",
                  "preOperationContext": {
                    "title": "Consent Sign",
                    "content": "Pay me 100$",
                    "mimeType": "text/plain"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The request to start signing was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Signature",
                  "additionalProperties": false
                },
                "example": {
                  "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                  "accountId": "a-sdge-Abcdefghijk123456789",
                  "state": "PENDING",
                  "operationProperties": {
                    "preOperationContext": {
                      "title": "Consent Sign",
                      "content": "Pay me 100$",
                      "mimeType": "text/plain"
                    },
                    "pushSent": false,
                    "sessionExpiryTime": "2022-08-19T06:04:53.123Z",
                    "sendPush": false
                  },
                  "created": "2022-08-19T06:03:23.123Z",
                  "device": {
                    "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                    "name": "sampleDevice",
                    "state": "ACTIVE",
                    "lastOperationType": "SIGNING",
                    "created": "2022-08-22T09:09:11.123Z",
                    "lastUsed": "2022-08-22T09:09:42.123Z"
                  },
                  "user": {
                    "externalRef": "Empl10300469",
                    "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                    "created": "2022-08-19T05:59:16.123Z",
                    "lastUsed": "2022-08-19T06:01:44.123Z",
                    "state": "ACTIVE"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The request parameter is invalid.": {
                    "description": "The request parameter is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "userId",
                          "reason": "userId cannot be null or empty"
                        }
                      ]
                    }
                  },
                  "Multiple request parameters are invalid.": {
                    "description": "Multiple request parameters are invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "userId",
                          "reason": "userId cannot be null or empty"
                        },
                        {
                          "name": "preOperationContext",
                          "reason": "Operation context's content cannot be null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          }
        }
      }
    },
    "/registrations": {
      "post": {
        "tags": [
          "Registration"
        ],
        "summary": "Start registration",
        "description": "The <b>Start registration</b> operation initiates a registration for the end-user's device.\n\nThe operation response is returned with an operation state (<code>state</code>) set to <code>PENDING</code>, as the end-user now has to complete the operation on their device.\n\nThe operation response contains:\n<ul><li>A transaction ID (<code>transactionId</code>) that will be used for subsequent operations, such as checking the status of the operation.</li>\n<li>An activation code (<code>activationCode</code>) which is to be used for registration of the device in the app.</li></ul>\n",
        "operationId": "addRegistration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrationRequest",
                "additionalProperties": false
              },
              "example": {
                "userId": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                "device": {
                  "name": "My iPhone"
                },
                "operationProperties": {
                  "registrationMode": "REGISTRATION",
                  "authLevel": "TWO_FACTOR",
                  "sessionTimeout": "90000"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The request to start registration was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Registration",
                  "additionalProperties": false
                },
                "example": {
                  "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                  "accountId": "a-sdge-Abcdefghijk123456789",
                  "state": "PENDING",
                  "operationProperties": {
                    "activationCode": "928401",
                    "authLevel": "TWO_FACTOR",
                    "sessionTimeout": "90000",
                    "sessionExpiryTime": "2021-01-21T24:17:57.123Z",
                    "registrationMode": "REGISTRATION"
                  },
                  "created": "2021-01-21T22:47:27.123Z",
                  "device": {
                    "name": "My iPhone"
                  },
                  "user": {
                    "externalRef": "Empl10300469",
                    "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                    "created": "2021-01-21T22:47:27.100Z",
                    "state": "ACTIVE"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The request parameter is invalid.": {
                    "description": "The request parameter is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "userId",
                          "reason": "userId cannot be null or empty"
                        }
                      ]
                    }
                  },
                  "Multiple request parameters are invalid.": {
                    "description": "Multiple request parameters are invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "userId",
                          "reason": "Invalid UUID string: f4efbade-d474-4697-b910"
                        },
                        {
                          "name": "registrationMode",
                          "reason": "Registration mode must be one of REGISTRATION|RE_REGISTRATION"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          }
        }
      }
    },
    "/id-verifications": {
      "post": {
        "tags": [
          "Identity verification"
        ],
        "summary": "Add identity verification",
        "description": "The <b>Add identity verification</b> operation adds an entry to the list of an end-user's identity verifications.\n\nOnce the identity verification is successfully added, a unique proofing ID (<code>proofingId</code>) is generated.\nThis <code>proofingId</code> is then used to identify the identity verification for subsequent operations.\n",
        "operationId": "addIDVerification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IDVerificationAddRequest",
                "additionalProperties": false
              },
              "example": {
                "userId": "49ded4a2-1617-45a7-991d-785c2ad77fa5",
                "provider": "eid",
                "dossierId": "66666666-1617-45a7-991d-785c2ad77111",
                "processId": "88888888-1617-45a7-991d-785c2ad77222",
                "orchestrationId": "7777777-1617-45a7-991d-785c2ad77111"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully added an identity verification.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IDVerification",
                  "additionalProperties": false
                },
                "example": {
                  "proofingId": "b477c7fc-93d0-4e9d-bc58-7444bc33ef12",
                  "userId": "49ded4a2-1617-45a7-991d-785c2ad77fa5",
                  "proofingType": "ID_VERIFICATION",
                  "provider": "eid",
                  "dossierId": "66666666-1617-45a7-991d-785c2ad77111",
                  "processId": "88888888-1617-45a7-991d-785c2ad77222",
                  "created": "2023-01-03T07:55:05.233Z",
                  "orchestrationId": "7777777-1617-45a7-991d-785c2ad77111"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          }
        }
      }
    },
    "/authentications": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Start authentication",
        "description": "The <b>Start authentication</b> operation initiates an authentication on the end-user's device.\n\nThe operation response is returned with an operation state (<code>state</code>) set to <code>PENDING</code>, as the end-user now has to complete the operation on their device.\n\nThe operation response contains a transaction ID (<code>transactionId</code>) that will be used for subsequent operations, such as checking the status of the operation.\n\n",
        "operationId": "addAuthentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationRequest",
                "additionalProperties": false
              },
              "examples": {
                "The device is specified.": {
                  "description": "The device is specified.",
                  "value": {
                    "userId": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                    "device": {
                      "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
                    },
                    "operationProperties": {
                      "sessionTimeout": "90000"
                    },
                    "tags": [
                      "some tag",
                      "another tag"
                    ]
                  }
                },
                "Broadcast mode is enabled.": {
                  "description": "Broadcast mode is enabled.",
                  "value": {
                    "userId": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                    "device": {},
                    "operationProperties": {
                      "sessionTimeout": "90000",
                      "broadcast": true
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The request to start authentication was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Authentication",
                  "additionalProperties": false
                },
                "examples": {
                  "The device is specified.": {
                    "description": "The device is specified.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "PENDING",
                      "operationProperties": {
                        "sessionExpiryTime": "2022-08-19T06:03:07.123Z",
                        "pushSent": false
                      },
                      "created": "2022-08-19T06:01:37.123Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "sampleDevice",
                        "state": "ACTIVE",
                        "lastOperationType": "AUTHENTICATION",
                        "lastUsed": "2022-08-22T09:09:42.123Z",
                        "created": "2022-08-22T09:09:24.123Z"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-19T05:59:16.123Z",
                        "lastUsed": "2022-08-19T05:59:26.123Z",
                        "state": "ACTIVE"
                      },
                      "tags": [
                        "some tag",
                        "another tag"
                      ]
                    }
                  },
                  "Broadcast mode is enabled.": {
                    "description": "Broadcast mode is enabled.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "PENDING",
                      "operationProperties": {
                        "sessionExpiryTime": "2022-08-19T06:03:07.123Z",
                        "broadcast": true,
                        "pushSent": false
                      },
                      "created": "2022-08-19T06:01:37.123Z",
                      "device": {},
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-19T05:59:16.123Z",
                        "lastUsed": "2022-08-19T05:59:26.123Z",
                        "state": "ACTIVE"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "Not found. The server cannot find the requested resource.": {
                    "description": "Not found. The server cannot find the requested resource.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "userId",
                          "reason": "userId cannot be null or empty"
                        }
                      ]
                    }
                  },
                  "Multiple request parameters are invalid.": {
                    "description": "Multiple request parameters are invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1d",
                      "invalidParams": [
                        {
                          "name": "userId",
                          "reason": "userId cannot be null or empty"
                        },
                        {
                          "name": "authLevel",
                          "reason": "Authentication level must be one of ONE_FACTOR|TWO_FACTOR"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          }
        }
      }
    },
    "/users/{userId}": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get user",
        "description": "The <b>Get user</b> operation retrieves detailed information for a MobileID user, specified by the user ID (<code>userId</code>).",
        "operationId": "getUser",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The ID of the user (<code>userId</code>) as generated upon user creation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) as generated upon user creation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the MobileID user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User",
                  "additionalProperties": false
                },
                "example": {
                  "externalRef": "Empl10300469",
                  "segment": "SE",
                  "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                  "created": "2022-08-23T12:28:57.123Z",
                  "state": "ACTIVE",
                  "attributes": {
                    "firstname": "George",
                    "lastname": "Harrison"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Delete user",
        "description": "The <b>Delete user</b> operation deletes a MobileID user, specified by the user ID (<code>userId</code>).\n\nOnly user entities in a locked (<code>LOCKED</code>) user state (<code>state</code>) can be deleted.\n",
        "operationId": "deleteUser",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The ID of the user (<code>userId</code>) as generated upon user creation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) as generated upon user creation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted the MobileID user."
          },
          "400": {
            "description": "The MobileID user must be in a LOCKED state to be deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Invalid operation",
                  "code": "invalid_operation",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "User entity must be in LOCKED state in order to be deleted."
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "User"
        ],
        "summary": "Update user",
        "description": "The <b>Update user</b> operation updates the attributes of a MobileID user, specified by the user ID (<code>userId</code>).\n\nTo do this, you must specify the key-value pairs that you want to add, update or remove. If an attribute is not mentioned, it will stay the same.\n\nIn summary, this means that:\n<ul><li>If the attribute in the list does not exist, then the new attribute will be added.</li>\n<li>If the attribute in the list already exists, then the existing attribute will be updated (patched).</li>\n<li>If the attribute in the list already exists and <code>null</code> is specified, then the existing attribute will be removed.</li>\n<li>If the attribute in the list does not exist and <code>null</code> is specified, then no action will occur.</li></ul>\n\n## Example\nIf the following attributes were given in the <b>Create user</b> operation:\n\n```json\n{\n    \"externalRef\":\"test1\",\n    \"attributes\": {\n        \"abc\": \"123\",\n        \"def\": \"456\",\n        \"ghi\": \"789\"\n    }\n}\n```\nAnd the following attributes were given in the <b>Update user</b> operation:\n\n```json\n{\n    \"abc\": \"example1\",\n    \"xxx\": \"example2\",\n    \"ghi\": null\n}\n```\nThen the result would be the following attributes:\n\n```json\n{\n    \"abc\": \"example1\",\n    \"def\": \"456\",\n    \"xxx\": \"example2\"\n}\n```\n",
        "operationId": "updateUser",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The ID of the user (<code>userId</code>) as generated upon user creation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) as generated upon user creation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateRequest",
                "additionalProperties": false
              },
              "example": {
                "segment": "NO",
                "attributes": {
                  "lastname": null,
                  "age": "44"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated the MobileID user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User",
                  "additionalProperties": false
                },
                "example": {
                  "externalRef": "Empl10300469",
                  "segment": "NO",
                  "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                  "created": "2021-01-21T22:47:27.123Z",
                  "lastUsed": "2021-01-21T22:47:27.123Z",
                  "state": "ACTIVE",
                  "attributes": {
                    "firstname": "George",
                    "age": "44"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The request identifier is invalid.": {
                    "description": "The request identifier is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid identifier",
                      "code": "invalid_identifier",
                      "status": 400,
                      "detail": "userId must start with a letter or digit and contain only digits, lowercase letters (a-f), and the character -",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c"
                    }
                  },
                  "The request parameter is invalid.": {
                    "description": "The request parameter is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "state",
                          "reason": "User state must be one of ACTIVE|LOCKED"
                        }
                      ]
                    }
                  },
                  "Multiple request parameters are invalid.": {
                    "description": "Multiple request parameters are invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid request parameter",
                      "code": "invalid_request_parameter",
                      "status": 400,
                      "detail": "Your request body parameters have failed validation.",
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "invalidParams": [
                        {
                          "name": "state",
                          "reason": "User state must be one of ACTIVE|LOCKED"
                        },
                        {
                          "name": "Attribute:'FirstName'",
                          "reason": "Attribute:'FirstName' must start with a letter, digit or an '_', and contain only digits, lowercase letters (a-z), and the characters -._~"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          },
          "409": {
            "description": "Conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity already exists",
                  "code": "user_entity_already_exists",
                  "status": 409,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Aborting user creation. User entity with user ID: Empl10300469 already exists."
                }
              }
            }
          }
        }
      }
    },
    "/devices/{deviceId}": {
      "get": {
        "tags": [
          "Device management"
        ],
        "summary": "Get device",
        "description": "The <b>Get device</b> operation retrieves detailed information for an end-user's device, specified by the device ID (<code>deviceId</code>).\n\nYou can use the detailed (<code>detailed</code>) query parameter to return a more extensive set of device information in the operation response.\n",
        "operationId": "getDevice",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          },
          {
            "name": "detailed",
            "in": "query",
            "description": "Control whether the device details object (<code>deviceDetails</code>) is returned in the response. \n\n To return this object, you must set this parameter to <code>true</code>. \n\n",
            "required": false,
            "schema": {
              "type": "boolean",
              "additionalProperties": false,
              "description": "Control whether the device details object (<code>deviceDetails</code>) is returned in the response. \n\n To return this object, you must set this parameter to <code>true</code>. \n\n",
              "example": true
            },
            "example": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the device.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device",
                  "additionalProperties": false
                },
                "examples": {
                  "The default response.": {
                    "description": "The default response, when detailed is not set to 'true'.",
                    "value": {
                      "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                      "name": "sampleDevice",
                      "state": "ACTIVE",
                      "lastOperationType": "AUTHENTICATION",
                      "lastUsed": "2021-01-21T22:47:27.123Z",
                      "created": "2021-01-21T22:47:27.123Z"
                    }
                  },
                  "The detailed response.": {
                    "description": "The detailed response, when detailed is set to 'true'.",
                    "value": {
                      "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                      "name": "sampleDevice",
                      "state": "ACTIVE",
                      "lastOperationType": "AUTHENTICATION",
                      "lastUsed": "2021-01-21T22:47:27.123Z",
                      "created": "2021-01-21T22:47:27.123Z",
                      "deviceDetails": {
                        "applicationId": "encap",
                        "currentClientApiVersion": "3.15.0",
                        "activatedClientApiVersion": "3.15.0",
                        "activatedEncapRelease": "R_3_3",
                        "deviceHash": "Xsx6d7bmhh9ovUvhqp5KLOs480%2FWCq3bq9%2FC0apC4TU%3D",
                        "pushAddress": "ap7cmrQQTc0zb5aCPgXV0JxvrFeOO6CguQklentLMsc",
                        "operatingSystemType": "iOS",
                        "activatedAuthenticationMethods": [
                          "DEVICE",
                          "DEVICE:PIN"
                        ],
                        "activationTime": "2017-04-05T12:23:00.000Z",
                        "lock": {
                          "lockReason": [
                            "LOCKED_BY_ADMIN",
                            "DEVICE_VERIFICATION_FAILED"
                          ]
                        },
                        "attestation": {
                          "appAttestStatus": "VERIFIED",
                          "appAttestDate": "2022-06-24T20:56:01.366Z"
                        },
                        "recoveries": [
                          {
                            "recoveryId": "f87ab8a1-6321-4af4-8b9c-f16d8b31b055",
                            "recoveryMethod": "CLOUD_BACKUP_RECOVERY_CODE",
                            "recoveryStatus": "RECOVERED",
                            "createdDate": "2023-02-28T11:52:17.437Z",
                            "updatedDate": "2023-02-28T11:57:16.372Z",
                            "recoveredDate": "2023-02-28T11:57:16.310Z"
                          }
                        ],
                        "recoveryLock": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Invalid_request",
                  "code": "invalid_request",
                  "status": 400,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "userId parameter is missing"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "Not found. The server cannot find the requested resource.": {
                    "description": "Not found. The server cannot find the requested resource.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "User entity does not exist",
                      "code": "user_entity_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                    }
                  },
                  "The device does not exist.": {
                    "description": "The device does not exist.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Device does not exist",
                      "code": "device_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1d",
                      "detail": "Failed getting device by ID : ed85c025-4e6c-47e2-86ec-f0e58f739ee6 for user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789."
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Device management"
        ],
        "summary": "Delete device",
        "description": "The <b>Delete device</b> operation deletes an end-user's device, specified by the device ID (<code>deviceId</code>). \n\n",
        "operationId": "deleteDevice",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "202": {
            "description": "Successfully deleted the device."
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Invalid_request",
                  "code": "invalid_request",
                  "status": 400,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "userId parameter is missing"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "Not found. The server cannot find the requested resource.": {
                    "description": "Not found. The server cannot find the requested resource.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "User entity does not exist",
                      "code": "user_entity_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                    }
                  },
                  "The device does not exist.": {
                    "description": "The device does not exist.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Device does not exist",
                      "code": "device_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1d",
                      "detail": "Failed getting device by ID : ed85c025-4e6c-47e2-86ec-f0e58f739ee6 for user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789."
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "The device is deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Device is deleted",
                  "code": "device_is_deleted",
                  "status": 409,
                  "traceId": "Cannot carry out operation on device with state DELETED",
                  "detail": "userId parameter is missing"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Device management"
        ],
        "summary": "Update device",
        "description": "The <b>Update device</b> operation updates the properties of an end-user's device, specified by the device ID (<code>deviceId</code>).\n\nUpdate properties such as:\n<ul><li>The device name.</li>\n<li>The device state (whether the device is locked or not).</li></ul>\n",
        "operationId": "updateDevice",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceUpdateRequest",
                "additionalProperties": false
              },
              "example": {
                "name": "My New iPhone",
                "state": "LOCKED"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated the device.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device",
                  "additionalProperties": false
                },
                "example": {
                  "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                  "name": "My New iPhone",
                  "state": "LOCKED",
                  "lastOperationType": "AUTHENTICATION",
                  "lastUsed": "2021-01-21T22:47:27.123Z",
                  "created": "2021-01-21T22:47:27.123Z"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The request parameter is invalid.": {
                    "description": "The request parameter is invalid.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Unknown property",
                      "code": "unknown_property",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Unknown property: 'naaame'"
                    }
                  },
                  "The user ID parameter is missing.": {
                    "description": "The user ID parameter is missing.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid_request",
                      "code": "invalid_request",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "userId parameter is missing"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "Not found. The server cannot find the requested resource.": {
                    "description": "Not found. The server cannot find the requested resource.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "User entity does not exist",
                      "code": "user_entity_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                    }
                  },
                  "The device does not exist.": {
                    "description": "The device does not exist.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Device does not exist",
                      "code": "device_does_not_exist",
                      "status": 404,
                      "traceId": "4bf239c088089f2bca77d3a413909f1d",
                      "detail": "Failed getting device by ID : ed85c025-4e6c-47e2-86ec-f0e58f739ee6 for user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789."
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "The device is deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Device is deleted",
                  "code": "device_is_deleted",
                  "status": 409,
                  "traceId": "Cannot carry out operation on device with state DELETED",
                  "detail": "userId parameter is missing"
                }
              }
            }
          }
        }
      }
    },
    "/users/{userId}/transactions": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get transactions for user",
        "description": "The <b>Get transactions for user</b> operation returns a list of device transactions for an end-user's devices.\n\n<b>Note</b>: The list contains device transactions from all of their available devices.\n",
        "operationId": "getUserTransactions",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "An optional parameter that you should only pass if you get an error due to a broadcast operation. ",
            "required": false,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "An optional parameter that you should only pass if you get an error due to a broadcast operation. ",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "An optional parameter that determines the number of objects (device transactions) that are shown on each page.\n\nIt must be a whole number ranging from <code>1</code> to <code>100</code>.\n\nIf not provided, the the default value of <code>100</code> will be used.\n",
            "required": false,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "An optional parameter that determines the number of objects (device transactions) that are shown on each page.\n\nIt must be a whole number ranging from <code>1</code> to <code>100</code>.\n\nIf not provided, the the default value of <code>100</code> will be used.\n",
              "example": 10
            },
            "example": 10
          },
          {
            "name": "offset",
            "in": "query",
            "description": "An optional parameter that determines the ID of the first transaction to include in the operation response,\nspecified by the transaction ID (<code>transactionId</code>).\n\nIf not provided, then the result will start with the first transaction in the device history.\n",
            "required": false,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "An optional parameter that determines the ID of the first transaction to include in the operation response,\nspecified by the transaction ID (<code>transactionId</code>).\n\nIf not provided, then the result will start with the first transaction in the device history.\n",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the transactions for the end-user’s devices.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MobileIDTransaction",
                  "additionalProperties": false
                },
                "example": {
                  "previous": "/users/d910994d-80b2-4125-a6b1-062b5b2f43ba/transactions?limit=1&offset=39277b72-53c2-4780-ad56-a8c8d8a33542",
                  "next": "/users/d910994d-80b2-4125-a6b1-062b5b2f43ba/transactions?limit=1&offset=a1c66944-e5e3-46e3-ba36-750622205ef3",
                  "limit": 1,
                  "transactions": [
                    {
                      "transactionId": "c5c25109-53ab-4f76-9724-93f77a9b4a7d",
                      "ref": "/authentications/mapped-from-c5c25109-53ab-4f76-9724-93f77a9b4a7d",
                      "operationType": "AUTHENTICATION",
                      "state": "SUCCESS",
                      "created": "2023-08-11T11:30:05.000Z",
                      "expires": "2023-08-11T11:31:05.000Z",
                      "deviceId": "db441aa4-dd01-4bf7-8795-f75a94ec8d61"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The user ID parameter is missing.": {
                    "description": "The user ID parameter is missing.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid_request",
                      "code": "invalid_request",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "userId parameter is missing"
                    }
                  },
                  "offset does not exist": {
                    "description": "offset does not exist",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid_request",
                      "code": "invalid_request",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Offset 58ccbe4f-5c81-4425-bb7d-f6378f35d402 does not exist"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Internal error",
                  "code": "internal_error",
                  "status": 500,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "error occurred"
                }
              }
            }
          }
        }
      }
    },
    "/signatures/{transactionId}": {
      "get": {
        "tags": [
          "Signature"
        ],
        "summary": "Get state of ongoing signing",
        "description": "The <b>Get state of ongoing signing</b> operation returns the signing response with an [operation state](/apis/mobileid/#section/Common-concepts/Operation-states) for a specified transaction ID (<code>transactionId</code>).\n",
        "operationId": "getSignature",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "description": "The ID of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the transaction.",
              "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
            },
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the state of the signing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Signature",
                  "additionalProperties": false
                },
                "examples": {
                  "Signing PENDING.": {
                    "description": "Response sample of when a signing is in progress.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "PENDING",
                      "operationProperties": {
                        "preOperationContext": {
                          "title": "Consent Sign",
                          "content": "Pay me 100$",
                          "mimeType": "text/plain"
                        },
                        "pushSent": false,
                        "sessionExpiryTime": "2022-08-19T06:04:53.123Z",
                        "sendPush": false
                      },
                      "created": "2022-08-19T06:03:23.123Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "sampleDevice",
                        "state": "ACTIVE",
                        "lastOperationType": "SIGNING",
                        "created": "2022-08-22T09:09:11.123Z",
                        "lastUsed": "2022-08-22T09:09:42.123Z"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-19T05:59:16.123Z",
                        "lastUsed": "2022-08-19T06:01:44.123Z",
                        "state": "ACTIVE"
                      }
                    }
                  },
                  "Signing COMPLETED.": {
                    "description": "Response sample of when a signing has been completed successfully.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "COMPLETED",
                      "operationProperties": {
                        "authLevel": "TWO_FACTOR",
                        "authMethod": "DEVICE_PIN",
                        "preOperationContext": {
                          "title": "Consent Sign",
                          "content": "Pay me 100$",
                          "mimeType": "text/plain"
                        },
                        "pushSent": false,
                        "sessionExpiryTime": "2022-08-19T06:04:53.123Z",
                        "sendPush": false,
                        "geoFencing": {
                          "countryCode": "NO",
                          "clientStatus": "OK",
                          "serverBoundaryValidation": "SUCCESS"
                        },
                        "clientData": "<client data>"
                      },
                      "riskAttributes": {},
                      "created": "2022-08-19T06:03:23.123Z",
                      "completed": "2022-08-19T06:03:32.123Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "sampleDevice",
                        "state": "ACTIVE",
                        "lastOperationType": "SIGNING",
                        "lastUsed": "2022-08-19T06:03:33.123Z",
                        "created": "2022-08-19T05:59:26.123Z"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-19T05:59:16.123Z",
                        "lastUsed": "2022-08-19T06:03:33.123Z",
                        "state": "ACTIVE"
                      },
                      "signature": "suppressed ..."
                    }
                  },
                  "Signing FAILED.": {
                    "description": "Response sample of when a signing has failed.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "FAILED",
                      "operationProperties": {
                        "authLevel": "TWO_FACTOR",
                        "preOperationContext": {
                          "title": "Consent Sign",
                          "content": "Pay me 100$",
                          "mimeType": "text/plain"
                        },
                        "pushSent": true,
                        "sessionTimeout": "90000",
                        "sessionExpiryTime": "2022-08-19T06:10:58.123Z"
                      },
                      "errorCode": "CANCELLED_BY_DEVICE",
                      "errorDescription": "The operation failed because the session was cancelled by the device.",
                      "created": "2022-08-22T09:09:28.123Z",
                      "completed": "2022-08-22T09:09:41.123Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "sampleDevice",
                        "state": "ACTIVE",
                        "lastOperationType": "SIGNING",
                        "lastUsed": "2022-08-22T09:09:42.123Z",
                        "created": "2022-08-22T09:09:24.123Z"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-22T09:09:11.123Z",
                        "lastUsed": "2022-08-22T09:09:42.123Z",
                        "state": "ACTIVE"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Transaction ID does not exist",
                  "code": "transaction_id_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "There is no request with the specified transaction ID"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Signature"
        ],
        "summary": "Cancel ongoing signing",
        "description": "The <b>Cancel ongoing signing</b> operation allows you to cancel the ongoing signing for a specified transaction ID (<code>transactionId</code>).",
        "operationId": "cancelSignature",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "description": "The ID of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the transaction.",
              "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
            },
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully cancelled the signing request."
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Transaction ID does not exist",
                  "code": "transaction_id_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "There is no request with the specified transaction ID"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          }
        }
      }
    },
    "/registrations/{transactionId}": {
      "get": {
        "tags": [
          "Registration"
        ],
        "summary": "Get state of ongoing registration",
        "description": "The <b>Get state of ongoing registration</b> operation returns the registration response with an [operation state](/apis/mobileid/#section/Common-concepts/Operation-states) for a specified transaction ID (<code>transactionId</code>).\n",
        "operationId": "getRegistration",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "description": "The ID of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the transaction.",
              "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
            },
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the state of the registration.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Registration",
                  "additionalProperties": false
                },
                "examples": {
                  "Registration PENDING.": {
                    "description": "Response sample of when a registration is in progress.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "PENDING",
                      "operationProperties": {
                        "activationCode": "928401",
                        "authLevel": "TWO_FACTOR",
                        "sessionTimeout": "90000",
                        "sessionExpiryTime": "2021-01-21T24:17:57.123Z",
                        "registrationMode": "REGISTRATION"
                      },
                      "created": "2021-01-21T22:47:27.123Z",
                      "device": {
                        "name": "My iPhone"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2021-01-21T22:47:27.100Z",
                        "state": "ACTIVE"
                      }
                    }
                  },
                  "Registration COMPLETED.": {
                    "description": "Response sample of when a registration has been completed successfully.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "COMPLETED",
                      "operationProperties": {
                        "activationCode": "928401",
                        "authLevel": "TWO_FACTOR",
                        "sessionExpiryTime": "2021-01-21T22:48:57.123Z",
                        "registrationMode": "REGISTRATION",
                        "geoFencing": {
                          "countryCode": "NO",
                          "clientStatus": "OK",
                          "serverBoundaryValidation": "SUCCESS"
                        },
                        "activatedAuthenticationMethods": [
                          "DEVICE",
                          "DEVICE:PIN"
                        ]
                      },
                      "riskAttributes": {
                        "hwKeyClientStatus": "OK_SIGNED_SUCCESS",
                        "deviceHash": "DCkhP7PqJPtCWlhdIo8EIiioJXadZtTb5E1V8GMmKOc=",
                        "signerHashes": "MWFgoYYrQg07r3I1NIX7J8GZUQIn6YclVVzUZ3arxrk="
                      },
                      "created": "2021-01-21T22:47:27.123Z",
                      "completed": "2021-01-21T22:52:27.654Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "My iPhone",
                        "state": "ACTIVE",
                        "lastOperationType": "REGISTRATION",
                        "lastUsed": "2022-08-19T06:03:33.123Z",
                        "created": "2022-08-19T05:59:26.123Z"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2021-01-21T22:47:27.888Z",
                        "state": "ACTIVE"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Transaction ID does not exist",
                  "code": "transaction_id_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "There is no request with the specified transaction ID"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Registration"
        ],
        "summary": "Cancel ongoing registration",
        "description": "The <b>Cancel ongoing registration</b> operation allows you to cancel the ongoing registration for a specified transaction ID (<code>transactionId</code>).",
        "operationId": "cancelRegistration",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "description": "The ID of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the transaction.",
              "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
            },
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully cancelled the registration request."
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Transaction ID does not exist",
                  "code": "transaction_id_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "There is no request with the specified transaction ID"
                }
              }
            }
          }
        }
      }
    },
    "/recoveries/{transactionId}": {
      "get": {
        "tags": [
          "Account recovery"
        ],
        "summary": "Get details of account recovery",
        "description": "The **Get details of account recovery** operation returns the details of the recovery that is carried out for a specific device.\n\nThese recovery details give you:\n- The state of the recovery.\n- Access to risk data and all other attributes created as part of the recovery process, if the operation is finished.\n\nTo use this endpoint, you need the transaction ID (transactionId) of the recovery. You can find out how to obtain this in the [Useful information](/apis/mobileid/#tag/Account-recovery/Useful-information) section for this API.\n",
        "operationId": "getAccountRecovery",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "description": "The ID of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the transaction.",
              "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
            },
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the details of the account recovery.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountRecoveryDetails",
                  "additionalProperties": false
                },
                "examples": {
                  "Account recovery fetch COMPLETED.": {
                    "description": "Sample response when account recovery has been completed successfully.",
                    "value": {
                      "transactionId": "a75064fe-c528-478d-81d3-0a7b404b84b9",
                      "accountId": "a-ppge-abcd1234ABCDxxxxxxx",
                      "state": "COMPLETED",
                      "device": {
                        "id": "b6759679-f956-4691-aebf-6ff5e6f924ec",
                        "name": "",
                        "state": "ACTIVE",
                        "lastOperationType": "REGISTRATION",
                        "lastUsed": "2024-06-25T06:18:13.002Z",
                        "created": "2024-06-25T06:18:12.969Z"
                      },
                      "user": {
                        "externalRef": "1234567890",
                        "id": "23ae6e6c-242d-4834-bbed-a9308218e5c4",
                        "created": "2024-06-20T09:46:14.133Z",
                        "lastUsed": "2024-06-25T06:18:12.937Z",
                        "state": "ACTIVE"
                      },
                      "created": "2024-06-25T06:18:23.000UTC",
                      "operationProperties": {
                        "sessionExpiryTime": "2024-06-25T06:23:23.000UTC",
                        "activatedAuthenticationMethods": [
                          "DEVICE",
                          "DEVICE:PIN"
                        ]
                      },
                      "riskAttributes": [
                        {
                          "name": "is_debuggable",
                          "value": "true"
                        },
                        {
                          "name": "is_power_connected",
                          "value": "false"
                        },
                        {
                          "name": "is_debugger_connected",
                          "value": "false"
                        },
                        {
                          "name": "is_secure_screen_lock_enabled",
                          "value": "false"
                        },
                        {
                          "name": "is_debug_enabled",
                          "value": "true"
                        },
                        {
                          "name": "is_emulator",
                          "value": "true"
                        },
                        {
                          "name": "is_root_available",
                          "value": "false"
                        }
                      ],
                      "recoveryMethod": "CLOUD_BACKUP_SERVER_SIDE_FACE",
                      "recoveryStatus": "RECOVERED"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Transaction ID does not exist",
                  "code": "transaction_id_does_not_exist",
                  "status": 404,
                  "detail": "Getting account recovery details failed. Transaction ID: 8eea29b2-8de6-4db5-8725-941905d7a792",
                  "traceId": "00000000000000000000000000000000"
                }
              }
            }
          }
        }
      }
    },
    "/id-verifications/{proofingId}": {
      "get": {
        "tags": [
          "Identity verification"
        ],
        "summary": "Get identity verification",
        "description": "The <b>Get identity verification</b> operation returns the identity verification specified by the proofing ID (<code>proofingId</code>).\n",
        "operationId": "getIDVerification",
        "parameters": [
          {
            "name": "proofingId",
            "in": "path",
            "description": "The ID of the identity verification, in a valid UUID format.\n\n<b>Note</b>:This is created when the identity verification is added.\n",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the identity verification, in a valid UUID format.\n\n<b>Note</b>:This is created when the identity verification is added.\n",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the identity verification for the user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IDVerification",
                  "additionalProperties": false
                },
                "example": {
                  "proofingId": "b477c7fc-93d0-4e9d-bc58-7444bc33ef12",
                  "userId": "49ded4a2-1617-45a7-991d-785c2ad77fa5",
                  "proofingType": "ID_VERIFICATION",
                  "provider": "eid",
                  "dossierId": "66666666-1617-45a7-991d-785c2ad77111",
                  "processId": "88888888-1617-45a7-991d-785c2ad77222",
                  "created": "2023-01-03T07:55:05.233Z",
                  "orchestrationId": "7777777-1617-45a7-991d-785c2ad77111"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "The user proofing does not exist",
                  "code": "user_proofing_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching proofing with proofing ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and user ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Identity verification"
        ],
        "summary": "Delete identity verification",
        "description": "The <b>Delete identity verification</b> deletes the identity verification specified by the proofing ID (<code>proofingId</code>).\n",
        "operationId": "deleteIDVerification",
        "parameters": [
          {
            "name": "proofingId",
            "in": "path",
            "description": "The ID of the identity verification, in a valid UUID format.\n\n<b>Note</b>:This is created when the identity verification is added.\n",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the identity verification, in a valid UUID format.\n\n<b>Note</b>:This is created when the identity verification is added.\n",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted the identity verification."
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "The user proofing does not exist",
                  "code": "user_proofing_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching proofing with proofing ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and user ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          }
        }
      }
    },
    "/devices": {
      "get": {
        "tags": [
          "Device management"
        ],
        "summary": "Get devices",
        "description": "The <b>Get devices</b> operation retrieves the list of devices for a MobileID user, specified by the user ID (<code>userId</code>). \n\n",
        "operationId": "getDevices",
        "parameters": [
          {
            "name": "states",
            "in": "query",
            "description": "A comma-separated list of the device states to fetch.\n\nIf not provided, then devices in <code>ACTIVE</code>, <code>LOCKED</code> and <code>DELETED</code> states are listed.\n",
            "required": false,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "A comma-separated list of the device states to fetch.\n\nIf not provided, then devices in <code>ACTIVE</code>, <code>LOCKED</code> and <code>DELETED</code> states are listed.\n",
              "example": "ACTIVE,LOCKED"
            },
            "example": "ACTIVE,LOCKED"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched devices.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "additionalProperties": false,
                  "contains": {
                    "additionalProperties": false
                  },
                  "items": {
                    "$ref": "#/components/schemas/BaseDevice",
                    "additionalProperties": false
                  },
                  "unevaluatedItems": {
                    "additionalProperties": false
                  }
                },
                "example": [
                  {
                    "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                    "name": "sampleDevice",
                    "state": "ACTIVE",
                    "lastOperationType": "AUTHENTICATION",
                    "lastUsed": "2021-01-21T22:47:27.123Z",
                    "created": "2021-01-21T22:47:27.123Z"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "The user ID parameter is missing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Invalid_request",
                  "code": "invalid_request",
                  "status": 400,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "userId parameter is missing"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Internal error",
                  "code": "internal_error",
                  "status": 500,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "error occurred"
                }
              }
            }
          }
        }
      }
    },
    "/devices/{deviceId}/transactions": {
      "get": {
        "tags": [
          "Device management"
        ],
        "summary": "Get device transactions",
        "description": "The <b>Get device transactions</b> operation returns a list of device transactions for an end-user's device, specified by the device ID (<code>deviceId</code>).",
        "operationId": "getDeviceTransactions",
        "parameters": [
          {
            "name": "deviceId",
            "in": "path",
            "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user's device (<code>deviceId</code>), as returned upon registration.",
              "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
            },
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          {
            "name": "userId",
            "in": "query",
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "An optional parameter that determines the number of objects (device transactions) that are shown on each page.\n\nIt must be a whole number ranging from <code>1</code> to <code>100</code>.\n\nIf not provided, the the default value of <code>100</code> will be used.\n",
            "required": false,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "An optional parameter that determines the number of objects (device transactions) that are shown on each page.\n\nIt must be a whole number ranging from <code>1</code> to <code>100</code>.\n\nIf not provided, the the default value of <code>100</code> will be used.\n",
              "example": 10
            },
            "example": 10
          },
          {
            "name": "offset",
            "in": "query",
            "description": "An optional parameter that determines the ID of the first transaction to include in the operation response,\nspecified by the transaction ID (<code>transactionId</code>).\n\nIf not provided, then the result will start with the first transaction in the device history.\n",
            "required": false,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "An optional parameter that determines the ID of the first transaction to include in the operation response,\nspecified by the transaction ID (<code>transactionId</code>).\n\nIf not provided, then the result will start with the first transaction in the device history.\n",
              "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
            },
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the transactions for the end-user’s device.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MobileIDTransaction",
                  "additionalProperties": false
                },
                "example": {
                  "previous": "/devices/d910994d-80b2-4125-a6b1-062b5b2f43ba/transactions?limit=1&offset=39277b72-53c2-4780-ad56-a8c8d8a33542&userId=6f29e1d4-6b36-4b80-9187-52dfc61c4a51",
                  "next": "/devices/d910994d-80b2-4125-a6b1-062b5b2f43ba/transactions?limit=1&offset=a1c66944-e5e3-46e3-ba36-750622205ef3&userId=6f29e1d4-6b36-4b80-9187-52dfc61c4a51",
                  "limit": 1,
                  "transactions": [
                    {
                      "transactionId": "c5c25109-53ab-4f76-9724-93f77a9b4a7d",
                      "ref": "/authentications/mapped-from-c5c25109-53ab-4f76-9724-93f77a9b4a7d",
                      "operationType": "AUTHENTICATION",
                      "state": "SUCCESS",
                      "created": "2023-08-11T11:30:05.000Z",
                      "expires": "2023-08-11T11:31:05.000Z",
                      "deviceId": "db441aa4-dd01-4bf7-8795-f75a94ec8d61"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "examples": {
                  "The user ID parameter is missing.": {
                    "description": "The user ID parameter is missing.",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid_request",
                      "code": "invalid_request",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "userId parameter is missing"
                    }
                  },
                  "offset does not exist": {
                    "description": "offset does not exist",
                    "value": {
                      "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                      "title": "Invalid_request",
                      "code": "invalid_request",
                      "status": 400,
                      "traceId": "4bf239c088089f2bca77d3a413909f1c",
                      "detail": "Offset 58ccbe4f-5c81-4425-bb7d-f6378f35d402 does not exist"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "User entity does not exist",
                  "code": "user_entity_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "Failed fetching user with user ID : 90e1b3e5-93a7-458e-b42b-d1b57e65e26a and account ID : a-sdge-Abcdefghijk123456789. "
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Internal error",
                  "code": "internal_error",
                  "status": 500,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "error occurred"
                }
              }
            }
          }
        }
      }
    },
    "/authentications/{transactionId}": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Get state of ongoing authentication",
        "description": "The <b>Get state of ongoing authentication</b> operation returns the authentication response with an [operation state](/apis/mobileid/#section/Common-concepts/Operation-states) for a specified transaction ID (<code>transactionId</code>).\n",
        "operationId": "getAuthentication",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "description": "The ID of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the transaction.",
              "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
            },
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched the state of the authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Authentication",
                  "additionalProperties": false
                },
                "examples": {
                  "Authentication PENDING.": {
                    "description": "Response sample of when an authentication is in progress.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "PENDING",
                      "operationProperties": {
                        "sessionExpiryTime": "2022-08-19T06:03:07.123Z",
                        "pushSent": false
                      },
                      "created": "2022-08-19T06:01:37.123Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "sampleDevice",
                        "state": "ACTIVE",
                        "lastOperationType": "AUTHENTICATION",
                        "lastUsed": "2022-08-22T09:09:42.123Z",
                        "created": "2022-08-22T09:09:24.123Z"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-19T05:59:16.123Z",
                        "lastUsed": "2022-08-19T05:59:26.123Z",
                        "state": "ACTIVE"
                      },
                      "tags": [
                        "some tag",
                        "another tag"
                      ]
                    }
                  },
                  "Authentication COMPLETED.": {
                    "description": "Response sample of when an authentication has been completed successfully.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sdge-Abcdefghijk123456789",
                      "state": "COMPLETED",
                      "operationProperties": {
                        "authMethod": "DEVICE_PIN",
                        "pushSent": false,
                        "sessionExpiryTime": "2022-08-19T06:03:07.123Z",
                        "authLevel": "TWO_FACTOR",
                        "geoFencing": {
                          "countryCode": "NO",
                          "clientStatus": "OK",
                          "serverBoundaryValidation": "SUCCESS"
                        },
                        "clientData": "<client data>"
                      },
                      "riskAttributes": {},
                      "created": "2022-08-19T06:01:37.123Z",
                      "completed": "2022-08-19T06:01:44.123Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "sampleDevice",
                        "state": "ACTIVE",
                        "lastUsed": "2022-08-19T06:01:44.123Z",
                        "created": "2022-08-19T05:59:26.123Z",
                        "lastOperationType": "AUTHENTICATION"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-19T05:59:16.123Z",
                        "lastUsed": "2022-08-19T06:01:44.123Z",
                        "state": "ACTIVE"
                      }
                    }
                  },
                  "Authentication FAILED.": {
                    "description": "Response sample of when an authentication has failed.",
                    "value": {
                      "transactionId": "7daa489e-6b35-46ca-83a4-1bba2ea35f68",
                      "accountId": "a-sqge-Abcdefghijk123456789",
                      "state": "FAILED",
                      "operationProperties": {
                        "authLevel": "TWO_FACTOR",
                        "sessionTimeout": "90000",
                        "sessionExpiryTime": "2022-08-22T09:10:58.123Z",
                        "pushSent": true
                      },
                      "errorCode": "LOCKED_PIN_VERIFICATION_FAILED",
                      "errorDescription": "The operation failed because the device is locked by PIN verification.",
                      "created": "2022-08-22T09:09:28.123Z",
                      "completed": "2022-08-22T09:09:41.123Z",
                      "device": {
                        "id": "20874199-f4d1-4e9d-86ee-dd4a46030acb",
                        "name": "sampleDevice",
                        "state": "ACTIVE",
                        "lastOperationType": "AUTHENTICATION",
                        "lastUsed": "2022-08-22T09:09:42.123Z",
                        "created": "2022-08-22T09:09:24.123Z"
                      },
                      "user": {
                        "externalRef": "Empl10300469",
                        "id": "0e99b25c-abde-4553-973b-8d94d49cd87e",
                        "created": "2022-08-22T09:09:11.123Z",
                        "lastUsed": "2022-08-22T09:09:42.123Z",
                        "state": "ACTIVE"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Transaction ID does not exist",
                  "code": "transaction_id_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "There is no request with the specified transaction ID"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Authentication"
        ],
        "summary": "Cancel ongoing authentication",
        "description": "The <b>Cancel ongoing authentication</b> operation allows you to cancel the ongoing authentication for a specified transaction ID (<code>transactionId</code>).",
        "operationId": "cancelAuthentication",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "description": "The ID of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "additionalProperties": false,
              "description": "The ID of the transaction.",
              "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
            },
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully cancelled the authentication request."
          },
          "403": {
            "description": "Forbidden. The user is not authorised to perform this operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "code": "missing_permission",
                  "detail": "The subject with ID 'dev-ghastly-thread-446' does not have the required permission 'mobileid:user:read' on the target resource 'a-sdge-c2z0wgHkZjpBnS7uB621'",
                  "status": 403,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "title": "You do not have the required permission to perform this operation on the target resource",
                  "type": "https://developer.signicat.com/errors?code=missing_permission"
                }
              }
            }
          },
          "404": {
            "description": "Not found. The server cannot find the requested resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "additionalProperties": false
                },
                "example": {
                  "type": "https://developer.signicat.com/apis/mobileid/#section/Using-this-API/Errors",
                  "title": "Transaction ID does not exist",
                  "code": "transaction_id_does_not_exist",
                  "status": 404,
                  "traceId": "4bf239c088089f2bca77d3a413909f1c",
                  "detail": "There is no request with the specified transaction ID"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "postOperationContext": {
        "additionalProperties": false,
        "description": "The post-operation context.<br /><br /> The context sent to the app, through a secure end-to-end encrypted channel, **only after** the operation is successfully completed.<br /><br /> For the maximum character length of the operation context content (`content`), see [Operation context maximum character length](#section/Common-concepts/Operation-context-maximum-character-length).<br /><br /> For more information, see our [Operation context](https://developer.signicat.com/docs/mobile-identity/mobileid/features/operation-context) feature documentation.",
        "properties": {
          "title": {
            "type": "string",
            "additionalProperties": false,
            "description": "The title of the context",
            "example": "Consent Sign"
          },
          "content": {
            "type": "string",
            "additionalProperties": false,
            "description": "The content of the context"
          },
          "mimeType": {
            "type": "string",
            "additionalProperties": false,
            "description": "The mime type of the content",
            "example": "text/plain"
          }
        },
        "required": [
          "content",
          "mimeType"
        ]
      },
      "preOperationContext": {
        "additionalProperties": false,
        "description": "The pre-operation context.<br /><br /> The context sent to the app, through a secure end-to-end encrypted channel, **before** the operation is completed.<br /><br /> For the maximum character length of the operation context content (`content`), see [Operation context maximum character length](#section/Common-concepts/Operation-context-maximum-character-length).<br /><br /> For more information, see our [Operation context](https://developer.signicat.com/docs/mobile-identity/mobileid/features/operation-context) feature documentation.",
        "properties": {
          "title": {
            "type": "string",
            "additionalProperties": false,
            "description": "The title of the context",
            "example": "Consent Sign"
          },
          "content": {
            "type": "string",
            "additionalProperties": false,
            "description": "The content of the context"
          },
          "mimeType": {
            "type": "string",
            "additionalProperties": false,
            "description": "The mime type of the content",
            "example": "text/plain"
          }
        },
        "required": [
          "content",
          "mimeType"
        ]
      },
      "RecoveryLockRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "recoveryLock": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "A setting for a user's device which indicates whether the account recovery feature is enabled or not.\n\n<ul><li>When <code>false</code>, the account recovery feature is enabled and recovery operations can be performed.</li>\n<li>When <code>true</code>, the account recovery feature is disabled and recovery operations can not be performed.</li></ul>\n\n",
            "example": true,
            "writeOnly": true
          }
        }
      },
      "RecoveryLock": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "recoveryLock": {
            "type": "boolean",
            "additionalProperties": false
          }
        }
      },
      "GeofenceSettings": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The geofencing mode.\n\nThis can be either `OFF`, `OPTIONAL`, or `REQUIRED`.\n"
          },
          "allowedContinents": {
            "type": "string",
            "additionalProperties": false,
            "description": "Comma-separated list of continents where authentication <b>is allowed</b> for a specific device, in a  two-letter continent code format.\n\nThis can be either `AF`, `NA`, `OC`, `AN`, `AS`, `EU`, or `SA`.\n"
          },
          "allowedCountries": {
            "type": "string",
            "additionalProperties": false,
            "description": "Comma-separated list of countries where authentication <b>is allowed</b> for a specific device, in an ISO 3166-1 alpha-2 two-letter country code format.\n\nThese countries are in addition to those covered by the allowed continents parameter.\n\nYou can find a list of countries and corresponding codes at [GeoNames](https://www.geonames.org/countries/).\n"
          },
          "deniedCountries": {
            "type": "string",
            "additionalProperties": false,
            "description": "Comma-separated list of countries where authentication <b>is not allowed</b> for a specific device, in an ISO 3166-1 alpha-2 two-letter country code format.\n\nThese countries will be excluded from those covered by the allowed continents parameter.\n\nYou can find a list of countries and corresponding codes at [GeoNames](https://www.geonames.org/countries/).\n"
          }
        }
      },
      "UserRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalRef": {
            "type": "string",
            "additionalProperties": false,
            "description": "An identifier generated by you (the customer), that points to the user ID (<code>userId</code>) generated by MobileID when a new user is created.\n\nThe identifier must<ul>\n<li>be unique in the scope of the account</li>\n<li>have a max length of 128 characters.</li>\n </ul>\n",
            "example": "Empl10300469"
          },
          "segment": {
            "type": "string",
            "additionalProperties": false,
            "description": "An optional parameter, used for segmentation of end-users and their corresponding transactions.\n\nIt can have any value, but it cannot exceed the maximum possible length of 128 characters.\n",
            "example": "NO"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": false,
            "description": "The user attributes, given as key-value pairs.\n\nThe keys must:<ul>\n<li>Start with a letter (<code>a-z</code>), digit or an underscore (<code>_</code>).</li>\n<li>Contain only digits, lowercase letters (<code>a-z</code>), or certain special characters (<code>-._~:@</code>).</li>\n<li>Have a max length of 128 characters.</li>\n </ul>\nThe values must have a max length of 256 characters.\n",
            "example": {
              "firstname": "George",
              "lastName": "Harrison"
            }
          }
        }
      },
      "User": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalRef": {
            "type": "string",
            "additionalProperties": false,
            "description": "An identifier generated by you (the customer), that points to the user ID (<code>userId</code>) generated by MobileID when a new user is created.\n",
            "example": "Empl10300469"
          },
          "segment": {
            "type": "string",
            "additionalProperties": false,
            "description": "A parameter used for segmentation of end-users and their corresponding transactions.\n",
            "example": "NO"
          },
          "id": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>), in a valid UUID format.",
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user was created. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>. \n\n",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "lastUsed": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user last executed any <code>REGISTRATION</code>, <code>AUTHENTICATION</code> or <code>SIGNATURE</code> operation. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>. \n\n",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The state of the user. \n\n This is returned as an enum, and can be either <code>ACTIVE</code> or <code>LOCKED</code>.",
            "enum": [
              "ACTIVE",
              "LOCKED"
            ],
            "example": "ACTIVE"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": false,
            "description": "The user attributes, given as key-value pairs.\n",
            "example": {
              "firstname": "George",
              "lastName": "Harrison"
            }
          }
        }
      },
      "ExternalRefResolveRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalRef": {
            "type": "string",
            "additionalProperties": false,
            "description": "An identifier generated by you (the customer), that points to the user ID (<code>userId</code>) generated by MobileID when a new user is created.\n\nThe identifier must<ul>\n<li>be unique in the scope of the account</li>\n<li>have a max length of 128 characters.</li>\n </ul>\n",
            "example": "Empl10300469",
            "minLength": 1
          }
        },
        "required": [
          "externalRef"
        ]
      },
      "UserIdValue": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalRef": {
            "type": "string",
            "additionalProperties": false,
            "description": "An identifier generated by you (the customer), that points to the user ID (<code>userId</code>) generated by MobileID when a new user is created.\n\nThe identifier must<ul>\n<li>be unique in the scope of the account</li>\n<li>have a max length of 128 characters.</li>\n </ul>\n",
            "example": "Empl10300469"
          },
          "segment": {
            "type": "string",
            "additionalProperties": false,
            "description": "An optional parameter, used for segmentation of end-users and their corresponding transactions.\n\nIt can have any value, but it cannot exceed the maximum possible length of 128 characters.\n",
            "example": "NO"
          },
          "userId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>) as generated upon user creation, in a valid UUID format.",
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          }
        }
      },
      "DeviceRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "additionalProperties": false,
            "description": "The name of the user's device.\n\nThis is <b>only</b> relevant for <code>REGISTRATION</code> operations.\n\nIf a device <code>name</code> is specified, then it becomes the name of user's device being registered.\n\n\nThe name must have a max length of 128 characters.</li>\n </ul>\n",
            "example": "My iPhone"
          },
          "id": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user's device to be used for the operation.\n\n<ul><li>This field is mandatory for <code>RE_REGISTRATION</code> operations.</li>\n<li>This field should not be supplied for <code>REGISTRATION</code> operations, as the <code>id</code> will be generated by this operation.</li>\n<li>This field is mandatory for <code>AUTHENTICATION</code> and <code>SIGNATURE</code> operations, unless broadcast (<code>broadcast</code>) is set to <code>true</code>.</li></ul>\n",
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          }
        }
      },
      "SignatureOperationPropertiesRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "authMethod": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication method to use for the operation.\n\nSee [authentication methods](/apis/mobileid/#section/Common-concepts/Authentication-methods) for possible values.\n\nIf not provided, the user will be able to choose between all configured authentication methods supported on the device, except for server-side face authentication (<code>DEVICE_SERVER_SIDE_FACE</code>) which must be passed explicitly as the authentication method.\n",
            "example": "DEVICE_PIN"
          },
          "authLevel": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication level to use for the operation. \n\n If not provided, the default authentication level <code>TWO_FACTOR</code> will be used. \n\n See [authentication levels](/apis/mobileid/#section/Common-concepts/Authentication-levels) for possible values.",
            "example": "TWO_FACTOR"
          },
          "pushPayload": {
            "type": "string",
            "additionalProperties": false,
            "description": "A custom payload that is sent to the end-user’s device in the push notification.\n\nThe custom payload is sent in plain text, and all characters must be in the Basic Multilingual Plane (BMP).\n\nData requiring a secure channel should use the post-operation context and the pre-operation context, as the push channel is not secure.\n",
            "example": "Authentication operation"
          },
          "preOperationContext": {
            "$ref": "#/components/schemas/preOperationContext",
            "additionalProperties": false
          },
          "postOperationContext": {
            "$ref": "#/components/schemas/postOperationContext",
            "additionalProperties": false
          },
          "sendPush": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to send push or not.\n\nIn order to be sent, it requires that push notifications are configured in your <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#push-notifications\" target=\"_blank\">application configuration</a>.\n\nIf not specified, then push notifications will be sent depending on the settings in your application configuration.\n",
            "example": false
          },
          "broadcast": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to broadcast the operation to all of the user's active devices or not.\n\nThe default is <code>false</code>. To enable broadcast, you must set this property to <code>true</code>.\n\nIf broadcast is enabled:\n<ul><li>The device object in the operation request should either be empty, or it should not be supplied entirely.\n<li>Consider whether or not you supply `authMethod` in the request. Only devices that support the specified authentication method receive the broadcast, which means that you may limit the devices that can be used by supplying this.</li></ul>\n\n",
            "example": true
          },
          "sessionTimeout": {
            "type": "string",
            "additionalProperties": false,
            "description": "The duration after which the operation will timeout, given in milliseconds. \n\n This value cannot exceed the maximum configured value of <code>18720000</code>.",
            "example": "240000"
          },
          "metadata": {
            "type": "string",
            "additionalProperties": false,
            "description": "The metadata for the operation. \n\n This is an optional parameter, used for sending metadata. \n\n The value is never changed, and is returned in the operation response. \n\n This value cannot exceed the maximum possible length of 1024 characters."
          },
          "requestedUserAttributes": {
            "type": "array",
            "additionalProperties": false,
            "contains": {
              "additionalProperties": false
            },
            "description": "User attributes to be returned.\n\nIf empty, the user object returned after a successful operation will not include any attributes.\n\nNon-existent user attributes will be silently ignored.",
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "unevaluatedItems": {
              "additionalProperties": false
            }
          }
        }
      },
      "SignatureRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "userId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e",
            "minLength": 1
          },
          "device": {
            "$ref": "#/components/schemas/DeviceRequest",
            "additionalProperties": false,
            "description": "An object that contains the properties of the device to be used for this operation.\n\nFor registration:\n<ul><li>When a <code>REGISTRATION</code> is executed, this object is optional.\nIf specified, you can <b>only</b> supply the device <code>name</code>, since the device <code>id</code> is generated by this operation.</li>\n<li>When a <code>RE_REGISTRATION</code> of the existing device is executed, then this object is mandatory and the <code>id</code> field must be specified.</li></ul>\n\nFor authentication or signing\n<ul><li>The device object is mandatory <b>except</b> if broadcast is enabled.</li>\n<li>If broadcast is enabled, then then the device object does not need to be supplied.</li>\n<li>See the broadcast (<code>broadcast</code>) operation property for details.</li></ul>\n"
          },
          "tags": {
            "type": "array",
            "additionalProperties": false,
            "description": "Used to tag callback event to enable filtering.",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          },
          "operationProperties": {
            "$ref": "#/components/schemas/SignatureOperationPropertiesRequest",
            "additionalProperties": false,
            "description": "An object that describes the properties used to carry out the operation."
          }
        },
        "required": [
          "userId"
        ]
      },
      "AccountRecovery": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "recoveryId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the recovery.",
            "example": "11a107d7-42ac-4171-92b4-1fdb23c6e1f2"
          },
          "recoveryMethod": {
            "type": "string",
            "additionalProperties": false,
            "description": "The recovery method used for the recovery. \n\n See [recovery methods](/apis/mobileid/#section/Common-concepts/Recovery-methods) for possible values.",
            "example": "CLOUD_BACKUP_RECOVERY_CODE"
          },
          "recoveryStatus": {
            "type": "string",
            "additionalProperties": false,
            "description": "The status of the recovery. \n\n See [recovery statuses](/apis/mobileid/#section/Common-concepts/Recovery-statuses) for possible values.",
            "example": "ACTIVATED"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the recovery was created. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2022-06-24T20:56:01.405Z"
          },
          "modified": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the recovery was updated. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2022-06-24T20:56:01.405Z"
          },
          "recovered": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the recovery was used. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2022-06-24T20:56:01.373Z"
          }
        }
      },
      "AppAttestation": {
        "type": "object",
        "additionalProperties": false,
        "description": "An object that describes the properties of the attestation. \n\n In order for this object to be returned in response, it has to be enabled in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#app-attestation\" target=\"_blank\">application configuration</a>.",
        "properties": {
          "playIntegrityStatus": {
            "type": "string",
            "additionalProperties": false,
            "description": "The Play Integrity attestation status for the user's device. \n\n See [Play Integrity statuses](/apis/mobileid/#section/Common-concepts/Play-Integrity-statuses) for possible values.",
            "example": "VERIFIED"
          },
          "playIntegrityDate": {
            "type": "string",
            "additionalProperties": false,
            "description": "The date when the Play Integrity attestation was performed on the user's device.",
            "example": "2022-06-24T20:56:03.025Z"
          },
          "appAttestStatus": {
            "type": "string",
            "additionalProperties": false,
            "description": "The App Attest attestation status for the user's device. \n\n See [App Attest statuses](/apis/mobileid/#section/Common-concepts/App-Attest-statuses) for possible values.",
            "example": "VERIFIED"
          },
          "appAttestDate": {
            "type": "string",
            "additionalProperties": false,
            "description": "The date when the App Attest attestation was performed on the user's device.",
            "example": "2022-06-24T20:55:03.025Z"
          }
        }
      },
      "Device": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user's device (<code>deviceId</code>).",
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          "name": {
            "type": "string",
            "additionalProperties": false,
            "description": "The name of the user's device.",
            "example": "my iPhone"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The state of the user's device. \n\n This is returned as an enum, and can be either <code>ACTIVE</code>, <code>LOCKED</code> or <code>DELETED</code>.",
            "enum": [
              "ACTIVE",
              "LOCKED",
              "DELETED"
            ],
            "example": "ACTIVE"
          },
          "lastOperationType": {
            "type": "string",
            "additionalProperties": false,
            "description": "The last operation type that the user's device executed. \n\n See [operation type](/apis/mobileid/#section/Common-concepts/Operation-types) for possible values.",
            "example": "AUTHENTICATION"
          },
          "lastUsed": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user's device last executed an operation. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user's device was originally activated. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27"
          },
          "deviceDetails": {
            "$ref": "#/components/schemas/DeviceDetails",
            "additionalProperties": false,
            "description": "The device details object."
          }
        }
      },
      "DeviceDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "lock": {
            "$ref": "#/components/schemas/DeviceLock",
            "additionalProperties": false,
            "description": "An object that contains details about the device lock. \n\n This object is only supplied when the user's device is locked."
          },
          "activationTime": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user's device was originally activated.",
            "example": "2017-04-05T12:23:00.000Z",
            "readOnly": true
          },
          "deviceHash": {
            "type": "string",
            "additionalProperties": false,
            "description": "A SHA256 hash of the unique hardware device ID of the user's device.",
            "example": "Xsx6d7bmhh9ovUvhqp5KLOs480%2FWCq3bq9%2FC0apC4TU%3D",
            "readOnly": true
          },
          "applicationId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The application ID being used for the device.",
            "example": "encap",
            "readOnly": true
          },
          "currentClientApiVersion": {
            "type": "string",
            "additionalProperties": false,
            "description": "The Encap client API version that the user's device used for its last operation.",
            "example": "3.15.0"
          },
          "activatedClientApiVersion": {
            "type": "string",
            "additionalProperties": false,
            "description": "The Encap client API version that the user's device was originally activated on.",
            "example": "3.15.0"
          },
          "activatedEncapRelease": {
            "type": "string",
            "additionalProperties": false,
            "description": "The Encap server release version that the user's device was originally activated on.",
            "example": "R_3_3",
            "readOnly": true
          },
          "pushAddress": {
            "type": "string",
            "additionalProperties": false,
            "description": "The push address for the user's device. \n\n This address is used when sending a push to the device using Firebase Cloud Messaging (FCM) or Apple Push Notification Service (APNS).",
            "example": "ap7cmrQQTc0zb5aCPgXV0JxvrFeOO6CguQklentLMsc",
            "readOnly": true
          },
          "operatingSystemType": {
            "type": "string",
            "additionalProperties": false,
            "description": "The operating system type of the user's device.",
            "example": "iOS",
            "readOnly": true
          },
          "activatedAuthenticationMethods": {
            "type": "array",
            "additionalProperties": false,
            "description": "A list of the activated authentication methods for the user's device. \n\n See [authentication methods](/apis/mobileid/#section/Common-concepts/Authentication-methods) for possible values.",
            "example": [
              "DEVICE",
              "DEVICE:PIN"
            ],
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "readOnly": true
          },
          "attestation": {
            "$ref": "#/components/schemas/AppAttestation",
            "additionalProperties": false
          },
          "recoveries": {
            "type": "array",
            "additionalProperties": false,
            "description": "A list that contains all of the recoveries for a user's device.",
            "items": {
              "$ref": "#/components/schemas/AccountRecovery",
              "additionalProperties": false
            }
          },
          "recoveryLock": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "A setting for a user's device which indicates whether the account recovery feature is enabled or not.<ul><li>When <code>false</code>, the account recovery feature is enabled and recovery operations can be performed.</li><li>When <code>true</code>, the account recovery feature is disabled and recovery operations cannot be performed.</li></ul>"
          }
        }
      },
      "DeviceLock": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "lockReason": {
            "type": "array",
            "additionalProperties": false,
            "description": "A list that contains all reasons why the user's device has been locked. \n\n See [Lock reason](/apis/mobileid/#section/Common-concepts/Lock-reason) for possible values.",
            "example": [
              "LOCKED_BY_ADMIN",
              "DEVICE_VERIFICATION_FAILED"
            ],
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "readOnly": true
          }
        }
      },
      "Geofencing": {
        "type": "object",
        "additionalProperties": false,
        "description": "An object that contains details of the geofencing validation.\n\nIn order for this object to be returned in the response, it has to be enabled in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#geofencing\" target=\"_blank\">application configuration</a>.\n",
        "properties": {
          "countryCode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The country code in an ISO 3166-1 Alpha-2 format, as reported by the SDK.\n\nYou can find a list of countries and corresponding codes at [GeoNames](https://www.geonames.org/countries/).\n",
            "example": "NO"
          },
          "clientStatus": {
            "type": "string",
            "additionalProperties": false,
            "description": "The status of the geofencing operation, as reported by the SDK.\n\nSee [Geofencing client statuses](/apis/mobileid/#section/Common-concepts/Geofencing-client-statuses) for possible values.\n",
            "example": "GEOCODER_NOT_SUPPORTED"
          },
          "serverBoundaryValidation": {
            "type": "string",
            "additionalProperties": false,
            "description": "The status of the geofencing server validation, after evaluating the country against the allowed region.\n\nSee [Geofencing server boundary validation statuses](/apis/mobileid/#section/Common-concepts/Geofencing-server-boundary-validation-statuses) for possible values.\n",
            "example": "VERIFIED"
          }
        }
      },
      "Location": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "type": "string",
            "additionalProperties": false,
            "description": "The location accuracy of the device used for the operation.",
            "example": "0.564"
          },
          "altitude": {
            "type": "string",
            "additionalProperties": false,
            "description": "The location altitude of the device used for the operation.",
            "example": "76.2352.3563"
          },
          "latitude": {
            "type": "string",
            "additionalProperties": false,
            "description": "The location latitude of the device used for the operation.",
            "example": "12.34234.143"
          },
          "longitude": {
            "type": "string",
            "additionalProperties": false,
            "description": "The location longitude of the device used for the operation.",
            "example": "32.24314.1431"
          }
        }
      },
      "Signature": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "errorCode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The error code given if the operation fails. \n\n See [operation error codes](/apis/mobileid/#section/Common-concepts/Operation-error-codes) for possible values.",
            "example": "LOCKED_PIN_VERIFICATION_FAILED"
          },
          "errorDescription": {
            "type": "string",
            "additionalProperties": false,
            "description": "The descriptive error message given if the operation fails.",
            "example": "Operation failed because the device is locked by pin verification"
          },
          "riskAttributes": {
            "type": "object",
            "additionalProperties": false,
            "description": "The risk attributes collected for the device.\n\nSee [risk attributes](/apis/mobileid/#section/Common-concepts/Risk-attributes) for possible values.\n\nYou can find out how to configure which attributes are collected in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#risk-data\" target=\"_blank\">application configuration</a> feature documentation.\n",
            "example": {
              "hwKeyClientStatus": "OK_SIGNED_SUCCESS",
              "deviceHash": "DCkhP7PqJPtCWlhdIo8EIiioJXadZtTb5E1V8GMmKOc=",
              "signerHashes": "MWFgoYYrQg07r3I1NIX7J8GZUQIn6YclVVzUZ3arxrk="
            }
          },
          "accountId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the account for which the operation is executed.",
            "example": "a-sdge-Abcdefghijk123456789"
          },
          "transactionId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the transaction.",
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The operation state. \n\n See [operation state](/apis/mobileid/#section/Common-concepts/Operation-states) for possible values.",
            "example": "PENDING"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when initial response was created. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "completed": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the operation was completed. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:33.456Z"
          },
          "device": {
            "$ref": "#/components/schemas/Device",
            "additionalProperties": false,
            "description": "The device object."
          },
          "user": {
            "$ref": "#/components/schemas/User",
            "additionalProperties": false,
            "description": "The user object."
          },
          "tags": {
            "type": "array",
            "additionalProperties": false,
            "description": "Used to tag callback event to enable filtering.",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          },
          "signature": {
            "type": "string",
            "additionalProperties": false,
            "description": "The signed JSON Web Token (JWT) of the transaction. \n\n To learn more, see our [Signature](https://developer.signicat.com/docs/mobile-identity/mobileid/features/signature) feature documentation."
          },
          "operationProperties": {
            "$ref": "#/components/schemas/SignatureOperationProperties",
            "additionalProperties": false,
            "description": "An object that describes the properties used to carry out the operation."
          }
        }
      },
      "SignatureOperationProperties": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "authMethod": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication method to use for the operation.\n\nSee [authentication methods](/apis/mobileid/#section/Common-concepts/Authentication-methods) for possible values.\n\nIf not provided, the user will be able to choose between all configured authentication methods supported on the device, except for server-side face authentication (<code>DEVICE_SERVER_SIDE_FACE</code>) which must be passed explicitly as the authentication method.\n",
            "example": "DEVICE_PIN"
          },
          "authLevel": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication level to use for the operation. \n\n If not provided, the default authentication level <code>TWO_FACTOR</code> will be used. \n\n See [authentication levels](/apis/mobileid/#section/Common-concepts/Authentication-levels) for possible values.",
            "example": "TWO_FACTOR"
          },
          "pushPayload": {
            "type": "string",
            "additionalProperties": false,
            "description": "A custom payload that is sent to the end-user’s device in the push notification.\n\nThe custom payload is sent in plain text, and all characters must be in the Basic Multilingual Plane (BMP).\n\nData requiring a secure channel should use the post-operation context and the pre-operation context, as the push channel is not secure.\n",
            "example": "Authentication operation"
          },
          "broadcast": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to broadcast the operation to all of the user's active devices or not.\n\nThe default is <code>false</code>. To enable broadcast, you must set this property to <code>true</code>.\n\nIf broadcast is enabled:\n<ul><li>The device object in the operation request should either be empty, or it should not be supplied entirely.\n<li>Consider whether or not you supply `authMethod` in the request. Only devices that support the specified authentication method receive the broadcast, which means that you may limit the devices that can be used by supplying this.</li></ul>\n\n",
            "example": true
          },
          "preOperationContext": {
            "$ref": "#/components/schemas/preOperationContext",
            "additionalProperties": false
          },
          "postOperationContext": {
            "$ref": "#/components/schemas/postOperationContext",
            "additionalProperties": false
          },
          "sendPush": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to send push or not.\n\nIn order to be sent, it requires that push notifications are configured in your <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#push-notifications\" target=\"_blank\">application configuration</a>.\n\nIf not specified, then push notifications will be sent depending on the settings in your application configuration.\n",
            "example": false
          },
          "sessionTimeout": {
            "type": "string",
            "additionalProperties": false,
            "description": "The duration after which the operation will timeout, given in milliseconds. \n\n This value cannot exceed the maximum configured value of <code>18720000</code>.",
            "example": "240000"
          },
          "metadata": {
            "type": "string",
            "additionalProperties": false,
            "description": "The metadata for the operation. \n\n This is an optional parameter, used for sending metadata. \n\n The value is never changed, and is returned in the operation response. \n\n This value cannot exceed the maximum possible length of 1024 characters."
          },
          "clientData": {
            "type": "string",
            "additionalProperties": false,
            "description": "The data that the client application optionally passed at the point of the authentication.",
            "example": "<client data>"
          },
          "requestedUserAttributes": {
            "type": "array",
            "additionalProperties": false,
            "contains": {
              "additionalProperties": false
            },
            "description": "User attributes to be returned.\n\nIf empty, the user object returned after a successful operation will not include any attributes.\n\nNon-existent user attributes will be silently ignored.",
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "unevaluatedItems": {
              "additionalProperties": false
            }
          },
          "attestation": {
            "$ref": "#/components/schemas/AppAttestation",
            "additionalProperties": false
          },
          "location": {
            "$ref": "#/components/schemas/Location",
            "additionalProperties": false,
            "description": "An object that describes the location of the device used for the operation. \n\n In order to be returned in the response, it has to be enabled in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#risk-data\" target=\"_blank\">application configuration</a>."
          },
          "pushSent": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Informs you whether a push notification is sent or not.",
            "example": false
          },
          "geofencing": {
            "$ref": "#/components/schemas/Geofencing",
            "additionalProperties": false
          },
          "sessionExpiryTime": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the operation expires. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27.123Z"
          }
        }
      },
      "RegistrationOperationPropertiesRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "postOperationContext": {
            "$ref": "#/components/schemas/postOperationContext",
            "additionalProperties": false
          },
          "registrationMode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The registration mode to use for the operation. \n\n The possible values are <code>REGISTRATION</code> or <code>RE_REGISTRATION</code>. \n\n If not provided, the default registration mode <code>REGISTRATION</code> will be used.",
            "example": "RE_REGISTRATION"
          },
          "authLevel": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication level to use for the operation. \n\n If not provided, the default authentication level <code>TWO_FACTOR</code> will be used. \n\n See [authentication levels](/apis/mobileid/#section/Common-concepts/Authentication-levels) for possible values.",
            "example": "TWO_FACTOR"
          },
          "sessionTimeout": {
            "type": "string",
            "additionalProperties": false,
            "description": "The duration after which the operation will timeout, given in milliseconds. \n\n This value cannot exceed the maximum configured value of <code>18720000</code>.",
            "example": "240000"
          },
          "metadata": {
            "type": "string",
            "additionalProperties": false,
            "description": "The metadata for the operation. \n\n This is an optional parameter, used for sending metadata. \n\n The value is never changed, and is returned in the operation response. \n\n This value cannot exceed the maximum possible length of 1024 characters."
          },
          "requestedUserAttributes": {
            "type": "array",
            "additionalProperties": false,
            "contains": {
              "additionalProperties": false
            },
            "description": "User attributes to be returned.\n\nIf empty, the user object returned after a successful operation will not include any attributes.\nNon-existent user attributes will be silently ignored.",
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "unevaluatedItems": {
              "additionalProperties": false
            }
          }
        }
      },
      "RegistrationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "userId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e",
            "minLength": 1
          },
          "device": {
            "$ref": "#/components/schemas/DeviceRequest",
            "additionalProperties": false,
            "description": "An object that contains the properties of the device to be used for this operation.\n\nFor registration:\n<ul><li>When a <code>REGISTRATION</code> is executed, this object is optional.\nIf specified, you can <b>only</b> supply the device <code>name</code>, since the device <code>id</code> is generated by this operation.</li>\n<li>When a <code>RE_REGISTRATION</code> of the existing device is executed, then this object is mandatory and the <code>id</code> field must be specified.</li></ul>\n\nFor authentication or signing\n<ul><li>The device object is mandatory <b>except</b> if broadcast is enabled.</li>\n<li>If broadcast is enabled, then then the device object does not need to be supplied.</li>\n<li>See the broadcast (<code>broadcast</code>) operation property for details.</li></ul>\n"
          },
          "tags": {
            "type": "array",
            "additionalProperties": false,
            "description": "Used to tag callback event to enable filtering.",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          },
          "operationProperties": {
            "$ref": "#/components/schemas/RegistrationOperationPropertiesRequest",
            "additionalProperties": false,
            "description": "An object that describes the properties used to carry out the operation."
          }
        },
        "required": [
          "userId"
        ]
      },
      "Registration": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "errorCode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The error code given if the operation fails. \n\n See [operation error codes](/apis/mobileid/#section/Common-concepts/Operation-error-codes) for possible values.",
            "example": "LOCKED_PIN_VERIFICATION_FAILED"
          },
          "errorDescription": {
            "type": "string",
            "additionalProperties": false,
            "description": "The descriptive error message given if the operation fails.",
            "example": "Operation failed because the device is locked by pin verification"
          },
          "riskAttributes": {
            "type": "object",
            "additionalProperties": false,
            "description": "The risk attributes collected for the device.\n\nSee [risk attributes](/apis/mobileid/#section/Common-concepts/Risk-attributes) for possible values.\n\nYou can find out how to configure which attributes are collected in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#risk-data\" target=\"_blank\">application configuration</a> feature documentation.\n",
            "example": {
              "hwKeyClientStatus": "OK_SIGNED_SUCCESS",
              "deviceHash": "DCkhP7PqJPtCWlhdIo8EIiioJXadZtTb5E1V8GMmKOc=",
              "signerHashes": "MWFgoYYrQg07r3I1NIX7J8GZUQIn6YclVVzUZ3arxrk="
            }
          },
          "accountId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the account for which the operation is executed.",
            "example": "a-sdge-Abcdefghijk123456789"
          },
          "transactionId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the transaction.",
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The operation state. \n\n See [operation state](/apis/mobileid/#section/Common-concepts/Operation-states) for possible values.",
            "example": "PENDING"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when initial response was created. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "completed": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the operation was completed. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:33.456Z"
          },
          "device": {
            "$ref": "#/components/schemas/Device",
            "additionalProperties": false,
            "description": "The device object."
          },
          "user": {
            "$ref": "#/components/schemas/User",
            "additionalProperties": false,
            "description": "The user object."
          },
          "tags": {
            "type": "array",
            "additionalProperties": false,
            "description": "Used to tag callback event to enable filtering.",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          },
          "operationProperties": {
            "$ref": "#/components/schemas/RegistrationOperationProperties",
            "additionalProperties": false,
            "description": "An object that describes the properties used to carry out the operation."
          }
        }
      },
      "RegistrationOperationProperties": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "postOperationContext": {
            "$ref": "#/components/schemas/postOperationContext",
            "additionalProperties": false
          },
          "registrationMode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The registration mode to use for the operation. \n\n The possible values are <code>REGISTRATION</code> or <code>RE_REGISTRATION</code>. \n\n If not provided, the default registration mode <code>REGISTRATION</code> will be used.",
            "example": "RE_REGISTRATION"
          },
          "authLevel": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication level to use for the operation. \n\n If not provided, the default authentication level <code>TWO_FACTOR</code> will be used. \n\n See [authentication levels](/apis/mobileid/#section/Common-concepts/Authentication-levels) for possible values.",
            "example": "TWO_FACTOR"
          },
          "sessionTimeout": {
            "type": "string",
            "additionalProperties": false,
            "description": "The duration after which the operation will timeout, given in milliseconds. \n\n This value cannot exceed the maximum configured value of <code>18720000</code>.",
            "example": "240000"
          },
          "metadata": {
            "type": "string",
            "additionalProperties": false,
            "description": "The metadata for the operation. \n\n This is an optional parameter, used for sending metadata. \n\n The value is never changed, and is returned in the operation response. \n\n This value cannot exceed the maximum possible length of 1024 characters."
          },
          "requestedUserAttributes": {
            "type": "array",
            "additionalProperties": false,
            "contains": {
              "additionalProperties": false
            },
            "description": "User attributes to be returned.\n\nIf empty, the user object returned after a successful operation will not include any attributes.\nNon-existent user attributes will be silently ignored.",
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "unevaluatedItems": {
              "additionalProperties": false
            }
          },
          "activationCode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The activation code, which is to be used for registration of the device in the app.",
            "example": "928401"
          },
          "location": {
            "$ref": "#/components/schemas/Location",
            "additionalProperties": false,
            "writeOnly": true
          },
          "attestation": {
            "$ref": "#/components/schemas/AppAttestation",
            "additionalProperties": false,
            "writeOnly": true
          },
          "geofencing": {
            "$ref": "#/components/schemas/Geofencing",
            "additionalProperties": false
          },
          "sessionExpiryTime": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the operation expires. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "activatedAuthenticationMethods": {
            "type": "array",
            "additionalProperties": false,
            "description": "A list of the activated authentication methods.",
            "example": "[DEVICE, DEVICE:PIN]",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          }
        }
      },
      "IDVerificationAddRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "userId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>), in a valid UUID format.",
            "example": "801d7c7f-5d1e-46dc-827a-460e9c622cd4",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "additionalProperties": false,
            "description": "The name of the provider that performs the identity verification.\n\nThis should be the same as the provider used in the [Create process](/apis/id-document-and-biometric-verification/#tag/Processes/operation/createProcess) request.\n",
            "example": "eid",
            "minLength": 1
          },
          "dossierId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the identity verification dossier, in a valid UUID format.\n\nYou can obtain this from the [Create dossier](/apis/id-document-and-biometric-verification/#tag/Dossiers/operation/createDossier) response body.\n",
            "example": "12ced477-7ba2-41a6-9f38-4b9f0172bc11",
            "minLength": 1
          },
          "processId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the identity verification process, in a valid UUID format.\n\nYou can obtain this from the [Create process](/apis/id-document-and-biometric-verification/#tag/Processes/operation/createProcess) response body.\n",
            "example": "7bc36291-b096-4d25-bccc-56680c38c515",
            "minLength": 1
          },
          "orchestrationId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID, in a valid UUID format, used for workflow synchronization.\n",
            "example": "8cc36291-b096-4d25-bccc-66680c38c516",
            "minLength": 1
          }
        },
        "required": [
          "dossierId",
          "orchestrationId",
          "processId",
          "provider",
          "userId"
        ]
      },
      "IDVerification": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "proofingId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the identity verification.",
            "example": "f42ac67e-7eb6-40fb-b72e-c48fd9bbd013"
          },
          "userId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>).",
            "example": "801d7c7f-5d1e-46dc-827a-460e9c622cd4"
          },
          "proofingType": {
            "type": "string",
            "additionalProperties": false,
            "description": "The type of identity verification used. For this API it will always be ID_VERIFICATION",
            "example": "ID_VERIFICATION"
          },
          "provider": {
            "type": "string",
            "additionalProperties": false,
            "description": "The name of the provider that performs the identity verification.",
            "example": "eid"
          },
          "dossierId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the identity verification dossier.",
            "example": "12ced477-7ba2-41a6-9f38-4b9f0172bc11"
          },
          "processId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the identity verification process.",
            "example": "7bc36291-b096-4d25-bccc-56680c38c515"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the identity verification was created. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-22T21:47:27.233Z"
          },
          "orchestrationId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID, in a valid UUID format, used for workflow synchronization..",
            "example": "8bc36291-b096-4d25-bccc-56680c38c515"
          }
        }
      },
      "AuthenticationOperationPropertiesRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "authMethod": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication method to use for the operation.\n\nSee [authentication methods](/apis/mobileid/#section/Common-concepts/Authentication-methods) for possible values.\n\nIf not provided, the user will be able to choose between all configured authentication methods supported on the device, except for server-side face authentication (<code>DEVICE_SERVER_SIDE_FACE</code>) which must be passed explicitly as the authentication method.\n",
            "example": "DEVICE_PIN"
          },
          "authLevel": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication level to use for the operation. \n\n If not provided, the default authentication level <code>TWO_FACTOR</code> will be used. \n\n See [authentication levels](/apis/mobileid/#section/Common-concepts/Authentication-levels) for possible values.",
            "example": "TWO_FACTOR"
          },
          "pushPayload": {
            "type": "string",
            "additionalProperties": false,
            "description": "A custom payload that is sent to the end-user’s device in the push notification.\n\nThe custom payload is sent in plain text, and all characters must be in the Basic Multilingual Plane (BMP).\n\nData requiring a secure channel should use the post-operation context and the pre-operation context, as the push channel is not secure.\n",
            "example": "Authentication operation"
          },
          "preOperationContext": {
            "$ref": "#/components/schemas/preOperationContext",
            "additionalProperties": false
          },
          "postOperationContext": {
            "$ref": "#/components/schemas/postOperationContext",
            "additionalProperties": false
          },
          "sendPush": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to send push or not.\n\nIn order to be sent, it requires that push notifications are configured in your <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#push-notifications\" target=\"_blank\">application configuration</a>.\n\nIf not specified, then push notifications will be sent depending on the settings in your application configuration.\n",
            "example": false
          },
          "broadcast": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to broadcast the operation to all of the user's active devices or not.\n\nThe default is <code>false</code>. To enable broadcast, you must set this property to <code>true</code>.\n\nIf broadcast is enabled:\n<ul><li>The device object in the operation request should either be empty, or it should not be supplied entirely.\n<li>Consider whether or not you supply `authMethod` in the request. Only devices that support the specified authentication method receive the broadcast, which means that you may limit the devices that can be used by supplying this.</li></ul>\n\n",
            "example": true
          },
          "sessionTimeout": {
            "type": "string",
            "additionalProperties": false,
            "description": "The duration after which the operation will timeout, given in milliseconds. \n\n This value cannot exceed the maximum configured value of <code>18720000</code>.",
            "example": "240000"
          },
          "metadata": {
            "type": "string",
            "additionalProperties": false,
            "description": "The metadata for the operation. \n\n This is an optional parameter, used for sending metadata. \n\n The value is never changed, and is returned in the operation response. \n\n This value cannot exceed the maximum possible length of 1024 characters."
          },
          "requestedUserAttributes": {
            "type": "array",
            "additionalProperties": false,
            "contains": {
              "additionalProperties": false
            },
            "description": "User attributes to be returned.\n\nIf empty, the user object returned after a successful operation will not include any attributes.\n\nNon-existent user attributes will be silently ignored.",
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "unevaluatedItems": {
              "additionalProperties": false
            }
          }
        }
      },
      "AuthenticationRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "userId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>) that will carry out the operation, in a valid UUID format.",
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e",
            "minLength": 1
          },
          "device": {
            "$ref": "#/components/schemas/DeviceRequest",
            "additionalProperties": false,
            "description": "An object that contains the properties of the device to be used for this operation.\n\nFor registration:\n<ul><li>When a <code>REGISTRATION</code> is executed, this object is optional.\nIf specified, you can <b>only</b> supply the device <code>name</code>, since the device <code>id</code> is generated by this operation.</li>\n<li>When a <code>RE_REGISTRATION</code> of the existing device is executed, then this object is mandatory and the <code>id</code> field must be specified.</li></ul>\n\nFor authentication or signing\n<ul><li>The device object is mandatory <b>except</b> if broadcast is enabled.</li>\n<li>If broadcast is enabled, then then the device object does not need to be supplied.</li>\n<li>See the broadcast (<code>broadcast</code>) operation property for details.</li></ul>\n"
          },
          "tags": {
            "type": "array",
            "additionalProperties": false,
            "description": "Used to tag callback event to enable filtering.",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          },
          "operationProperties": {
            "$ref": "#/components/schemas/AuthenticationOperationPropertiesRequest",
            "additionalProperties": false,
            "description": "An object that describes the properties used to carry out the operation."
          }
        },
        "required": [
          "userId"
        ]
      },
      "Authentication": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "errorCode": {
            "type": "string",
            "additionalProperties": false,
            "description": "The error code given if the operation fails. \n\n See [operation error codes](/apis/mobileid/#section/Common-concepts/Operation-error-codes) for possible values.",
            "example": "LOCKED_PIN_VERIFICATION_FAILED"
          },
          "errorDescription": {
            "type": "string",
            "additionalProperties": false,
            "description": "The descriptive error message given if the operation fails.",
            "example": "Operation failed because the device is locked by pin verification"
          },
          "riskAttributes": {
            "type": "object",
            "additionalProperties": false,
            "description": "The risk attributes collected for the device.\n\nSee [risk attributes](/apis/mobileid/#section/Common-concepts/Risk-attributes) for possible values.\n\nYou can find out how to configure which attributes are collected in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#risk-data\" target=\"_blank\">application configuration</a> feature documentation.\n",
            "example": {
              "hwKeyClientStatus": "OK_SIGNED_SUCCESS",
              "deviceHash": "DCkhP7PqJPtCWlhdIo8EIiioJXadZtTb5E1V8GMmKOc=",
              "signerHashes": "MWFgoYYrQg07r3I1NIX7J8GZUQIn6YclVVzUZ3arxrk="
            }
          },
          "accountId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the account for which the operation is executed.",
            "example": "a-sdge-Abcdefghijk123456789"
          },
          "transactionId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the transaction.",
            "example": "7daa489e-6b35-46ca-83a4-1bba2ea35f68"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The operation state. \n\n See [operation state](/apis/mobileid/#section/Common-concepts/Operation-states) for possible values.",
            "example": "PENDING"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when initial response was created. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "completed": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the operation was completed. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:33.456Z"
          },
          "device": {
            "$ref": "#/components/schemas/Device",
            "additionalProperties": false,
            "description": "The device object."
          },
          "user": {
            "$ref": "#/components/schemas/User",
            "additionalProperties": false,
            "description": "The user object."
          },
          "tags": {
            "type": "array",
            "additionalProperties": false,
            "description": "Used to tag callback event to enable filtering.",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          },
          "operationProperties": {
            "$ref": "#/components/schemas/AuthenticationOperationProperties",
            "additionalProperties": false,
            "description": "An object that describes the properties used to carry out the operation."
          }
        }
      },
      "AuthenticationOperationProperties": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "authMethod": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication method to use for the operation.\n\nSee [authentication methods](/apis/mobileid/#section/Common-concepts/Authentication-methods) for possible values.\n\nIf not provided, the user will be able to choose between all configured authentication methods supported on the device, except for server-side face authentication (<code>DEVICE_SERVER_SIDE_FACE</code>) which must be passed explicitly as the authentication method.\n",
            "example": "DEVICE_PIN"
          },
          "authLevel": {
            "type": "string",
            "additionalProperties": false,
            "description": "The authentication level to use for the operation. \n\n If not provided, the default authentication level <code>TWO_FACTOR</code> will be used. \n\n See [authentication levels](/apis/mobileid/#section/Common-concepts/Authentication-levels) for possible values.",
            "example": "TWO_FACTOR"
          },
          "pushPayload": {
            "type": "string",
            "additionalProperties": false,
            "description": "A custom payload that is sent to the end-user’s device in the push notification.\n\nThe custom payload is sent in plain text, and all characters must be in the Basic Multilingual Plane (BMP).\n\nData requiring a secure channel should use the post-operation context and the pre-operation context, as the push channel is not secure.\n",
            "example": "Authentication operation"
          },
          "broadcast": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to broadcast the operation to all of the user's active devices or not.\n\nThe default is <code>false</code>. To enable broadcast, you must set this property to <code>true</code>.\n\nIf broadcast is enabled:\n<ul><li>The device object in the operation request should either be empty, or it should not be supplied entirely.\n<li>Consider whether or not you supply `authMethod` in the request. Only devices that support the specified authentication method receive the broadcast, which means that you may limit the devices that can be used by supplying this.</li></ul>\n\n",
            "example": true
          },
          "preOperationContext": {
            "$ref": "#/components/schemas/preOperationContext",
            "additionalProperties": false
          },
          "postOperationContext": {
            "$ref": "#/components/schemas/postOperationContext",
            "additionalProperties": false
          },
          "sendPush": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Choose whether to send push or not.\n\nIn order to be sent, it requires that push notifications are configured in your <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#push-notifications\" target=\"_blank\">application configuration</a>.\n\nIf not specified, then push notifications will be sent depending on the settings in your application configuration.\n",
            "example": false
          },
          "sessionTimeout": {
            "type": "string",
            "additionalProperties": false,
            "description": "The duration after which the operation will timeout, given in milliseconds. \n\n This value cannot exceed the maximum configured value of <code>18720000</code>.",
            "example": "240000"
          },
          "metadata": {
            "type": "string",
            "additionalProperties": false,
            "description": "The metadata for the operation. \n\n This is an optional parameter, used for sending metadata. \n\n The value is never changed, and is returned in the operation response. \n\n This value cannot exceed the maximum possible length of 1024 characters."
          },
          "clientData": {
            "type": "string",
            "additionalProperties": false,
            "description": "The data that the client application optionally passed at the point of the authentication.",
            "example": "<client data>"
          },
          "requestedUserAttributes": {
            "type": "array",
            "additionalProperties": false,
            "contains": {
              "additionalProperties": false
            },
            "description": "User attributes to be returned.\n\nIf empty, the user object returned after a successful operation will not include any attributes.\n\nNon-existent user attributes will be silently ignored.",
            "items": {
              "type": "string",
              "additionalProperties": false
            },
            "unevaluatedItems": {
              "additionalProperties": false
            }
          },
          "attestation": {
            "$ref": "#/components/schemas/AppAttestation",
            "additionalProperties": false
          },
          "location": {
            "$ref": "#/components/schemas/Location",
            "additionalProperties": false,
            "description": "An object that describes the location of the device used for the operation. \n\n In order to be returned in the response, it has to be enabled in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#risk-data\" target=\"_blank\">application configuration</a>."
          },
          "pushSent": {
            "type": "boolean",
            "additionalProperties": false,
            "description": "Informs you whether a push notification is sent or not.",
            "example": false
          },
          "geofencing": {
            "$ref": "#/components/schemas/Geofencing",
            "additionalProperties": false
          },
          "sessionExpiryTime": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the operation expires. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27.123Z"
          }
        }
      },
      "UserUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalRef": {
            "type": "string",
            "additionalProperties": false,
            "description": "An identifier generated by you (the customer), that points to the user ID (<code>userId</code>) generated by MobileID when a new user is created.\n\nThe identifier must<ul>\n<li>be unique in the scope of the account</li>\n<li>have a max length of 128 characters.</li>\n </ul>\n",
            "example": "Empl10300469"
          },
          "segment": {
            "type": "string",
            "additionalProperties": false,
            "description": "An optional parameter, used for segmentation of end-users and their corresponding transactions.\n\nIt can have any value, but it cannot exceed the maximum possible length of 128 characters.\n",
            "example": "NO"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The state of the user. \n\n This is returned as an enum, and can be either <code>ACTIVE</code> or <code>LOCKED</code>.",
            "enum": [
              "ACTIVE",
              "LOCKED"
            ],
            "example": "ACTIVE"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": false,
            "description": "The user attributes, given as key-value pairs.\n\nThe keys must:<ul>\n<li>Start with a letter (<code>a-z</code>), digit or an underscore (<code>_</code>).</li>\n<li>Contain only digits, lowercase letters (<code>a-z</code>), or certain special characters (<code>-._~:@</code>).</li>\n<li>Have a max length of 128 characters.</li>\n </ul>\nThe values must have a max length of 256 characters.\n",
            "example": {
              "firstname": "George",
              "lastName": "Harrison"
            }
          }
        }
      },
      "DeviceUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "additionalProperties": false,
            "description": "The new name for the end-user's device.\n\n\nThe name must have a max length of 128 characters.</li>\n </ul>\n",
            "example": "My New iPhone"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The new state of the end-user's device. \n\n This is returned as an enum, and can be either <code>ACTIVE</code> or <code>LOCKED</code>.",
            "example": "LOCKED"
          }
        }
      },
      "MobileIDTransaction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "previous": {
            "type": "string",
            "additionalProperties": false,
            "description": "A URI that can be used to get the previous set of transactions.",
            "example": "/devices/6d7783a9-34d7-4f19-8ceb-ada763ffed2a/transactions?limit=10&offset=4e5ea8f1-9ee1-409e-8fc0-2dbc5b9b315a&userId=6f29e1d4-6b36-4b80-9187-52dfc61c4a51"
          },
          "next": {
            "type": "string",
            "additionalProperties": false,
            "description": "A URI that can be used to get the next set of transactions.",
            "example": "/devices/6d7783a9-34d7-4f19-8ceb-ada763ffed2a/transactions?limit=10&offset=80a8b98d-7a88-4239-947e-b938ecd55f5b&userId=6f29e1d4-6b36-4b80-9187-52dfc61c4a51"
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "additionalProperties": false,
            "description": "The number of objects (device transactions) that are shown on each page.\n\nThis is a whole number ranging from <code>1</code> to <code>100</code>.\n",
            "example": 10
          },
          "transactions": {
            "type": "array",
            "additionalProperties": false,
            "description": "A list of device transactions.",
            "items": {
              "$ref": "#/components/schemas/Transaction",
              "additionalProperties": false
            }
          }
        }
      },
      "Transaction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "transactionId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the device transaction.",
            "example": "3c68023d-c524-401c-b632-e495c498e2d0"
          },
          "ref": {
            "type": "string",
            "additionalProperties": false,
            "description": "A link to the operation object for the device transaction.",
            "example": "/registrations/3c68023d-c524-401c-b632-e495c498e2d0"
          },
          "operationType": {
            "type": "string",
            "additionalProperties": false,
            "description": "The operation type used for the transaction.\n\nSee [operation type](/apis/mobileid/#section/Common-concepts/Operation-types) for possible values.\n",
            "example": "ACTIVATION"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The state of the device transaction.",
            "example": "SUCCESS"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the device transaction was created.\n\nReturned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.\n"
          },
          "expires": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the device transaction expires.\n\nReturned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.\n"
          },
          "deviceId": {
            "type": "string",
            "additionalProperties": false,
            "description": " The ID of the user's device used for the operation.\n"
          }
        }
      },
      "AccountRecoveryDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "transactionId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The transaction ID of the recovery session.",
            "example": "11a107d7-42ac-4171-92b4-1fdb23c6e1f2"
          },
          "accountId": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the account that the device belongs to.",
            "example": "a-ppge-abcd1234ABCDxxxxxxx"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The state of the recovery operation."
          },
          "device": {
            "$ref": "#/components/schemas/Device",
            "additionalProperties": false,
            "description": "The device performing the recovery."
          },
          "user": {
            "$ref": "#/components/schemas/BaseUser",
            "additionalProperties": false,
            "description": "The user performing the recovery."
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the recovery session was created.\n\nReturned in pattern `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.\n",
            "example": "2022-06-24T20:56:01.405Z"
          },
          "operationProperties": {
            "$ref": "#/components/schemas/OperationProperties",
            "additionalProperties": false,
            "description": "An object that describes the properties used to carry out the operation."
          },
          "riskAttributes": {
            "type": "object",
            "additionalProperties": false,
            "description": "The risk attributes collected for the device.\n\nSee [risk attributes](/apis/mobileid/#section/Common-concepts/Risk-attributes) for possible values.\n\nYou can find out how to configure which attributes are collected in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#risk-data\" target=\"_blank\">application configuration</a> feature documentation.\n"
          },
          "location": {
            "$ref": "#/components/schemas/Location",
            "additionalProperties": false,
            "description": "An object that describes the location of the device used for the operation.\n\nIn order to be returned in the response, it has to be enabled in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#location-risk-data\" target=\"_blank\">application configuration</a>.\n"
          },
          "attestation": {
            "$ref": "#/components/schemas/AppAttestation",
            "additionalProperties": false,
            "description": "An object that describes the properties of the attestation.\n\nIn order for this object to be returned in response, it has to be enabled in the <a href=\"https://developer.signicat.com/docs/mobile-identity/mobileid/features/application-configuration#app-attestation\" target=\"_blank\">application configuration</a>.\n"
          },
          "recoveryMethod": {
            "type": "string",
            "additionalProperties": false,
            "description": "The recovery method used for the recovery.\n\nSee [recovery methods](/apis/mobileid/#section/Common-concepts/Recovery-methods) for possible values.\n\n"
          },
          "recoveryStatus": {
            "type": "string",
            "additionalProperties": false,
            "description": "The status of the recovery.\n\nSee [recovery statuses](/apis/mobileid/#section/Common-concepts/Recovery-statuses) for possible values.\n\n"
          }
        }
      },
      "BaseUser": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalRef": {
            "type": "string",
            "additionalProperties": false,
            "description": "An identifier generated by you (the customer), that points to the user ID (<code>userId</code>) generated by MobileID when a new user is created.\n",
            "example": "Empl10300469"
          },
          "segment": {
            "type": "string",
            "additionalProperties": false,
            "description": "A parameter used for segmentation of end-users and their corresponding transactions.\n",
            "example": "NO"
          },
          "id": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user (<code>userId</code>), in a valid UUID format.",
            "example": "0e99b25c-abde-4553-973b-8d94d49cd87e"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user was created. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>. \n\n",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "lastUsed": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user last executed any <code>REGISTRATION</code>, <code>AUTHENTICATION</code> or <code>SIGNATURE</code> operation. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>. \n\n",
            "example": "2021-01-21T22:47:27.123Z"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The state of the user. \n\n This is returned as an enum, and can be either <code>ACTIVE</code> or <code>LOCKED</code>.",
            "enum": [
              "ACTIVE",
              "LOCKED"
            ],
            "example": "ACTIVE"
          }
        }
      },
      "OperationProperties": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "sessionExpiryTime": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the recovery session expires.\n\nReturned in pattern `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.\n",
            "example": "2022-06-24T21:56:01.405Z"
          },
          "activatedAuthenticationMethods": {
            "type": "array",
            "additionalProperties": false,
            "description": "A list of the activated authentication methods.",
            "items": {
              "type": "string",
              "additionalProperties": false
            }
          }
        }
      },
      "BaseDevice": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "additionalProperties": false,
            "description": "The name of the user's device.",
            "example": "my iPhone"
          },
          "id": {
            "type": "string",
            "additionalProperties": false,
            "description": "The ID of the user's device (<code>deviceId</code>).",
            "example": "20874199-f4d1-4e9d-86ee-dd4a46030acb"
          },
          "state": {
            "type": "string",
            "additionalProperties": false,
            "description": "The state of the user's device. \n\n This is returned as an enum, and can be either <code>ACTIVE</code>, <code>LOCKED</code> or <code>DELETED</code>.",
            "enum": [
              "ACTIVE",
              "LOCKED",
              "DELETED"
            ],
            "example": "ACTIVE"
          },
          "lockReason": {
            "type": "string",
            "additionalProperties": false,
            "description": "The reason why the user's device is locked.",
            "example": "LOCKED BY ADMIN"
          },
          "lastOperationType": {
            "type": "string",
            "additionalProperties": false,
            "description": "The last operation type that the user's device executed. \n\n See [operation type](/apis/mobileid/#section/Common-concepts/Operation-types) for possible values.",
            "example": "AUTHENTICATION"
          },
          "created": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user's device was originally activated. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27"
          },
          "lastUsed": {
            "type": "string",
            "additionalProperties": false,
            "description": "The timestamp when the user's device last executed an operation. \n\n Returned in pattern <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code>.",
            "example": "2021-01-21T22:47:27"
          }
        }
      }
    }
  }
}