Skip to main content

Login & Token Exchange (Atlas Company)

Overview

The POST /banking/ibans/v2/users/login endpoint allows client applications to exchange developer credentials (clientId and apiKey) for a Bearer JWT token.

The returned jwt token must be supplied in the Authorization header of all subsequent calls to protected Atlas API endpoints:

Authorization: Bearer <jwt>

[!NOTE] The issued jwt token is valid for 60 minutes. When expired, repeat the login call to generate a fresh token.

Resource Access

  • HTTP Method: POST
  • Endpoint: /banking/ibans/v2/users/login
  • Authentication: None required (public authentication endpoint)

Request Headers

HeaderValueRequiredDescription
Content-Typeapplication/jsonYesRequest payload format
Acceptapplication/jsonYesResponse payload format

Request Body

Request Fields

FieldTypeRequiredDescription
clientIdstringYesThe unique 28-digit alphanumeric identifier assigned to your account in the developer portal.
apiKeystringYesThe secret API key generated in the portal to authorize requests.
modestringYesMust be passed as apiKey to specify API customer authorization.

Request Example

{
"clientId": "YOUR_CLIENT_ID",
"apiKey": "YOUR_API_KEY",
"mode": "apiKey"
}

Response

Success Response (200 OK)

{
"userId": 1234,
"companyId": "1234",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiI0NjI1YWVkOC0xMmZmLTIzMmQtZWE0OC0yYWYzMjllMGVjNTEiLCJsb2dpbk1vZGUiOiJhcGlLZXkiLCJpZCI6NTI2LCJjb21wYW55SWQiOjUyNSwidXNlclJlY29yZElkIjoxNDgsInJvbGUiOiJOT1JNQUxfQ0xJRU5UIiwicmF0ZUxpbWl0IjoyMDAwLCJpYXQiOjE3MjExMjAyMDcsImV4cCI6MTcyMTEyMzgwN30.nLOVQFjQuAOAjKRU5lH49BCjdKaO3OpDOwOImdHCPqg"
}

Response Fields

FieldTypeDescription
userIdstring/integerUnique identifier of the authenticated user record.
companyIdstringUnique corporate entity identifier associated with the credentials.
jwtstringBase64-encoded JWT Bearer access token valid for 60 minutes. Pass as Authorization: Bearer <jwt>.

Error Responses

  • 400 Bad Request: Invalid payload format or missing mandatory clientId / apiKey / mode.
  • 401 Unauthorized: Invalid credentials, inactive account, or unauthorized access origin.
  • 500 Internal Server Error: Internal platform error during authentication processing.

Code Examples

cURL

curl -X POST "https://gateway.ahrvo.network/banking/ibans/v2/users/login" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"clientId": "YOUR_CLIENT_ID",
"apiKey": "YOUR_API_KEY",
"mode": "apiKey"
}'

Python

import requests

url = "https://gateway.ahrvo.network/banking/ibans/v2/users/login"
headers = {
"Content-Type": "application/json",
"Accept": "application/json"
}

payload = {
"clientId": "YOUR_CLIENT_ID",
"apiKey": "YOUR_API_KEY",
"mode": "apiKey"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()
print("JWT Token:", data.get("jwt"))
print("Company ID:", data.get("companyId"))

JavaScript (Node.js)

const axios = require('axios');

const url = 'https://gateway.ahrvo.network/banking/ibans/v2/users/login';
const headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
};

const payload = {
clientId: 'YOUR_CLIENT_ID',
apiKey: 'YOUR_API_KEY',
mode: 'apiKey'
};

axios.post(url, payload, { headers })
.then(res => {
console.log('JWT Token:', res.data.jwt);
console.log('Company ID:', res.data.companyId);
})
.catch(err => console.error(err.response ? err.response.data : err.message));

Interactive API Explorer