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_tokenb2edb2ec-f795-40e4-a10d-f9a3651dd91c

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
formcode163182bf-4759-48ae-a11f-02d20289b944
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": "6392a1d9-59e2-473c-8f78-4977c5a61b07",
"refresh_token": "993ec4c2-ebaa-44b6-a2a0-699938cdc831",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 1
}

Example: Refresh authentication token

POST/v1/authentications/password

{
"mfaToken": "9db28e66-aa10-45e2-9048-9e20aa1b5171",
"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": "147d56c6-b4cb-46ce-8f51-d2110f98025b",
"expiration": "2026-08-21T15:13:22.036518894Z",
"accountId": 1,
"accountCreated": false,
"registered": true,
"emailAddress": "sesam@example.com"
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcode147d56c6-b4cb-46ce-8f51-d2110f98025b
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": "bf192629-a5b8-45e5-9b04-6e340310d990",
"refresh_token": "63b485dd-a1e2-4c6d-83a5-ff5eb3d356ff",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 1
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typerefresh_token
formclient_idBoldAuthStaging
formclient_secretcw3JrFa5vYQGGcm46pABAsPS
formrefresh_token63b485dd-a1e2-4c6d-83a5-ff5eb3d356ff

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": "e28ff800-99d9-496f-9809-d3134ff6bf7f",
"refresh_token": "d0e1c7cd-8840-424e-bf47-d3d1bcc33020",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 1
}

Example: Authenticate twice in a row for the same client

POST/v1/authentications/password

{
"mfaToken": "c09e042e-a457-4e4d-9802-bb5a3dbe3b2d",
"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": "f6bb4d45-fbdc-4852-bef9-cc8ce28a5311",
"expiration": "2026-08-21T15:13:23.256116884Z",
"accountId": 1,
"accountCreated": false,
"registered": true,
"emailAddress": "sesam@example.com"
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcodef6bb4d45-fbdc-4852-bef9-cc8ce28a5311
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": "740568c4-7d0a-41c5-a930-8db3a6207be6",
"refresh_token": "f0154e17-6585-4e92-937c-ba7db4a165d6",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 1
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcodef6bb4d45-fbdc-4852-bef9-cc8ce28a5311
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": "5e137543-542d-4387-817c-03a2ca64cfcf",
"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": "682f2227-c5d8-447c-b572-5b389d1dbf8e",
"expiration": "2026-08-21T15:13:24.61429154Z",
"accountId": 1,
"accountCreated": false,
"registered": true,
"emailAddress": "sesam@example.com"
}

POST/v2/oauth/token

headerContent-Typeapplication/x-www-form-urlencoded
formgrant_typeauthorization_code
formcode682f2227-c5d8-447c-b572-5b389d1dbf8e
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": "b7622147-3d90-4365-9520-cb85d76205df",
"refresh_token": "d963201d-8241-49e4-b22d-5944beb809d1",
"token_type": "Bearer",
"expires_in": 86400,
"account_id": 1
}

GET/v1/accounts

headerAuthorizationBearer b7622147-3d90-4365-9520-cb85d76205df

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": 1,
"email": "sesam@example.com",
"phone": "+40711111298",
"phoneCountryCode": "RO",
"isSystemAccount": false,
"isSupportAccount": false,
"isSystemIntegration": false,
"dateCreated": "2026-08-21T15:03:24.587596Z",
"dateModified": "2026-08-21T15:03:24.673962Z",
"dateLastAuthentication": "2026-08-21T15:03:24.648392Z",
"registered": true
}
]

GET/v1/accounts

headerX-Auth-Tokenb7622147-3d90-4365-9520-cb85d76205df

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