Digipass S3 is now DigipassONE. This section is currently being updated to reflect our new name.

Manage FIDO registrations

Prev Next

URL: /nnlgateway/nnl/<tenant_id>/reg Method: POST


These operations manage FIDO registrations, including those created with both FIDO2 and UAF authenticators. Use these operations to manage all FIDO registrations, whether the end user registered using Out-of-band or not.

LIST_REG

For the specified user, LIST_REG can either list all their registered FIDO authenticators, regardless of protocol, or list all their registered authenticators by protocol family. Assign all or the desired protocol to the protocolFamily attribute. This operation does not list registered authenticators that have a deleted status.

Assign 3 to the optionsData.needDetails attribute to get additional information in the response about an authenticator's public key, keyID, and attestation ID. This also returns the device's push handle, if it exists.

For the FIDO2 protocol, LIST_REG may return the same registered authenticator for more than one device in the following situations:

  • A roaming (cross-platform) authenticator is registered on one device and used on more than one device.

  • A fingerprint authenticator on Android is registered via a native FIDO2 app and used for authentication via a web browser.

  • A fingerprint authenticator on Android is registered via a web browser and used for authentication via a native FIDO2 app.

Recommended workaround:

Postprocess the JSON response from LIST_REG to filter out device entries with the same handle. A handle is the unique identifier for a registered authenticator. You cannot rely on the order of the device entries in the LIST_REG response to determine the device that was used for registration.

Request

Attribute

Description

operation

Required. The string LIST_REG.

callerOrigin

Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it.

The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin.

id

Optional. The correlation ID, a unique identifier that associates API operations for the same user. An alphanumeric string, maximum 255 characters. No special characters are allowed.

If not provided, the Server generates a unique id and returns it in the response.

optionsData

Optional. An object used to pass additional attributes to REST API operations. The attribute listed below pertains to LIST_REG. See OptionsData for a complete description.

optionsData.needDetails

Optional. Enter 2 or 3 as follows.

  • 2 (default): No additional information required in the response.

  • 3: Returns additional information about each authenticator in the response. Refer to the attribute table for AuthenticatorInfo and DeviceDetail for the specific fields that are returned.

You must configure the API Server to return authenticator information in additionalInfo by modifying its response filter configuration. Refer to Response Filter Configuration.

protocolFamily

Optional. View the associated registrations for a specific protocol family. One of:

  • uaf (default)

  • web (for FIDO2)

  • all (for both UAF and FIDO2)

sessionData

Required. An object containing the user's session information. See SessionData.

Response

The following attributes are always present in the JSON payload of the response.

Attribute

Description

id

The unique id that correlates INIT_REG and FINISH_REG operations for the same user. A Base64-URL encoded string.

If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown.

statusCode

Server-specific status code that reports the success or failure of this operation. Integer.

See Response Status Codes below for the status and error codes.

The following attributes are present in the response upon a successful operation (Server status 4000).

Refer to Sample Response for UAF Registrations, optionsData.needDetails =3 and the attribute tables for AuthenticatorInfo, DeviceDetail, and AdditionalInfo for the specific fields that are returned when needDetails is 3 and you have properly configured the API Server's response filter.

Attribute

Description

additionalInfo

An object containing information about the client app and device initiating this request. Contains the 3 attributes listed below.

In order for the API Server to return this information,

  1. The client app must have sent this information in the LIST_REG request’s message attribute.

  2. Update the response filter configuration so the API Server returns the protocol, protocol family, and RP ID. Refer to Response Filter Configuration.

additionalInfo.elapsedTime

The amount of time, in milliseconds, to process the request.

additionalInfo.protocol

Protocol selected by the Server based on information from the request. Not present when registrations from two or more protocols were deleted.

additionalInfo.protocolFamily

Protocol family processed by server. Registrations belonging to this protocol were deleted.

One of:

  • uaf

  • web (for FIDO2)

  • all (both UAF and FIDO2)

additionalInfo.rpID

The client app's FIDO2 RP ID.

extensions

Information about extensions associated with the registration.

A List<Extension>.

registrations

List of the authenticators that are registered for a user. See the sample responses for an example of Registration. List<Registration>.

Response status codes

The following are the descriptions of the Auth Server status codes returned by LIST_REG. Under certain circumstances, the API Server returns an unsuccessful HTTP status code. Examples include an invalid request or invalid session. You can find descriptions of these in API Server Status Codes.

Server Status Code

Description

Examples

4000

OK. Operation completed

The available registrations for the user are listed.

4404

InternalServer

Exception

Internal server error.

Failed to read from the database.

Failed to connect to the database.

4406

Payload

Exception

There were problems with one or more attributes. For example, protocolFamily has invalid content or the username extracted from sessionData.sessionKey has an invalid length.

4430

UserNotFound Exception

User does not exist in the Server.

Samples

Sample Request URL

https://www.example.com:8443/nnlgateway/nnl/<tenant_id>/reg

Sample Request for UAF Registrations, optionsData.needDetails not Used

{
        "operation":"LIST_REG",
        "id":"sample",
        "sessionData":{
             "sessionKey":"<session JWT>"
        }
}

Sample response for UAF registrations, optionsData.needDetails not used

{
        "statusCode":4000,
        "registrations":[
        {
        "device":{
        "info":"samsung",
        "deviceType":"android",
        "os":"android 6.0.1",
        "manufacturer":"samsung",
        "model":"SAMSUNG-SM-G900A",
        "id":"-7l1bKtusVglQerkvzGESR8h-88qwertTieR6xcebIg"
        },
        "app":{
        "id":"com.noknok.android.onramp",
        "name":"OnRamp",
        "qrSupported":true
        },
        "authenticators":[
        {
        "authenticatorName":"SampleNewAuthName",
        "description":"Samsung Pass",
        "status":1,
        "createdTimeStamp":1543162094005,
        "handle":"WyJ1YWZfMS4wIiwiNGU0ZSM0MDExIiwiveehZVFvY2NJQ1poUEdDdWdpTHE0ZzJYb0YzcWJFdGZ0NjR1WDFmUm1aOCJd"
        }
        ]
        }
        ],
        "id":"JNrs-Ash9tKZLcnDAlvIJw",
        "extensions":[
        {
        "id":"noknok.uaf.location",
        "data":"{\"accuracy\":99.2,\"countryCode\":\"IN\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation":"FINISH_REG"
        },
        {
        "id":"noknok.uaf.location",
        "data":"{\"accuracy\":99.2,\"countryCode\":\"IN\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation":"INIT_REG"
        }
        ]
        }

Sample request for UAF registrations, optionsData.needDetails = 3

{
        "operation":"LIST_REG",
        "sessionData":{
            "sessionKey":"<session JWT>"
        },
        "optionsData":{"needDetails":3}
}

Sample response for UAF registrations, optionsData.needDetails = 3

The highlighted attributes are the additional information that is returned.

{
        "statusCode":4000,
        "id":"r_g3CvijzORiv362U5GsEg",
        "registrations":[
        {
            "device":{
            "id":"abcdef123456789AnotherDevice",
            "deviceType":"android",
            "info":"NokNok Emulator",
            "model":"NokNok-AE 8.0",
            "os":"NokNokOS 8.0",
            "manufacturer":"NokNok",
            "push":{
        "handleLifetimeDays":30,
        "createdTimeStamp":"2021-10-21T11:33:33.303Z",
        "pushHandle":
        "a2V5aGFuZGxlAAAAAQFs2pNtaEX3xblMs26Jzc2m05Iy2_73LxyeoJFzN1v56q7zSQ5iXs_oFxMPDLmRnMPiK3bB0-q0u9ZB65qcJJ1SMU0UoBiAjrqV1MGYg31PE9C97seR_bk0z7y8Cp11iWLeoioOpN1XawjYuUaXUCOgvNJOY1qn8Xdyfl6E4h8"
        }
        },
        "app":{
        "id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name":"android:com.noknok.test.client",
        "qrSupported":false
        },
        "authenticators":[
        {
        "description":"ABCD#ABCD description",
        "createdTimeStamp":1634813051152,
        "handle":"WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUSJd",
        "status":1,
        "publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESeCIsvWjojkiNjqzBuDIko6sDBB1cfItXh5qZQyFMS7Zk7npRWtiKeUvT-6Bnr-AahoymhkGdHN9vDtQq719hg",
        "aaid":"ABCD#ABCD",
        "keyId":"Eo8ENxSET44T1ZU94yyRq-o5rHSkvM6knmtI6-gIBFQ",
        "lastUsedTimeStamp":1634813051152,
        "authCount":0
        }
        ]
        },
        {
        "device":{
        "id":"123456789abcdef1234567890",
        "deviceType":"android",
        "info":"NokNok Emulator",
        "model":"NokNok-AE 8.0",
        "os":"NokNokOS 8.0",
        "manufacturer":"NokNok",
        "push":{
        "handleLifetimeDays":30,
        "createdTimeStamp":"2021-10-21T11:33:33.304Z",
        "pushHandle":"a2V5aGFuZGxlAAAAAVZXEr6hR9QQw9DrGBT6QUBC0J-5l-i4ztfkf5E6FBuEfgwQecME5A-Kdo3ijeiqu3nwvmMbC4zk4ZvH7ov-FeheB5-f1ma14ATIKbrDIISAAbjJR1FFGwZU0L3HxDilLJsCWgZWErgnFPEfr_9U5ExCx5V8w0THS-CeYg4"
        }
        },
        "app":{
        "id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name":"android:com.noknok.test.client",
        "qrSupported":false
        },
        "authenticators":[
        {
        "description":"ABCD#ABCD description",
        "createdTimeStamp":1634730204104,
        "handle":"WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsayJd",
        "status":1,
        "publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqp-sG1m2HPcil6UglSC9BurnMaJO8_EXlHJiTEPhcKSyFnCyD_nz4kPNs6iX1BYeBT3GpISafSh1SAGz5p7vGg",
        "aaid":"ABCD#ABCD",
        "keyId":"w_IgYcIiPF2DMmz6VXWNT88D3oHOpmCxaBk-KbSLdlk",
        "lastUsedTimeStamp":1634732412853,
        "authCount":0
        }
        ]
        }
        ],
        "additionalInfo":{
        "protocol":"uaf_1.0",
        "protocolFamily":"uaf",
        "appID":"https://127.0.0.1:8443/SampleApp"
        },
        "extensions":[
        {
        "id":"noknok.uaf.location",
        "data":"{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation":"FINISH_REG"
        },
        {
        "id":"noknok.uaf.location",
        "data":"{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation":"INIT_REG"
        }
        ]
        }

