Login (2nd step)
POST/api/Users/LoginSecondStep
Description​
The second step of the user login process, which is applicable in multi-factor authentication scenarios. It further validates the user based on additional authentication factors provided in the 1st step.
The user’s OTP validity is verified. After a successful verification, the user’s information is retrieved along with the generated SharedKey.
This API call can only take place with a PreAgreedKey.
Request​
- application/json
Body Parameters
ActionLog object
LogInfo object
Validation objectrequiredThe validation parameter, mandatory to all Banking Suite API calls.
The access token for authentication.
The key assigned to the application.
The unique code assigned to the customer.
The unique identifier of the device.
The key used for login.
The token used to refresh the session.
The username for authentication.
The code used for login validation (OTP).
The ID associated with a specific code entry during login (OTP ID).
The name of the device used for login.
Details of the device used for login.
Indicates whether email validation is needed for the login process.
Responses​
- 200
- application/json
- text/json
- text/plain
- Schema
- Example (from schema)
Schema
- Array [
- ]
- Array [
- ]
- Array [
- ]
Possible values: [100, 101, 102, 103, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 424, 426, 428, 429, 431, 451, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511]
Description: 100 = "Continue", 101 = "SwitchingProtocols", 102 = "Processing", 103 = "EarlyHints", 200 = "OK", 201 = "Created", 202 = "Accepted", 203 = "NonAuthoritativeInformation", 204 = "NoContent", 205 = "ResetContent", 206 = "PartialContent", 207 = "MultiStatus", 208 = "AlreadyReported", 226 = "IMUsed", 300 = "Ambiguous", 300 = "Ambiguous", 301 = "Moved", 301 = "Moved", 302 = "Redirect", 302 = "Redirect", 303 = "RedirectMethod", 303 = "RedirectMethod", 304 = "NotModified", 305 = "UseProxy", 306 = "Unused", 307 = "TemporaryRedirect", 307 = "TemporaryRedirect", 308 = "PermanentRedirect", 400 = "BadRequest", 401 = "Unauthorized", 402 = "PaymentRequired", 403 = "Forbidden", 404 = "NotFound", 405 = "MethodNotAllowed", 406 = "NotAcceptable", 407 = "ProxyAuthenticationRequired", 408 = "RequestTimeout", 409 = "Conflict", 410 = "Gone", 411 = "LengthRequired", 412 = "PreconditionFailed", 413 = "RequestEntityTooLarge", 414 = "RequestUriTooLong", 415 = "UnsupportedMediaType", 416 = "RequestedRangeNotSatisfiable", 417 = "ExpectationFailed", 421 = "MisdirectedRequest", 422 = "UnprocessableEntity", 423 = "Locked", 424 = "FailedDependency", 426 = "UpgradeRequired", 428 = "PreconditionRequired", 429 = "TooManyRequests", 431 = "RequestHeaderFieldsTooLarge", 451 = "UnavailableForLegalReasons", 500 = "InternalServerError", 501 = "NotImplemented", 502 = "BadGateway", 503 = "ServiceUnavailable", 504 = "GatewayTimeout", 505 = "HttpVersionNotSupported", 506 = "VariantAlsoNegotiates", 507 = "InsufficientStorage", 508 = "LoopDetected", 510 = "NotExtended", 511 = "NetworkAuthenticationRequired"
Possible values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Description: 0 = "UNKNOWN", 1 = "OK", 2 = "FAIL", 3 = "UNAUTHORIZED", 4 = "PASSWORD_EXPIRED", 5 = "DISABLED", 6 = "BLOCKED", 7 = "TIME_OUT", 8 = "NO_INTERNET", 9 = "INVALID_ACCOUNT", 10 = "REQUIRE_UPDATE", 11 = "SYSTEM_DOWN", 12 = "PENDING_COMMAND", 13 = "PENDING_LOGIN", 14 = "REGISTERED"
validationCodeEntry object
Possible values: non-empty and <= 70 characters
Possible values: non-empty and <= 10 characters
Possible values: non-empty and <= 70 characters
Possible values: non-empty and <= 256 characters
webUser object
behavAuth object
pendingPolicies object[]nullable
Possible values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]
userSettings object
consents object[]nullable
policies object[]nullable
properties object
{
"httpStatusCode": 100,
"isFirstLogin": true,
"loginKey": "string",
"message": "string",
"requiredVersion": 0,
"sharedKey": "string",
"sharedKeyEntryId": 0,
"status": 0,
"validationCodeEntry": {
"appKey": "string",
"code": "string",
"date": "2025-02-02T06:23:02.712Z",
"deviceID": "string",
"id": 0,
"username": "string"
},
"validationCodeEntryId": 0,
"validationCodeLength": 0,
"webUser": {
"accessToken": "string",
"behavAuth": {
"apiKey": "string",
"isAvailable": true,
"userVerificationSecret": "string"
},
"customerCode": "string",
"email": "string",
"favoriteOperationsJson": "string",
"fullname": "string",
"hasPendingPolicies": true,
"homeViewsJson": "string",
"id": "string",
"pendingPolicies": [
{
"code": "string",
"hasAccepted": true,
"id": 0,
"language": "string",
"order": 0,
"text": "string",
"title": "string"
}
],
"phone": "string",
"photo": "string",
"refreshToken": "string",
"roles": [
0
],
"userPreferencesJson": "string",
"userSettings": {
"consents": [
{
"channel": "string",
"consentCode": "string",
"dateAccepted": "2025-02-02T06:23:02.712Z",
"hasAcknowledged": true
}
],
"policies": [
{
"channel": "string",
"dateAccepted": "2025-02-02T06:23:02.712Z",
"hasAcknowledged": true,
"policyTextCode": "string"
}
],
"properties": {
"allowTransfersAbroad": true,
"isFreeLancer": true,
"isIndividual": true,
"isLegalEntity": true,
"isOnboardCompleted": true
}
},
"username": "string"
}
}
- Schema
- Example (from schema)
Schema
- Array [
- ]
- Array [
- ]
- Array [
- ]
Possible values: [100, 101, 102, 103, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 424, 426, 428, 429, 431, 451, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511]
Description: 100 = "Continue", 101 = "SwitchingProtocols", 102 = "Processing", 103 = "EarlyHints", 200 = "OK", 201 = "Created", 202 = "Accepted", 203 = "NonAuthoritativeInformation", 204 = "NoContent", 205 = "ResetContent", 206 = "PartialContent", 207 = "MultiStatus", 208 = "AlreadyReported", 226 = "IMUsed", 300 = "Ambiguous", 300 = "Ambiguous", 301 = "Moved", 301 = "Moved", 302 = "Redirect", 302 = "Redirect", 303 = "RedirectMethod", 303 = "RedirectMethod", 304 = "NotModified", 305 = "UseProxy", 306 = "Unused", 307 = "TemporaryRedirect", 307 = "TemporaryRedirect", 308 = "PermanentRedirect", 400 = "BadRequest", 401 = "Unauthorized", 402 = "PaymentRequired", 403 = "Forbidden", 404 = "NotFound", 405 = "MethodNotAllowed", 406 = "NotAcceptable", 407 = "ProxyAuthenticationRequired", 408 = "RequestTimeout", 409 = "Conflict", 410 = "Gone", 411 = "LengthRequired", 412 = "PreconditionFailed", 413 = "RequestEntityTooLarge", 414 = "RequestUriTooLong", 415 = "UnsupportedMediaType", 416 = "RequestedRangeNotSatisfiable", 417 = "ExpectationFailed", 421 = "MisdirectedRequest", 422 = "UnprocessableEntity", 423 = "Locked", 424 = "FailedDependency", 426 = "UpgradeRequired", 428 = "PreconditionRequired", 429 = "TooManyRequests", 431 = "RequestHeaderFieldsTooLarge", 451 = "UnavailableForLegalReasons", 500 = "InternalServerError", 501 = "NotImplemented", 502 = "BadGateway", 503 = "ServiceUnavailable", 504 = "GatewayTimeout", 505 = "HttpVersionNotSupported", 506 = "VariantAlsoNegotiates", 507 = "InsufficientStorage", 508 = "LoopDetected", 510 = "NotExtended", 511 = "NetworkAuthenticationRequired"
Possible values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Description: 0 = "UNKNOWN", 1 = "OK", 2 = "FAIL", 3 = "UNAUTHORIZED", 4 = "PASSWORD_EXPIRED", 5 = "DISABLED", 6 = "BLOCKED", 7 = "TIME_OUT", 8 = "NO_INTERNET", 9 = "INVALID_ACCOUNT", 10 = "REQUIRE_UPDATE", 11 = "SYSTEM_DOWN", 12 = "PENDING_COMMAND", 13 = "PENDING_LOGIN", 14 = "REGISTERED"
validationCodeEntry object
Possible values: non-empty and <= 70 characters
Possible values: non-empty and <= 10 characters
Possible values: non-empty and <= 70 characters
Possible values: non-empty and <= 256 characters
webUser object
behavAuth object
pendingPolicies object[]nullable
Possible values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]
userSettings object
consents object[]nullable
policies object[]nullable
properties object
{
"httpStatusCode": 100,
"isFirstLogin": true,
"loginKey": "string",
"message": "string",
"requiredVersion": 0,
"sharedKey": "string",
"sharedKeyEntryId": 0,
"status": 0,
"validationCodeEntry": {
"appKey": "string",
"code": "string",
"date": "2025-02-02T06:23:02.712Z",
"deviceID": "string",
"id": 0,
"username": "string"
},
"validationCodeEntryId": 0,
"validationCodeLength": 0,
"webUser": {
"accessToken": "string",
"behavAuth": {
"apiKey": "string",
"isAvailable": true,
"userVerificationSecret": "string"
},
"customerCode": "string",
"email": "string",
"favoriteOperationsJson": "string",
"fullname": "string",
"hasPendingPolicies": true,
"homeViewsJson": "string",
"id": "string",
"pendingPolicies": [
{
"code": "string",
"hasAccepted": true,
"id": 0,
"language": "string",
"order": 0,
"text": "string",
"title": "string"
}
],
"phone": "string",
"photo": "string",
"refreshToken": "string",
"roles": [
0
],
"userPreferencesJson": "string",
"userSettings": {
"consents": [
{
"channel": "string",
"consentCode": "string",
"dateAccepted": "2025-02-02T06:23:02.713Z",
"hasAcknowledged": true
}
],
"policies": [
{
"channel": "string",
"dateAccepted": "2025-02-02T06:23:02.713Z",
"hasAcknowledged": true,
"policyTextCode": "string"
}
],
"properties": {
"allowTransfersAbroad": true,
"isFreeLancer": true,
"isIndividual": true,
"isLegalEntity": true,
"isOnboardCompleted": true
}
},
"username": "string"
}
}
- Schema
- Example (from schema)
Schema
- Array [
- ]
- Array [
- ]
- Array [
- ]
Possible values: [100, 101, 102, 103, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 424, 426, 428, 429, 431, 451, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511]
Description: 100 = "Continue", 101 = "SwitchingProtocols", 102 = "Processing", 103 = "EarlyHints", 200 = "OK", 201 = "Created", 202 = "Accepted", 203 = "NonAuthoritativeInformation", 204 = "NoContent", 205 = "ResetContent", 206 = "PartialContent", 207 = "MultiStatus", 208 = "AlreadyReported", 226 = "IMUsed", 300 = "Ambiguous", 300 = "Ambiguous", 301 = "Moved", 301 = "Moved", 302 = "Redirect", 302 = "Redirect", 303 = "RedirectMethod", 303 = "RedirectMethod", 304 = "NotModified", 305 = "UseProxy", 306 = "Unused", 307 = "TemporaryRedirect", 307 = "TemporaryRedirect", 308 = "PermanentRedirect", 400 = "BadRequest", 401 = "Unauthorized", 402 = "PaymentRequired", 403 = "Forbidden", 404 = "NotFound", 405 = "MethodNotAllowed", 406 = "NotAcceptable", 407 = "ProxyAuthenticationRequired", 408 = "RequestTimeout", 409 = "Conflict", 410 = "Gone", 411 = "LengthRequired", 412 = "PreconditionFailed", 413 = "RequestEntityTooLarge", 414 = "RequestUriTooLong", 415 = "UnsupportedMediaType", 416 = "RequestedRangeNotSatisfiable", 417 = "ExpectationFailed", 421 = "MisdirectedRequest", 422 = "UnprocessableEntity", 423 = "Locked", 424 = "FailedDependency", 426 = "UpgradeRequired", 428 = "PreconditionRequired", 429 = "TooManyRequests", 431 = "RequestHeaderFieldsTooLarge", 451 = "UnavailableForLegalReasons", 500 = "InternalServerError", 501 = "NotImplemented", 502 = "BadGateway", 503 = "ServiceUnavailable", 504 = "GatewayTimeout", 505 = "HttpVersionNotSupported", 506 = "VariantAlsoNegotiates", 507 = "InsufficientStorage", 508 = "LoopDetected", 510 = "NotExtended", 511 = "NetworkAuthenticationRequired"
Possible values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Description: 0 = "UNKNOWN", 1 = "OK", 2 = "FAIL", 3 = "UNAUTHORIZED", 4 = "PASSWORD_EXPIRED", 5 = "DISABLED", 6 = "BLOCKED", 7 = "TIME_OUT", 8 = "NO_INTERNET", 9 = "INVALID_ACCOUNT", 10 = "REQUIRE_UPDATE", 11 = "SYSTEM_DOWN", 12 = "PENDING_COMMAND", 13 = "PENDING_LOGIN", 14 = "REGISTERED"
validationCodeEntry object
Possible values: non-empty and <= 70 characters
Possible values: non-empty and <= 10 characters
Possible values: non-empty and <= 70 characters
Possible values: non-empty and <= 256 characters
webUser object
behavAuth object
pendingPolicies object[]nullable
Possible values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]
userSettings object
consents object[]nullable
policies object[]nullable
properties object
{
"httpStatusCode": 100,
"isFirstLogin": true,
"loginKey": "string",
"message": "string",
"requiredVersion": 0,
"sharedKey": "string",
"sharedKeyEntryId": 0,
"status": 0,
"validationCodeEntry": {
"appKey": "string",
"code": "string",
"date": "2025-02-02T06:23:02.713Z",
"deviceID": "string",
"id": 0,
"username": "string"
},
"validationCodeEntryId": 0,
"validationCodeLength": 0,
"webUser": {
"accessToken": "string",
"behavAuth": {
"apiKey": "string",
"isAvailable": true,
"userVerificationSecret": "string"
},
"customerCode": "string",
"email": "string",
"favoriteOperationsJson": "string",
"fullname": "string",
"hasPendingPolicies": true,
"homeViewsJson": "string",
"id": "string",
"pendingPolicies": [
{
"code": "string",
"hasAccepted": true,
"id": 0,
"language": "string",
"order": 0,
"text": "string",
"title": "string"
}
],
"phone": "string",
"photo": "string",
"refreshToken": "string",
"roles": [
0
],
"userPreferencesJson": "string",
"userSettings": {
"consents": [
{
"channel": "string",
"consentCode": "string",
"dateAccepted": "2025-02-02T06:23:02.713Z",
"hasAcknowledged": true
}
],
"policies": [
{
"channel": "string",
"dateAccepted": "2025-02-02T06:23:02.713Z",
"hasAcknowledged": true,
"policyTextCode": "string"
}
],
"properties": {
"allowTransfersAbroad": true,
"isFreeLancer": true,
"isIndividual": true,
"isLegalEntity": true,
"isOnboardCompleted": true
}
},
"username": "string"
}
}