POST/v2/oauth/tokenOAuth Authentication

OAuth2 authentication as per OAuth 2.0. Keep in mind, grant_type 'password' is deprecated and we'll remove it completely in th near future.
formgrant_type
formclient_id
formclient_secret
formusername
formpassword
formscope
formmfa_tokenMFA token as obtained by the Verification API

Example: Authenticate with username and password

Removed with the OAuth 2.1 spec. Please use the Authentication API

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typepassword
formclient_idBoldAppStaging
formclient_secretaivM9yDBV2cngb4XeV8tJmyd
formusername%2B40711111298
formpasswordfin8%4053y38%214rj
formscopeplatform
formmfa_tokencdb42109-feb8-4d55-b0ff-636cc6d1bc9e

Response

status400
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"message": "This functionality is not supported. Please update the app to the latest version.",
"code": "OldAppVersion",
"errorMessage": "This functionality is not supported. Please update the app to the latest version.",
"errorCode": "OldAppVersion"
}

Example: Authenticate with authorization grant code

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcode7f04be65-ace8-45cc-8c5a-7def1916b991
formredirect_urihttps%3A%2F%2Fauthorization.sesamtechnology.com
formclient_idBoldThirdPartyStaging
formclient_secretnKgKVuwrbV59wMZH6XXgJ3Ja

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"access_token": "9e01439a-20d9-40b9-ae0c-fadec8b8504a",
"refresh_token": "f2e59b9e-e195-4d32-8bec-bccf0c6ca153",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 49
}

Example: Refresh authentication token

POST/v1/authentications/password

{
"mfaToken": "af8337b5-311f-4abf-9fa3-9a51ff8db340",
"password": "fin8@53y38!4rj",
"clientId": "BoldAuthStaging",
"clientSecret": "cw3JrFa5vYQGGcm46pABAsPS",
"phoneNumber": "+40711111298"
}

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"code": "b51b918e-3e85-4086-aec5-370dd61d8bd3",
"expiration": "2026-03-10T09:42:45.553536044Z",
"accountId": 50,
"accountCreated": false
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcodeb51b918e-3e85-4086-aec5-370dd61d8bd3
formredirect_uriboldsmartlock%3A%2F%2Fauth
formclient_idBoldAuthStaging
formclient_secretcw3JrFa5vYQGGcm46pABAsPS

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"access_token": "199e3162-80cb-4acf-9281-f58487879c32",
"refresh_token": "40156dc1-8920-4360-afeb-168925d31aba",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 50
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typerefresh_token
formclient_idBoldAuthStaging
formclient_secretcw3JrFa5vYQGGcm46pABAsPS
formrefresh_token40156dc1-8920-4360-afeb-168925d31aba

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"access_token": "cd5bc01e-ae01-4a69-b9d6-4d3c65d087b0",
"refresh_token": "dd480b2f-3b46-4321-9e5b-026511d00486",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 50
}

Example: Authenticate twice in a row for the same client

POST/v1/authentications/password

{
"mfaToken": "52053dec-81d1-449c-ab4d-cf93a1c6b495",
"password": "fin8@53y38!4rj",
"clientId": "BoldAuthStaging",
"clientSecret": "cw3JrFa5vYQGGcm46pABAsPS",
"phoneNumber": "+40711111298"
}

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"code": "c5bb6168-a1f7-403b-a172-3682dfd1d61c",
"expiration": "2026-03-10T09:42:46.770395707Z",
"accountId": 51,
"accountCreated": false
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcodec5bb6168-a1f7-403b-a172-3682dfd1d61c
formredirect_uriboldsmartlock%3A%2F%2Fauth
formclient_idBoldAuthStaging
formclient_secretcw3JrFa5vYQGGcm46pABAsPS

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"access_token": "41352fcb-b434-4fe4-aaa0-654d9b4f4053",
"refresh_token": "7391383b-89ff-415d-bb4b-083d4b5f818b",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 51
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcodec5bb6168-a1f7-403b-a172-3682dfd1d61c
formredirect_uriboldsmartlock%3A%2F%2Fauth
formclient_idBoldAuthStaging
formclient_secretcw3JrFa5vYQGGcm46pABAsPS

Response

status400
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"error": "invalid_request",
"error_description": "InvalidGrantCode",
"message": "OAuth failure",
"errorMessage": "OAuth failure"
}

Example: Authenticate, then use token with old system

POST/v1/authentications/password

{
"mfaToken": "b4b9d03a-4384-40a1-b53a-98978bfe71b9",
"password": "fin8@53y38!4rj",
"clientId": "BoldAuthStaging",
"clientSecret": "cw3JrFa5vYQGGcm46pABAsPS",
"phoneNumber": "+40711111298"
}

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"code": "e3f2cf8a-073b-4413-9442-68dd1e11ec60",
"expiration": "2026-03-10T09:42:47.957536019Z",
"accountId": 52,
"accountCreated": false
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcodee3f2cf8a-073b-4413-9442-68dd1e11ec60
formredirect_uriboldsmartlock%3A%2F%2Fauth
formclient_idBoldAuthStaging
formclient_secretcw3JrFa5vYQGGcm46pABAsPS

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"access_token": "9c273f53-df0f-4f4f-afcd-3f5be3b4e3d1",
"refresh_token": "287f7b7e-9a9e-4a58-87b0-1545b28f2b29",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 52
}

GET/v1/accounts

headerAuthorizationBearer 9c273f53-df0f-4f4f-afcd-3f5be3b4e3d1

Response

status200
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
[{
"id": 52,
"email": "sesam@example.com",
"phone": "+40711111298",
"phoneCountryCode": "RO",
"isSystemAccount": false,
"isSupportAccount": false,
"isSystemIntegration": false,
"dateCreated": "2026-03-10T09:32:47.714393Z",
"dateModified": "2026-03-10T09:32:48.239216Z",
"dateLastAuthentication": "2026-03-10T09:32:48.222947Z",
"registered": true
}
]

GET/v1/accounts

headerX-Auth-Token9c273f53-df0f-4f4f-afcd-3f5be3b4e3d1

Response

status401
headerAccess-Control-Expose-Headersauthorization, content-type
headerAccess-Control-Allow-Headersauthorization, content-type
headerAccess-Control-Allow-MethodsGET, POST, DELETE, OPTIONS, PUT
headerAccess-Control-Allow-Origin*
headerStrict-Transport-Securitymax-age=31536000; includeSubDomains
headerX-Frame-OptionsSAMEORIGIN
headerX-Content-Type-Optionsnosniff
headerX-XSS-Protection1; mode=block
headerContent-Security-Policydefault-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
headerReferrer-Policyno-referrer
headerFeature-Policyself
headerPermissions-policyinterest-cohort=()
{
"message": "Authentication is possible but has failed or not yet been provided.",
"errorMessage": "Authentication is possible but has failed or not yet been provided."
}