Sample request for FIDO2 registrations

{
        "operation":"LIST_REG",
        "sessionData":{
            "sessionKey":"<session JWT>"
        },
        "protocolFamily":"web"
}

Sample response for FIDO2 registrations

{
        "statusCode":4000,
        "registrations":[{
           "device":{
              "info":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3537.0 Safari/537.36",
              "deviceType":"browser",
              "id":"ecf5c7ba-27b0-43c5-b5ff-1a2e1ac9c740"
           },
           "app":{
              "id":"https://www.example.com:8443",
              "name":"https://www.example.com:8443/gwtutorial/",
              "qrSupported":false
           },
           "authenticators":[{
              "authenticatorName":"SampleNewAuthName",
              "createdTimeStamp":1535670595601,
              "description":"Windows Hello Hardware Authenticator",
              "handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJIN19aUnpDT2ZmbEs3RzU4Y29wbkRQMnJ1UVYyMzZEyTWlIVi16UXRFVmZPNG1UUERNWXFNby1aejlfMFctMkFZU1hiQ01JUTV1ekUzWm1Kak1qaGxMV05tWVdFdE5ESmtaQzA0Tnpoa0xUa3lNalJsWTJRNU5USTFOdyJd"
           }]
        }],
        "id":"bd2e92c9-0eef-4225-bb0b-fb9e9717330c",
           "extensions":[{
           "id":"noknok.uaf.location",
           "data":"{\"accuracy\":99.2,\"countryCode\":\"IN\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
           "operation":"INIT_REG"
           }]
}

Sample response for FIDO2 registrations with several AppAttest objects

A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.

{
        "statusCode":4000,
        "id":"xEIxXSkzMA2m3CWhrKtJ5A",
        "registrations":[
        {
             "device":{
             "id":"124D7BC9-C756-4A92-806E-D003EB4FFEF3",
             "deviceType":"ios",
             "info":"iPhone",
             "model":"iPhone11,8",
             "os":"iOS 16.6",
             "manufacturer":"Apple",
             "push":{
             "handleLifetimeDays":30,
             "createdTimeStamp":"2023-06-09T05:21:04.092Z",
             "pushHandle":"a2V5aGFuZGxlAAAAAr7ro8sI2cbKYNBzl111E590AWIfa53TUpEday4Y1bpE-IngvILY_ANvsUwQ4vFVSbrMzXYtnXJq0buOJ8DApkLHVDO1UL0_sktOjwpFAtp-0FVTPoIBtdYIJoc20vLDnr0QN4ESPbmCqiyYP4dqaEr5elGn_1dOSubOWMoDfEcgW13JcRKkLSpQX2_138NhU8fR"
             }
        },
        "app":{
             "id":"ios:bundle-id:com.noknok.ios.tutorialappplus",
             "name":"ios:com.noknok.ios.tutorialappplus",
             "qrSupported":true
             },
        "authenticators":[
        {
             "authenticatorName":"iPhone authenticator",
             "description":"Generic FIDO 2 Authenticator",
             "createdTimeStamp":1686045692278,
             "handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCItd3ZWcWdCcFdoUUZuNWJDajd2ZjVxN0hieE0iXQ",
             "status":1,
             "publicKey":"BESZ68pPGcFNn5kPZjinV3LV4cYjbmRC_-5ocGOhdK2C5MiRlUf0o1isrNqqoNr9w36FkKFDIvLWW9RAt81hN-w",
             "aaguid":"00000000-0000-0000-0000-000000000000",
             "credentialId":"-wvVqgBpWhQFn5bCj7vf5q7HbxM",
             "lastUsedTimeStamp":1686209605506,
             "authCount":2,
             "appAtts":[
             {
                  "authenticatorName":"iPhone",
                  "description":"Apple AppAttest credential for development environment",
                  "createdTimeStamp":1686045692279,
                  "handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJqMGpRX0Zkay1kcXZaVlhLcEN5WnJvUk1qMmdXTzRwTWFGUjloVG1YenZjIiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENJdGQzWldjV2RDY0Zkb1VVWnVOV0pEYWpkMlpqVnhOMGhpZUUwaVhRIl0",
                  "status":1,
                  "publicKey":"BIarC9V6h29hmrwNP-3vgz1uhdUa2ykGAXm94XT3sZ9d1yNHblu_mcxlHL-SdYbaj1W32NQUejALmaFIR9SqW-E",
                  "aaguid":"61707061-7474-6573-7464-6576656c6f70",
                  "credentialId":"j0jQ_Fdk-dqvZVXKpCyZroRMj2gWO4pMaFR9hTmXzvc",
                  "lastUsedTimeStamp":1686209605506,
                  "authCount":2
             }
             ]
        }
        ]
        },
        {
             "device":{
                  "id":"AD5D2029-383A-47FE-BF80-DF133A9E0221",
                  "deviceType":"ios",
                  "info":"iPhone",
                  "model":"iPhone13,1",
                  "os":"iOS 16.4.1",
                  "manufacturer":"Apple",
                  "push":{
                       "handleLifetimeDays":30,
                       "createdTimeStamp":"2023-06-09T05:21:04.093Z",
                       "pushHandle":"a2V5aGFuZGxlAAAAAu5rU1kskHRgAAip_5GDQkGQVXfTWRvmanW5atASWzaK19eUdkoVMPemLtZ6D78upSQZRkHlREVFQaWMXKi8_Y-CGyBVfyxfT7wvwXL-D-VUpm0oO3DRP9s7VyWKdK_fXaQ7cTAcp5iUq_MHqAgaz7UWEmX966XIZs8Qsw_8tNA_uD7gkOylObm7zbjyHYt9Tws9"
                  }
             },
             "app":{
                  "id":"ios:bundle-id:com.noknok.ios.tutorialappplus",
                  "name":"ios:com.noknok.ios.tutorialappplus",
                  "qrSupported":true
             },
             "authenticators":[
             {
                  "authenticatorName":"iPhone authenticator",
                  "description":"Generic FIDO 2 Authenticator",
                  "createdTimeStamp":1686044012946,
                  "handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCI4dnBtSlBmNXFRWHFEczYzdFVoMjhrVHpQNE0iXQ",
                  "status":1,
                  "publicKey":"BIYjwqbXknX4mLNmDKPkjC9TdEy6bMI1SgS5Ea2pUTeZbdNJw28Vlhz5STVik7bjsGUMhsz-f50cXrZkqnGUIBA",
                  "aaguid":"00000000-0000-0000-0000-000000000000",
                  "credentialId":"8vpmJPf5qQXqDs63tUh28kTzP4M",
                  "lastUsedTimeStamp":1686210963190,
                  "authCount":1,
                  "appAtts":[
                  {
                       "authenticatorName":"iPhone",
                       "description":"Apple AppAttest credential for development environment",
                       "createdTimeStamp":1686044029325,
                       "handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJydTctek5kOW93Mk5MYTBnN2JJWWh4TFFreWVSa2g4bXFOOHNDdVRoTHQ0IiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENJNGRuQnRTbEJtTlhGUldIRkVjell6ZEZWb01qaHJWSHBRTkUwaVhRIl0",
                       "status":1,
                       "publicKey":"BL5IfXjNA_886BVJC6n8flFG6JTJ-iIJIVMH6V9ikQOpm_H-VRT5WSyYGtddwAqsOOY6XkI4llNCrOMUTJmsEZo",
                       "aaguid":"61707061-7474-6573-7464-6576656c6f70",
                       "credentialId":"ru7-zNd9ow2NLa0g7bIYhxLQkyeRkh8mqN8sCuThLt4",
                       "lastUsedTimeStamp":1686210963193,
                       "authCount":1
                  }
                  ]
             },
             {
                  "authenticatorName":"iPhone authenticator",
                  "description":"Generic FIDO 2 Authenticator",
                  "createdTimeStamp":1686037503922,
                  "handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJwc0htUVI3TjdkdS00TWlidW1kNWxUUGtqS1UiXQ",
                  "status":1,
                  "publicKey":"BMBprJdNKvJyJakktMrJkRkFecGFaCSTCn1QZBEOXzGinXwg58dRSBnYJiAVzMDnImDDon2seP420y2P63UyIIY",
                  "aaguid":"00000000-0000-0000-0000-000000000000",
                  "credentialId":"psHmQR7N7du-4Mibumd5lTPkjKU",
                  "lastUsedTimeStamp":1686209605506,
                  "authCount":2,
                  "appAtts":[
                  {
                       "authenticatorName":"iPhone",
                       "description":"Apple AppAttest credential for development environment",
                       "createdTimeStamp":1686037503926,
                       "handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJMUkF1XzlqcTZfc0h4SGppQmtwTWVheHI4R1U0a005OFh2c0F6VWlHaF9vIiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENKd2MwaHRVVkkzVGpka2RTMDBUV2xpZFcxa05XeFVVR3RxUzFVaVhRIl0",
                       "status":1,
                       "publicKey":"BK0zuacNcJ1peya_vywkLij_Xe9QMyuZLtIZ96_D4LBE4pc5r6WM0gPcD1CrHvReh_XU4wPzM4NxZbe9oyBS_AQ",
                       "aaguid":"61707061-7474-6573-7464-6576656c6f70",
                       "credentialId":"LRAu_9jq6_sHxHjiBkpMeaxr8GU4kM98XvsAzUiGh_o",
                       "lastUsedTimeStamp":1686209605506,
                       "authCount":1
                  },
                  {
                       "authenticatorName":"iPhone",
                       "description":"Apple AppAttest credential for development environment",
                       "createdTimeStamp":1686043986245,
                       "handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJydTctek5kOW93Mk5MYTBnN2JJWWh4TFFreWVSa2g4bXFOOHNDdVRoTHQ0IiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENKd2MwaHRVVkkzVGpka2RTMDBUV2xpZFcxa05XeFVVR3RxUzFVaVhRIl0",
                       "status":1,
                       "publicKey":"BL5IfXjNA_886BVJC6n8flFG6JTJ-iIJIVMH6V9ikQOpm_H-VRT5WSyYGtddwAqsOOY6XkI4llNCrOMUTJmsEZo",
                       "aaguid":"61707061-7474-6573-7464-6576656c6f70",
                       "credentialId":"ru7-zNd9ow2NLa0g7bIYhxLQkyeRkh8mqN8sCuThLt4",
                       "lastUsedTimeStamp":1686209605506,
                       "authCount":1
                  }
                  ]
             }
             ]
             }
             ],
             "additionalInfo":{
                  "protocol":"web_1.0",
                  "protocolFamily":"web",
                  "rpId":"st-mysql.noknoktest.com"
             },
             "extensions":[
             {
                  "id":"noknok.uaf.location",
                  "data":"{\n \"accuracy\" : 35,\n \"countryCode\" : \"AM\",\n \"latitude\" : 40.192657470703125,\n \"longitude\" : 44.509494781494141,\n \"status\" : 0\n}\n",
                  "operation":"INIT_ADAPTIVE"
             }
        ]
}

Sample request for FIDO2 registrations, optionsData.needDetails =3

{
        "operation":"LIST_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "protocolFamily":"web",
        "optionsData":{"needDetails":3}
}

Sample response for FIDO2 registrations, optionsData.needDetails = 3

The highlighted attributes are additional information that is returned, provided that the response filter was configured to allow this data to be returned.

{
        "statusCode":4000,
        "id":"jnGQ5IVoFaet_aK02OL9Pg",
        "registrations":[
        {
             "device":{
             "id":"d05e976e-cb31-45a1-a3b0-24d542c748d6",
             "deviceType":"browser",
             "info":"Chrome on Windows",
             "os":"Windows 10"
        },
        "app":{
             "id":"https://www.example.com:8443",
             "name":"https://www.example.com:8443/gwtutorial/",
             "qrSupported":false
        },
        "authenticators":[
        {
             "authenticatorName":"Windows authenticator",
             "description":"Generic FIDO 2 Authenticator",
             "createdTimeStamp":1636449390511,
             "handle":"WyJ3ZWIiLCI2MDI4YjAxNy1iMWQ0LTRjMDItYjRiMy1hZmNkYWZjOTZiYjIiLCJoM2pMS0ZsT1UzMnVlTWlFMTF3ZE9SNk9FU01OMmcwSGVEdHdSSEhRNDdRIl0",
             "status":1,
             "publicKey":"zy92PIK4hncJ-ix72tAnF038DOsFcZ6J9b8yqtqkmWbwPjzl__2RgjdR2-u0cue5eHDrvP4fgQAbE2WxvNJDVIHwg_TXCFN3EG-EZDRetNwjdMduq1buCO75ROYVDw6U7oGdSh8rchHgrSglUBW_QeFDativnzFXclYvOPKzy143FI6Denk4cOpFKycfh6fJSpXxK4qHlhIAjEuxRLvVezA6qmjxHoX95vKKrJL6hivvUCz2_QHVkHbbkiuCKzDasFRGi7anbS7o21I_ccoATgW2JbufjvvuVksLuYiNmX0DHo55pok8cBEi0s2_E-Cp5tjame5jrmvYSwV6bKcRiQEAAQ",
             "aaguid":"060b2b06-0104-0182-e51c-010104041204",
             "credentialId":"h3jLKFlOU32ueMiE11wdOR6OESMN2g0HeDtwRHHQ47Q",
             "lastUsedTimeStamp":1636449390511,
             "authCount":0
        }
        ]
        }
        ],
        "additionalInfo":{
             "protocol":"web_1.0",
             "protocolFamily":"web",
             "rpId":"www.example.com"
        },
        "extensions":[
        {
             "id":"noknok.uaf.location",
             "data":"{\"status\":0,\"longitude\":73.7830746,\"latitude\":18.5850598,\"accuracy\":1574.4294553344173}",
             "operation":"INIT_REG"
        }
        ]
}

Sample request with protocolFamily=all and optionsData.needDetails =3

{
        "operation":"LIST_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "protocolFamily":"all",
        "optionsData":{"needDetails":3}
}

Sample response when protocolFamily=all and optionsData.needDetails = 3

The highlighted attributes are the additional information that is returned. A developer must also update the response filter configuration so the API Server returns the protocol family in additionalInfo.

{
        "statusCode":4000,
        "registrations":[
        {
             "device":{
                  "id":"abcdef123456789AnotherDevice",
                  "deviceType":"android",
                  "info":"NokNok Emulator",
                  "model":"NokNok-AE 8.0",
                  "os":"NokNokOS 8.0",
                  "manufacturer":"NokNok",
                  "push":{
                       "handleLifetimeDays":30,
                       "createdTimeStamp":"2021-10-21T11:31:42.635Z",
                       "pushHandle":"a2V5aGFuZGxlAAAAAXcEALFnjOULBpwM0qh6Tc-ff8PmWZ2osBZ9eHPEpKhPfkS-MzH0LpHclSU7P4YeoQUGxcn065FOPlsvb8eqSo3MGfVaSf8-WlmwMaB64WEyij0D7V5bmaB3fCLxZ6pgd7CV9MmkUY92N4jg0vN_Yw_d5evKqFlHpkdpKK3DtmM"
                  }
             },
             "app":{
                  "id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name":"android:com.noknok.test.client",
                  "qrSupported":false
             },
             "authenticators":[
             {
                  "description":"ABCD#ABCD description",
                  "createdTimeStamp":1634813051152,
                  "handle":
        "WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUSJd",
                  "status":1,
                  "publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESeCIsvWjojkiNjqzBuDIko6sDBB1cfItXh5qZQyFMS7Zk7npRWtiKeUvT-6Bnr-AahoymhkGdHN9vDtQq719hg",
                  "aaid":"ABCD#ABCD",
                  "keyId":"Eo8ENxSET44T1ZU94yyRq-o5rHSkvM6knmtI6-gIBFQ",
                  "lastUsedTimeStamp":1634813051152,
                  "authCount":0
             },
             {
                  "description":"Generic webauthn authenticator",
                  "createdTimeStamp":1634813137682,
                  "handle":"WyJ3ZWIiLCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDQiLCJjSHJ5VFpIdmNhelY5Qm9YYXlyOTdwOWdaY2M4Z1BpMUNFMXBGNGMyRkNnIl0",
                  "status":1,
                  "publicKey":"vtXO0TfH6XFcRVC4Y0nlcqrPkqFm1dRA8b6juUv5iF9vo1I9sC8bB_5Mb6uBuLgwS3CHMXhx-QL6D0eosAXzrUCIDZgAt1dioWJtRXbiNfxVs1UwbyGYyvvOV8RmE7uOmJVuax9EYsAANazWwH622qrRmBeo_ZqI0kw3sdC4DQ__cqDCwYXKTqwkmM5g2qN6DcpC1qDR6PzLPCYLnqg4d5gwhqiZ2zA8GTJl3ulZrgOz-J2AJXUPhT6l7nnOPi-h4h9nMaJ5VRtQs9C89jQqF9y24pMHEdkf333B5v5tuml3isgSqmaCNXg-wIv_em9n_o5DOyebZDYZFNE_CovMYwEAAQ",
                  "aaguid":"060b2b06-0104-0182-e51c-010104041204",
                  "credentialId":"cHryTZHvcazV9BoXayr97p9gZcc8gPi1CE1pF4c2FCg",
                  "lastUsedTimeStamp":1634813137682,
                  "authCount":0
             }
             ]
             },
             {
                  "device":{
                       "id":"123456789abcdef1234567890",
                       "deviceType":"android",
                       "info":"NokNok Emulator",
                       "model":"NokNok-AE 8.0",
                       "os":"NokNokOS 8.0",
                       "manufacturer":"NokNok",
                       "push":{
                       "handleLifetimeDays":30,
                       "createdTimeStamp":"2021-10-21T11:31:42.702Z",
                       "pushHandle":"a2V5aGFuZGxlAAAAAVi1vD3qucVonq4O0db4EPFq3tWJutnXXxEFegDLtEnY1CU7sqA7KSsW62nROMPix3IdaM76i64jPv2mT2eCigjovTrxoxJSXI5Dm6Vrn5tsW4FLDC_LrGADmllcHGw6lwrGfN44xkcAV-0MQZrlVGXSVrd7BUkrkJWVJdQ"
                  }
             },
             "app":{
                  "id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name":"android:com.noknok.test.client",
                  "qrSupported":false
             },
             "authenticators":[
             {
                  "description":"ABCD#ABCD description",
                  "createdTimeStamp":1634730204104,
                  "handle":"WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsayJd",
                  "status":1,
                  "publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqp-sG1m2HPcil6UglSC9BurnMaJO8_EXlHJiTEPhcKSyFnCyD_nz4kPNs6iX1BYeBT3GpISafSh1SAGz5p7vGg",
                  "aaid":"ABCD#ABCD",
                  "keyId":"w_IgYcIiPF2DMmz6VXWNT88D3oHOpmCxaBk-KbSLdlk",
                  "lastUsedTimeStamp":1634732412853,
                  "authCount":0
             },
             {
                  "description":"Generic webauthn authenticator",
                  "createdTimeStamp":1634721757346,
                  "handle":"WyJ3ZWIiLCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDQiLCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwIl0",
                  "status":1,
                  "publicKey":"jsGPIIC6S0qqV3l9D0z9MJ2SuLNtbgP1QfLmJeNKMEThw4HnuK6Vb8G2SP-D6xjYTIqKZzDbhrxx_CH3BK4iFi3wbpK9J3qjC05MghnJCrRT2zlbAvp3BU2FaWeBcqD43vGGINvkDxh8vMs38ZmvIdhnKR0f_K9G1XS2OfHXsz2d4NrfL6qmMEC39FevqdmokCYAsO34kT_30spA0assNQhWOIbUBc5ri0ob0JrPheG7UbSoBB3-OHheh8HochRSAIZNQtC7bJ-FOtoYehu7It5GSftVaAuDnx5vJIWssEOpis5VTXzuDy-wzGr1lAT_ffcLsjpTqZXYR5pK1GWfeQEAAQ",
                  "aaguid":"060b2b06-0104-0182-e51c-010104041204",
                  "credentialId":"iAq5WMXFO9zSyQeRoYKHfQ-UJCXs86-V7jL1GAZExa0",
                  "lastUsedTimeStamp":1634732409166,
                  "authCount":0
             }
             ]
        }
        ],
        "additionalInfo":{
             "protocolFamily":"all"
        },
        "extensions":[
        {
             "id":"noknok.uaf.location",
             "data":"{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
             "operation":"INIT_REG"
        }
        ]
}

Sample request with protocolFamily=web and optionsData.needDetails=4

{
        "operation":"LIST_REG",
        "userName":"username",
        "protocolFamily":"web",
        "needDetails":4
}

Sample response when protocolFamily=web and optionsData.needDetails=4

The response contains a single icon attribute, highlighted in the sample below. If the metadata contains iconDark, providerLogoLight, and providerLogoDark, then all of these 4 icons will be returned.

{
        "statusCode": 4000,
        "id": "4qWRz2xGleVR3urhMidBRw",
        "registrations": [
        {
        "device": {
        "id": "abcde12345fghij",
        "deviceType": "browser",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 7.0",
        "os": "NokNokOS 7.0",
        "manufacturer": "NokNok",
        "push": {
        "handleLifetimeDays": 30,
        "createdTimeStamp": "2024-11-26T17:30:51.732Z",
        "pushHandle": "AAAAAAAAAAGddGA98zir_gjBM3LfQcwy0m4Ro7i8fO9fTMKAQ0OUBdBINDAUHQ86BiXF1wRd-4mViAW6td_ynjFtaPnoJwy-B87qaZUEQtFBjenzj64PMd9eE7zaUToxLiEQs5uYe68mYfPiv_f2jEkTZ_-clB0"
        }
        },
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client",
        "qrSupported": true
        },
        "authenticators": [
        {
        "description": "Generic webauthn authenticator",
        "createdTimeStamp": 1732636585628,
        "handle": "WyJ3ZWIiLCJhYmNkZWYxMi0zNDU2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAiLCJMd001ZUdVaVJ3UmpBN3g1MTUzaVY2LWZxbkVfM2V5ODViZ0hjNnZabVA4Il0",
        "status": 1,
        "publicKey": "BJ3wdhlIE8oYlnVeEirZ-xK5Tyoyx_CQEwhaaH69YDTQeDRjIIx4j83n2eD0CofqMsJHTTmsnyWKttA8G6ovOsA",
        "aaguid": "abcdef12-3456-7890-abcd-ef1234567890",
        "credentialId": "LwM5eGUiRwRjA7x5153iV6-fqnE_3ey85bgHc6vZmP8",
        "lastUsedTimeStamp": 1732636585628,
        "authCount": 0,
        "icon": "data:image/png;base64,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",
        }
        ]
        }
        ],
        "additionalInfo": {
        "protocol": "web_1.0",
        "protocolFamily": "web"
        },
        "extensions": [
        {
        "id": "noknok.uaf.location",
        "data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation": "FINISH_REG"
        },
        {
        "id": "noknok.uaf.location",
        "data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation": "INIT_REG"
        }
        ]
        }

Sample response showing metadata field when needDetails=5 for UAF protocol. When the protocol is UAF, the response includes metadata-specific information in the registrations.authenticators.metadata section.

{
        "statusCode": 4000,
        "id": "WN_Nz5y_ZSz5r6XXlot9FA",
        "registrations": [
        {
        "device": {
        "id": "123456789abcdef1234567890",
        "deviceType": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 7.0",
        "os": "NokNokOS 7.0",
        "manufacturer": "NokNok",
        "push": {
        "handleLifetimeDays": 30,
        "createdTimeStamp": "2025-10-15T18:13:33.830Z",
        "pushHandle": "AAAAAAAAAAGiJ-sD5k5InHqf3e8NAllafsylEeLBfxK9W4wRr91Hmh7zgqLnZ0Qf25wZzs57vS86yFrCcconuBPYFDBRQlJlZ8pA7m7l4pYJ6vTnNqaFTDkJU9dofydKa1X7Ny20lIb8GMsj17tslFqcuvSBlKIrmosmuu85-AytSQ"
        }
        },
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client",
        "qrSupported": true
        },
        "authenticators": [
        {
        "description": "4e4e#abcd description",
        "createdTimeStamp": 1760551349232,
        "handle": "WyJ1YWZfMS4wIiwiNGU0ZSNhYmNkIiwiUVItRkM1ZGxsYTR5bXJGQTl3UWFWRjkyQUZkbkN5Snd0aFdxLU04eXM3OCJd",
        "status": 1,
        "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExtVQ6OXX_OPH-BTCng21C145eBREKaNdQ_bqyIcREFskgSwK8PVc8CeEwWiSXt72VwxYfimOCkY3sJ8shAYkLQ",
        "aaid": "4e4e#abcd",
        "keyId": "QR-FC5dlla4ymrFA9wQaVF92AFdnCyJwthWq-M8ys78",
        "icon": "data:image/png;base64,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",
   "lastUsedTimeStamp": 1760551857856,
        "authCount": 1,
        "metadata": {
        "aaid": "4e4e#abcd",
        "description": "4e4e#abcd description",
        "authenticatorVersion": 1,
        "userVerificationMethods": [
        [
        {
        "userVerification": 4,
        "userVerificationMethod": "passcode_internal"
        }
        ],
        [
        {
        "userVerification": 2,
        "userVerificationMethod": "fingerprint_internal"
        }
        ]
        ],
        "matcherProtection": [
        "MATCHER_PROTECTION_ON_CHIP"
        ],
        "tcDisplay": {
        "schema": 1,
        "secureDisplayList": [
        "SECURE_DISPLAY_ANY"
        ]
        },
        "isKeyRestricted": true,
        "isFreshUserVerificationRequired": true,
        "attestationType": [
        null
        ],
        "keyProtection": [
        "KEY_PROTECTION_TEE"
        ],
        "authenticatorSpecCustomAttributes": {
        "authenticatorFidoCertificationLevel": "FIDO_CERTIFIED_L1",
        "authenticatorFipsCertificationLevel": "FIPS140_CERTIFIED_L1_PHY_2"
        }
        }
        }
        ]
        }
        ],
        "extensions": [
        {
        "id": "noknok.uaf.location",
        "data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation": "INIT_ADAPTIVE"
        },
        {
        "id": "noknok.uaf.location",
        "data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation": "VERIFY"
        }
        ]
        }
    

Sample response showing metadata field when needDetails=5 for web protocol. When the protocol is web, the response includes metadata-specific information in the registrations.authenticators.metadata section.

{
        "statusCode": 4000,
        "id": "6u5F6Ygxil29fYItycGueg",
        "registrations": [
        {
        "device": {
        "id": "abcde12345fghij",
        "deviceType": "browser",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 7.0",
        "os": "NokNokOS 7.0",
        "manufacturer": "NokNok",
        "push": {
        "handleLifetimeDays": 30,
        "createdTimeStamp": "2025-10-15T18:13:53.302Z",
        "pushHandle": "AAAAAAAAAAHnBl9CUJLaB2GAb3Zrx1PesgQI-sGLCxLMN4UVb7LojlaBZFUxcyvR7Qaat6Yw3sIQvS4DOUJLxgNiNQuDUY1dzmk5MTdYmAVx2bYOcsJRIaRAf67_Mf8tW59O2JOU2P4hirnh6SWwsCfQoyYo6RYB"
        }
        },
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client",
        "qrSupported": true
        },
        "authenticators": [
        {
        "description": "Generic webauthn authenticator",
        "createdTimeStamp": 1760551634631,
        "handle": "WyJ3ZWIiLCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDQiLCJIajdIWWpzcmxuS0ZnNFNCdWtlWXd4RGJhaDZsekhLbUtsNUFRc2NzZW9VIl0",
        "status": 1,
        "publicKey": "BPxe-NJGwAhtdNPeAEPYuu_z3SK-9hUhcUAKmg3zsce7UrAA-eSdbrM8JY161MxH_6rJlmW7QDvlbgl6GLGjSt0",
        "aaguid": "060b2b06-0104-0182-e51c-010104041204",
        "credentialId": "Hj7HYjsrlnKFg4SBukeYwxDbah6lzHKmKl5AQscseoU",
        "lastUsedTimeStamp": 1760551979931,
        "authCount": 1,
        "metadata": {
        "aaguid": "060b2b0601040182e51c010104041204",
        "description": "Generic webauthn authenticator",
        "authenticatorVersion": 0,
        "userVerificationMethods": [
        [
        {
        "userVerification": 1,
        "userVerificationMethod": "presence_internal"
        }
        ]
        ],
        "matcherProtection": [
        "MATCHER_PROTECTION_TEE",
        "MATCHER_PROTECTION_ON_CHIP"
        ],
        "tcDisplay": {
        "schema": 1,
        "secureDisplayList": [
        "SECURE_DISPLAY_ANY"
        ]
        },
        "isKeyRestricted": true,
        "isFreshUserVerificationRequired": true,
        "keyProtection": [
        "KEY_PROTECTION_HARDWARE",
        "KEY_PROTECTION_TEE"
        ],
        "authenticatorSpecCustomAttributes": {
        "authenticatorFidoCertificationLevel": "FIDO_CERTIFIED_L1",
        "authenticatorFipsCertificationLevel": "FIPS140_CERTIFIED_L1_PHY_2"
        }
        }
        }
        ]
        }
        ],
        "extensions": [
        {
        "id": "noknok.uaf.location",
        "data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation": "INIT_ADAPTIVE"
        },
        {
        "id": "noknok.uaf.location",
        "data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
        "operation": "VERIFY"
        }
        ]
        }
    

DELETE_REG

URL: /nnlgateway/nnl/<tenant_id>/reg Method: POST


Use DELETE_REG to either deregister a specific registered authenticator or a set of registered authenticators for a designated user. The set of affected registrations can be defined by the protocol family and/or device. For example, it's possible to deregister all of a user's UAF registrations on their device, all of a user's FIDO2 registrations on all their devices, all UAF and FIDO2 registration on their device, or all registrations across all their devices.

To deregister a specific registration, assign the registration's handle to the handle attribute in the request. A handle is an ID that uniquely identifies a registration. If you provide the handle, the Server ignores the message and protocolFamily attributes.

To deregister a set of registered authenticators from the user's device, assign 1 to the deleteAll attribute in the request. The message attribute is mandatory in this situation. The Server extracts the specific device from the message. This is the device that is sending the deregistration request. The protocolFamily attribute in the request specifies the protocol. If protocolFamily is not provided, then the Server extracts the protocols from the message attribute. The protocols in message are all the protocols that the device is capable of supporting.

To deregister all registrations across all of the user's devices, omit the deleteAll attribute from the request. Pass in the protocolFamily attribute to delete registrations by protocol family across all the user's devices. If protocolFamily is not provided, then the Server extracts the protocols from the message attribute. If message only contains one protocol, then the Server deletes all registrations for that protocol family. If message contains both uaf and web, the Server gives preference to web and only deletes the FIDO2 registrations. If the request is missing both protocolFamily and message, then all UAF registrations are deleted on all the user's devices.

In all cases, if protocolFamily specifies a protocol (other than all) that the device does not support, the request fails. For example, both protocolFamily and message are present in the request. protocolFamily's value is web but message only contains uaf. Because the device only supports UAF registrations, this results in an error.

If both the handle and deleteAll=1 are present in the request, the request fails.

DELETE_REG processes the following requests differently starting with the 8.0.0 release.

  • Request contains deleteAll=1, protocolFamily=uaf, message with uaf and web
    New behavior: Deletes all UAF registrations from the device that is sending the request.
    Previous behavior: Deleted FIDO2 registrations on the device.

  • Request contains deleteAll=1, protocolFamily=uaf, message with web.
    New behavior: Error.
    Previous behavior: Deleted all FIDO2 registrations on the device.

  • Request contains deleteAll=1, protocolFamily=web, message with uaf
    New behavior: Error.
    Previous behavior: Deleted all UAF Registrations on the device identified by message.

  • Request contains deleteAll=0, protocolFamily=uaf, message with uaf and web
    New behavior: Deletes all UAF registrations from all the devices
    Previous behavior: Deleted all FIDO2 registrations from all the devices

  • Request contains deleteAll=0, protocolFamily=uaf, message with web
    New behavior: Error.
    Previous behavior: Deleted all FIDO2 registrations.

  • Request contains deleteAll=0, protocolFamily=web, message with uaf
    New behavior: Error.
    Previous behavior: Deleted all UAF registrations.

Request

Attribute

Description

operation

Required. The string DELETE_REG.

callerOrigin

Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it.

The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin.

deleteAll

Optional. 0 (default) or 1.

When 1, the Server deregisters a set of registered authenticators. The set is restricted by protocol and device.

handle

Optional. Uniquely identifies a specific registration to deregister. Takes precedence over the protocolFamily and message attributes. An alphanumeric string, maximum 4000 characters.

You can get the handle in the response from the List operations.

id

Optional. The correlation ID, a unique ID used to associate different requests that comprise an operation. An alphanumeric string, maximum 255 characters.

If not provided, the Server generates a unique id and returns it in the response.

message

Mandatory when deleteAll=1, otherwise optional. Generated by the App SDK on the client. This is an opaque value. The client app is responsible for sending a message. This is a base64-URL encoded string.

This string is present if deregistration is initiated from the device where registration was done. Device is derived from message. If protocolFamily is not provided, then the protocol is also derived from message.

optionsData

Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description.

protocolFamily

Optional. Restricts deregistration to registered authenticators that use the specified protocol family.

One of:

  • uaf

  • web (for FIDO2)

  • all (both UAF and FIDO2)

sessionData

Required. An object containing the user's session information. See SessionData.

Response

The following attributes are always present in the JSON payload of the response.

Attribute

Description

id

A unique id used to correlate different requests comprising an operation. A Base64-URL encoded string.

If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown.

statusCode

Server-specific status code that reports the success or failure of this operation. Integer.

See Response Status Codes below for the status and error codes.

The following attributes are present in the response upon a successful operation (Server status 4000).

Attribute

Description

additionalInfo

An object containing information about the client app and device initiating deregistration. Contains the attributes listed in the rows below.

In order for the API Server to return this information,

  1. The client app must have sent this information in the DELETE_REG request’s message attribute.

  2. Update the response filter configuration so the API Server returns the app, elapsed time, protocol, and extension information.

    By default, the API Server automatically returns device information. Refer to Response Filter Configuration.

additionalInfo.app

App information received from the client. App.

additionalInfo.device

Device details received from the client, provided that the Server received this information in the request via message. DeviceDetail

additionalInfo.elapsedTime

The amount of time, in milliseconds, to process the request.

additionalInfo.extensions

Message payload extensions, provided that the Server received this information in the request. List<Extension>.

additionalInfo.protocol

Protocol used by the Authentication Server based on information from the request. Not present when registrations from two or more protocols were deleted.

additionalInfo.protocolFamily

Protocol family processed by the Server. Registrations belonging to this protocol were deleted.

One of:

  • uaf

  • web (for FIDO2)

  • all (both UAF and FIDO2)

message

An opaque value that contains the deregistration request to send to the App SDK. A base64-URL encoded string.

Response status codes

The following are the descriptions of the Auth Server status codes returned by DELETE_REG. Under certain circumstances, the API Server returns an unsuccessful HTTP status code. Examples include an invalid request or invalid session. You can find descriptions of these in API Server Status Codes.

Server Status Code

Description

Examples

4000

OK. Operation completed

Request created successfully.

Deregistration successfully completed on Server.

4003

OK. Operation completed

The request was created successfully, but the registration doesn’t exist in the Server. To understand what causes the Auth Server to return a 4003, you need to understand how each protocol handles registration.

  • UAF: When a user registers a UAF authenticator, that registration is stored by both the Authentication Server and the client app. Under certain circumstances, for instance, a user has multiple devices and deleted a registration on one of them, the registration is deleted on the Server but remains on other devices. This is called a zombie client registration.

    In this situation, the Authentication Server’s response is “I don’t have this user’s registration but you need to delete it on your side”. The UAF protocol defines a client deregistration request for this situation. So the Server returns a 4003 and a deregistration request to the client to tell the client to delete the registration on its end.

  • FIDO2: Unlike a mobile client app, a browser does not store a registration. If the registration doesn’t exist for the user on the Auth Server, the Server takes no action. If the registration (handle) belongs to a different user, the Server does not delete it. The Server’s response is “I don’t have this user’s registration, you haven’t stored this registration, we’re good.” As a result, the Server only returns a 4003.

4402

Security exception

The tenantID is invalid.

4404

Internal Server Error

Internal server error.

Failed to write to the database.

Failed to read from the database.

Failed to connect to the database.

4406

Payload

Exception

A problem occurred in one or more of the following attributes:

  • message is missing or has an invalid type.

  • sessionData is empty.

  • The username extracted from sessionData.sessionKey has an invalid length.

  • handle cannot be present if deleteAll is 1.

4408

UnsupportedClient

MessageException

  • The message attribute cannot be handled.

  • The client does not support the UAF or FIDO2 protocol.

  • The protocol is missing.

4409

ClientMessageException

The message attribute is invalid (for example, a JSON syntax error). The message attribute from the App SDK is malformed (base64URL decode failed).

4430

UserNotFound Exception

Failed to locate the user in the Server.

Samples

Sample request URL

https://www.example.com:8443/nnlgateway/nnl/<tenant_id>/reg

Sample request when a UAF handle is provided and optionsData.needDetails =2

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "handle": "WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUSJd",
        }

Sample response when a UAF handle is provided and optionsData.needDetails =2

A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.

{
        "statusCode": 4000,
        "id": "Oa5dUDqY4EhNxtlf381snQ",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUVwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
        "additionalInfo": {
        "protocol": "uaf_1.0",
        "protocolFamily": "uaf"
        }
        }

Sample request: deleteAll=0, no protocolFamily, no message, and optionsData.needDetails =2

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        }
        }

Sample response: deleteAll=0, no protocolFamily, no message, and optionsData.needDetails =2

A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.

{
        "statusCode": 4000,
        "id": "uYGbUDoWaHDbRKZrwpkjnw",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
        "additionalInfo": {
        "protocol": "uaf_1.0",
        "protocolFamily": "uaf"
        }
        }

Sample request: deleteAll=0, no protocolFamily, and message contains UAF and web

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
        }

Sample response: deleteAll=0, no protocolFamily, & message contains UAF and web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "DTSPbJsvj3ASVr2g8wltCQ",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoid2ViXzEuMCIsInByb3RvY29sRmFtaWx5Ijoid2ViIn0",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocol": "web_1.0",
        "protocolFamily": "web",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, no protocolFamily, and message contains UAF

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
        }

Sample response: deleteAll=0, no protocolFamily, and message contains UAF

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "vTk4WVf1Au4q_7ahCkkmlw",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocol": "uaf_1.0",
        "protocolFamily": "uaf",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, protocolFamily=uaf, and message contains UAF

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"uaf",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
        }

Sample response: deleteAll=0, protocolFamily=uaf, and message contains UAF

{
        "statusCode": 4000,
        "id": "G8ql264nwz5Dbt6kL1eviQ",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocol": "uaf_1.0",
        "protocolFamily": "uaf",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, protocolFamily=uaf, & message contains UAF and web

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"uaf",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogewogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAid2ViXzEuMCIKICAgICAgfQogICAgXQogIH0sCiAgInZlcnNpb24iOiAiMS4wIiwKICAiZGV2aWNlIjogewogICAgImlkIjogIjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTAiLAogICAgInR5cGUiOiAiYW5kcm9pZCIsCiAgICAiaW5mbyI6ICJOb2tOb2sgRW11bGF0b3IiLAogICAgIm1vZGVsIjogIk5va05vay1BRSA3LjAiLAogICAgIm9zIjogIk5va05va09TIDcuMCIsCiAgICAibWFudWZhY3R1cmVyIjogIk5va05vayIsCiAgICAic3VwcG9ydHNQbGF0Zm9ybUF1dGhlbnRpY2F0b3IiOiBmYWxzZQogIH0sCiAgImFwcCI6IHsKICAgICJpZCI6ICJhbmRyb2lkOmFway1rZXktaGFzaDpyRFE0VG42MGZBdnhQOHRodHA2c09oNW9jb2MiLAogICAgIm5hbWUiOiAiYW5kcm9pZDpjb20ubm9rbm9rLnRlc3QuY2xpZW50IgogIH0KfQ"
        }

Sample response: deleteAll=0, protocolFamily=uaf, & message contains UAF & web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "9tV8OK5NSR98g4xXtQhCiw",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocol": "uaf_1.0",
        "protocolFamily": "uaf",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, protocolFamily=uaf, and message contains web

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"uaf",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
        }

Sample response: deleteAll=0, protocolFamily=uaf, and message contains web

A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.

{
        "statusCode": 4408,
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, protocolFamily=web, and message contains UAF and web

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"web",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogewogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAid2ViXzEuMCIKICAgICAgfQogICAgXQogIH0sCiAgInZlcnNpb24iOiAiMS4wIiwKICAiZGV2aWNlIjogewogICAgImlkIjogIjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTAiLAogICAgInR5cGUiOiAiYW5kcm9pZCIsCiAgICAiaW5mbyI6ICJOb2tOb2sgRW11bGF0b3IiLAogICAgIm1vZGVsIjogIk5va05vay1BRSA3LjAiLAogICAgIm9zIjogIk5va05va09TIDcuMCIsCiAgICAibWFudWZhY3R1cmVyIjogIk5va05vayIsCiAgICAic3VwcG9ydHNQbGF0Zm9ybUF1dGhlbnRpY2F0b3IiOiBmYWxzZQogIH0sCiAgImFwcCI6IHsKICAgICJpZCI6ICJhbmRyb2lkOmFway1rZXktaGFzaDpyRFE0VG42MGZBdnhQOHRodHA2c09oNW9jb2MiLAogICAgIm5hbWUiOiAiYW5kcm9pZDpjb20ubm9rbm9rLnRlc3QuY2xpZW50IgogIH0KfQ"
        }

Sample response: deleteAll=0, protocolFamily=web, and message contains UAF and web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "Dw9rVDBE-nzhZgNliigP1A",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoid2ViXzEuMCIsInByb3RvY29sRmFtaWx5Ijoid2ViIn0",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocol": "web_1.0",
        "protocolFamily": "web",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, protocolFamily=web, and no message

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"web"
        }

Sample response: deleteAll=0, protocolFamily=web, and no message

A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.

{
        "statusCode": 4000,
        "id": "lrV1YTRL9XVUaBovxR9nXw",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoid2ViXzEuMCIsInByb3RvY29sRmFtaWx5Ijoid2ViIn0",
        "additionalInfo": {
        "protocol": "web_1.0",
        "protocolFamily": "web"
        }
        }

Sample request: deleteAll=0, protocolFamily=web, and message contains UAF

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"web",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
        }

Sample response: deleteAll=0, protocolFamily=web, and message contains UAF

A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.

{
        "statusCode": 4408,
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, protocolFamily=all, and message present

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"all",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogewogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAid2ViXzEuMCIKICAgICAgfQogICAgXQogIH0sCiAgInZlcnNpb24iOiAiMS4wIiwKICAiZGV2aWNlIjogewogICAgImlkIjogIjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTAiLAogICAgInR5cGUiOiAiYW5kcm9pZCIsCiAgICAiaW5mbyI6ICJOb2tOb2sgRW11bGF0b3IiLAogICAgIm1vZGVsIjogIk5va05vay1BRSA3LjAiLAogICAgIm9zIjogIk5va05va09TIDcuMCIsCiAgICAibWFudWZhY3R1cmVyIjogIk5va05vayIsCiAgICAic3VwcG9ydHNQbGF0Zm9ybUF1dGhlbnRpY2F0b3IiOiBmYWxzZQogIH0sCiAgImFwcCI6IHsKICAgICJpZCI6ICJhbmRyb2lkOmFway1rZXktaGFzaDpyRFE0VG42MGZBdnhQOHRodHA2c09oNW9jb2MiLAogICAgIm5hbWUiOiAiYW5kcm9pZDpjb20ubm9rbm9rLnRlc3QuY2xpZW50IgogIH0KfQ"
        }

Sample response: deleteAll=0, protocolFamily=all, and message present

A developer updated the response filter configuration so the API Server returns the protocol family and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "pTjnMDZnoKXB9BwYuuKRRA",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn0seyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sRmFtaWx5IjoiYWxsIn0",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocolFamily": "all",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=0, protocolFamily=all, and no message

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll": 0,
        "protocolFamily":"all"
        }

Sample response: deleteAll=0, protocolFamily=all, and no message

A developer updated the response filter configuration so the API Server returns the protocol family in additionalInfo.

{
        "statusCode": 4000,
        "id": "cCuvYef07-UsD-M6jLQ2KA",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn0seyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sRmFtaWx5IjoiYWxsIn0",
        "additionalInfo": {
        "protocolFamily": "all"
        }
        }

Sample request: deleteAll=1, no protocolFamily, and message contains web

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfSwKICAiZXh0ZW5zaW9ucyI6IFsKICAgIHsKICAgICAgImlkIjogIm5va25vay51YWYubG9jYXRpb24iLAogICAgICAiZGF0YSI6ICJ7XCJhY2N1cmFjeVwiOjk5LjIsXCJjb3VudHJ5Q29kZVwiOlwiVVNcIixcImxhdGl0dWRlXCI6MzIuNTIsXCJsb25naXR1ZGVcIjotMTI0LjQ4MixcInN0YXR1c1wiOjB9IiwKICAgICAgImZhaWxfaWZfdW5rbm93biI6IGZhbHNlCiAgICB9LAogICAgewogICAgICAiaWQiOiAibm9rbm9rLndpZmkuc3NpZCIsCiAgICAgICJkYXRhIjogIk92aXlhIiwKICAgICAgImZhaWxfaWZfdW5rbm93biI6IGZhbHNlCiAgICB9LAogICAgewogICAgICAiaWQiOiAibm9rbm9rLmlwYWRkcmVzcyIsCiAgICAgICJkYXRhIjogIjE5Mi4xNjguMC4xMDIiLAogICAgICAiZmFpbF9pZl91bmtub3duIjogZmFsc2UKICAgIH0sCiAgICB7CiAgICAgICJpZCI6ICJub2tub2sudWFmLmphaWxicmVhayIsCiAgICAgICJkYXRhIjogIntcbiAgXCJzdGF0dXNcIiA6IFwiMFwiLFxuICBcImlzSmFpbGJyb2tlblwiIDogXCJmYWxzZVwiXG59IiwKICAgICAgImZhaWxfaWZfdW5rbm93biI6IGZhbHNlCiAgICB9CiAgXSwKICAicXVpY2tBdXRoRGF0YSI6IHsKICAgICJhbGdvcml0aG0iOiB7CiAgICAgICJuYW1lIjogInBia2RmMiIKICAgIH0KICB9Cn0"
        }

Sample response: deleteAll=1, no protocolFamily, and message contains web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "Z-k19R9zdlKuL9sd3FYn6A",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocol": "web_1.0",
        "protocolFamily": "web",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }

Sample request: deleteAll=1, no protocolFamily, and message contains UAF

{
        "operation": "DELETE_REG",
        "sessionData":{
        "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
        }

Sample response: deleteAll=1, no protocolFamily, and message contains UAF

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "yvnJU7vjBrEy4JI63m29Vw",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
        "additionalInfo": {
        "device": {
        "id": "123456789abcdef1234567890",
        "type": "android",
        "info": "NokNok Emulator",
        "model": "NokNok-AE 8.0",
        "os": "NokNokOS 8.0",
        "manufacturer": "NokNok",
        "supportsPlatformAuthenticator": false
        },
        "protocol": "uaf_1.0",
        "protocolFamily": "uaf",
        "app": {
        "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
        "name": "android:com.noknok.test.client"
        }
        }
        }

Sample request: deleteAll=1, no protocolFamily, and message contains UAF and web

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAp7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}

Sample response: deleteAll=1, no protocolFamily, and message contains UAF and web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "Z2K2jpAIuhqffXRyNWi2bw",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocol": "web_1.0",
             "protocolFamily": "web",
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=uaf, and message contains UAF

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "uaf",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}

Sample response: deleteAll=1, protocolFamily=uaf, and message contains UAF

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "hYkk4_jQwp7O41qvTXZUuQ",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocol": "uaf_1.0",
             "protocolFamily": "uaf",
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=uaf, and message contains web

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "uaf",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}

Sample response: deleteAll=1, protocolFamily=uaf, and message contains web

A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.

{
        "statusCode": 4408,
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=uaf, and message contains UAF and web

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "uaf",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAp7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}

Sample response: deleteAll=1, protocolFamily=uaf, and message contains UAF and web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "iLYjWaZOheyk7LpIuoQBIQ",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocol": "uaf_1.0",
             "protocolFamily": "uaf",
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=web, and message contains web

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "web",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}

Sample response: deleteAll=1, protocolFamily=web, and message contains web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "4x2kF5RjfIVyBOX0UVXBNg",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocol": "web_1.0",
             "protocolFamily": "web",
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=web, and message contains UAF and web

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "web",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}

Sample response: deleteAll=1, protocolFamily=web, and message contains UAF and web

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "VZdG19YgQxK13dBzAWzu6w",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocol": "web_1.0",
             "protocolFamily": "web",
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=web, and message contains UAF

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "web",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}

Sample response: deleteAll=1, protocolFamily=web, and message contains UAF

A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.

{
        "statusCode": 4408,
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=all, and both UAF and FIDO2 registrations exist

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "all",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}

Sample response: deleteAll=1, protocolFamily=all, and both UAF and FIDO2 registrations exist

A developer updated the response filter configuration so the API Server returns the protocol family and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "2AKFSQexyhKmTdtskPGX6Q",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbEZhbWlseSI6ImFsbCJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocolFamily": "all",
                  "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=all, and only UAF registrations exist

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "all",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}

Sample response: deleteAll=1, protocolFamily=all, and only UAF registrations exist

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "J6KIbVzvpd-0fKtUyHS_Gg",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocol": "uaf_1.0",
             "protocolFamily": "uaf",
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

Sample request: deleteAll=1, protocolFamily=all, and only FIDO2 registrations exist

{
        "operation": "DELETE_REG",
        "sessionData":{
             "sessionKey":"<session JWT>"
        },
        "deleteAll" : 1,
        "protocolFamily" : "all",
        "message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}

Sample response: deleteAll=1, protocolFamily=all, and only FIDO2 registrations exist

A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.

{
        "statusCode": 4000,
        "id": "7qCOX4MVUSgYhMMX_RBTKQ",
        "message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
        "additionalInfo": {
             "device": {
                  "id": "123456789abcdef1234567890",
                  "type": "android",
                  "info": "NokNok Emulator",
                  "model": "NokNok-AE 8.0",
                  "os": "NokNokOS 8.0",
                  "manufacturer": "NokNok",
                  "supportsPlatformAuthenticator": false
             },
             "protocol": "web_1.0",
             "protocolFamily": "web",
             "app": {
                  "id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
                  "name": "android:com.noknok.test.client"
             }
        }
}

UPDATE_REG

Use to update any of the following data associated with the registration:

  • The name of the registered authenticator

  • User Verification Index (UVI) status

  • User Verification State (UVS) status

UVI and UVS are applicable to UAF only. The registered authenticator name is applicable to UAF and FIDO2.

UVI is used for Android devices and UVS is used for iOS devices.

The UVI is an optional value sent by the UAF Authenticator in the key registration data during registration and in the signed data during authentication. For example, a fingerprint-based authenticator could send a unique UVI string for a specific fingerprint.

During registration, the Server stores the UVI along with the authenticator data and returns uviStatus (UVI_REGISTERED).

During authentication, the Server compares the UVIs sent by the client with the authenticator-associated UVIs and returns uviStatus with one of the following values:

Value

Status

Description

-1

UNKNOWN

UVI unknown and not seen before.

0

PENDING

UVI seen before, but not activated.

1

ACTIVE

UVI seen before and activated.

2

DELETED

UVI deleted (this authenticator was deregistered).

3

DISABLED

UVI is disabled.

4

UVI_REGISTERED

UVI same as the registered UVI.

5

UVI_STATUS

UVI status.

Use the API POST /nnlgateway/nnl/<tenant_id>/reg method with an UPDATE_REG operation to activate a UVI, which updates its status from PENDING to ACTIVE.

In the case of UVS, an optional value is sent by the UAF Authenticator in the key registration data during registration and in the signed data during authentication. For example, a fingerprint-based authenticator could send a unique UVS string for a set of enrolled fingerprints on that device.

During registration, the Server stores the UVS along with the authenticator data and returns uvsStatus (REGISTERED).

During authentication, the Server compares the UVS sent by the client with the authenticator-associated UVS and returns uvsStatus with one of the following values:

Value

Status

Description

0

UNKNOWN

UVS unknown and not seen before.

1

KNOWN

UVS seen before

2

UNEXPECTED

UVS not seen before, but was received during authentication

3

MISSING

UVS seen before, but was missing during authentication.

4

REGISTERED

UVS registered.

Request

Attribute

Description

operation

Required. The string UPDATE_REG.

callerOrigin

Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it.

The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin.

handle

Required. Uniquely identifies the registration for the user. This must be matched with the registration that has to be updated. handle is returned as a response from FINISH_REG.

An alphanumeric string, maximum of 4000 characters.

id

Optional. The correlation ID, a unique identifier that associates operations like INIT_REG, UPDATE_REG, and FINISH_REG operations for the same user. An alphanumeric string, maximum of 255 characters. No special characters are allowed.

If not provided, the Server generates a unique id and returns it in the response.

optionsData

Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description.

regData

Required. Name-value pair array with relevant information. This updates the registration data. A list of type RegData.

Currently, UVI status, UVS status, and authenticator name updates are supported.

For example, in the case of UVI:

"regData":[
    {
        "name": "uvi",
        "value": "843y4234kkdsksdhsds..."
    },
    {
        "name": "uviStatus",
        "value": "1"
    }
]

For example, in the case of UVS:

"regData":[
    {
         "name": "uvs",
         "value":"843y4234kkdsksdhsds..."
    }
]

For example, in the case of authenticatorName:

"regData": [
    {
          "name": "authenticatorName",
          "value": "sampleAuthenticatorName"
    }
]

sessionData

Required. An object containing the user's session information. See SessionData.

Response

The following attributes are always present in the JSON payload of the response.

Attribute

Description

id

The unique id that correlates INIT_REG and FINISH_REG operations for the same user. An alphanumeric string, maximum of 255 characters.

If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown.

statusCode

Server-specific status code that reports the success or failure of the requested operation. Integer.

See Response Status Codes below.

The following attributes are present in the response upon a successful operation (Server status code 4000).

Attribute

Description

additionalInfo

An object containing information about the client app and device that is registering.

In order for the API Server to return this information,

  1. The client app must have sent the protocol family in the INIT_REG request's message attribute.

  2. Update the response filter configuration so the API Server returns the protocol family. Refer to Response Filter Configuration.

additionalInfo.protocolFamily

The protocol used by the Authentication Server based on information from the request. String. One of UAF or Web.

Response status codes

The following are the descriptions of the Auth Server status codes returned by UPDATE_REG. Under certain circumstances, the API Server returns an unsuccessful HTTP status code. Examples include an invalid request or invalid session. You can find descriptions of these in API Server Status Codes.

Server Status Code

Description

Examples

4000

OK. Operation completed

Request created successfully.

4001

OK. credential variance

UVI is different

4400

Registration NotFound

Exception

Failed to authenticate because the user registration does not exist on the Server.

4404

InternalServer

Exception

Internal server error.

Failed to read from the database.

Failed to connect to the database.

Failed to read required properties.

4406

Payload

Exception

An error occurred with one or more of the following attributes.

  • handle is empty.

  • handle with value <value> has an invalid type.

  • handle has invalid content.

4430

UserNotFound Exception

Failed to locate the user in the Server.

Samples

Sample request URL

https://www.example.com:8443/nnlgateway/nnl/<tenant_id>/reg

Sample Request

{
        "operation":"UPDATE_REG",
        "sessionData":{
            "sessionKey": "<session JWT>"
        },
        "id":"sample",
        "handle": "WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiR3BJUG92SFhIa1NBdVJKWDdINUNodklWeVp6M2N4LXdpWlg2d08wbktHVSJd",
        "regData":[
        {
            "name":"uvi",
            "value":"WtnlSQOq1LUlqCZ-MLpJpiqJ1QTGrSNgah3HCO8kcNU"
        },
        {
            "name":"uviStatus",
            "value":"1"
        }
        ]
}

Sample response

A developer updated the response filter configuration so the API Server returns the protocol family in additionalInfo.

{
        "id":"dEgViadKjxcleujKbpfi6g",
        "statusCode":4000,
        "additionalInfo":{
            "protocolFamily":"u2f"
        }
}

SUSPEND_REG

Suspends the FIDO authenticator for the given sessionData and authenticator handle. After a successful operation, updates the authenticator status in the database to 3.

Request

Attributes present in the JSON payload of the request.

Attribute

Description

operation

Required. The string UPDATE_REG

callerOrigin

Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it.

The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin.

handle

Required. Uniquely identifies the registration for the user. This must be matched with the relevant registration that has to be updated. handle is returned as a response from the FINISH_REG operation.

An alphanumeric string, maximum of 4000 characters.

id

Optional. A unique identifier that identifies this operation. An alphanumeric string, maximum of 255 characters. No special characters are allowed.

If not provided, the Server generates a unique id and returns it in the response.

optionsData

Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description.

requestType

Required. The string SUSPEND_REG.

sessionData

Required. An object containing the user's session information. See SessionData.

Response

The following attributes are always present in the JSON payload of the response.

Attribute

Description

id

The unique id to identify this operation. String.

If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown.

statusCode

Server-specific status code that reports the success or failure of the requested operation. Integer.

See the previous Response Status Codes for the status and error codes.

Samples

Sample request URL

https://www.example.com:8443/nnl/v2/reg

Sample request

{
        "operation":"UPDATE_REG",
        "requestType":"SUSPEND_REG",
        "userName":"testUser", "handle":"WyJ1YWZfMS4wIiwiQUJDRCMwMDAxIiwiTFNlZXE3QXJQczhZaW93QlhVUUU1aTQ0cU1ES3hwbDdYTi1ySTl3NUtUUSJd",
        "sessionData":{
            "sessionKey":"<session JWT>"
        },
        "tenant":{"id":"default"}
}

Sample response

{
        "id": "uLijXHuGVEG4qzz31ZCRJQ",
        "statusCode": 4000
}

RESUME_REG

Resumes the suspended authenticator for the given sessionData and authenticator handle. After a successful operation, the authenticator is available for use.

Request

The following attributes are present in the JSON payload of the request.

Attribute

Description

operation

Required. The string string UPDATE_REG

callerOrigin

Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it.

The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin.

handle

Required. Uniquely identifies the registration for the user. This must be matched with the relevant registration that has to be updated. handle is returned as a response of the FINISH_REG operation.

An alphanumeric string, maximum of 4000 characters.

id

Optional. The correlation ID, a unique identifier that associates operations like INIT_REG, UPDATE_REG, and FINISH_REG operations for the same user. An alphanumeric string, maximum of 255 characters. No special characters are allowed.

If not provided, the Server generates a unique id and returns it in the response.

optionsData

Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description.

requestType

Required. The string RESUME_REG.

sessionData

Required. An object containing the user's session information. See SessionData.

Response

The following attributes are always present in the JSON payload of the response.

Attribute

Description

id

The unique id that correlates INIT_REG and FINISH_REG operations for the same user. String.

If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown.

statusCode

Server-specific status code that reports the success or failure of the requested operation. Integer.

See Response Status Codes for UPDATE_REG for the status and error codes.

Samples

Sample request URL

https://www.example.com:8443/nnl/v2/reg

Sample Request

{
        "operation":"UPDATE_REG",
        "requestType":"RESUME_REG",
        "userName":"testUser",
        "handle":"WyJ1YWZfMS4wIiwiQUJDRCMwMDAxIiwiTFNlZXE3QXJQczhZaW93QlhVUUU1aTQ0cU1ES3hwbDdYTi1ySTl3NUtUUSJd"
}

Sample response

{
        "id": "uLijXHuGVEG4qzz31ZCRJQ",
        "statusCode": 4000
}