Send Terms & Conditions Email (Atlas Company)
Overview
The POST /banking/ibans/v2/sub-accounts/{subCompanyId}/tnc/send-email endpoint dispatches an official Terms & Conditions acceptance email to the designated controlling officer or director of a PARTNER_REFERRED sub-account.
This endpoint is used in the Atlas for Platform onboarding workflow once all Know Your Business (KYB) data and corporate documents have been submitted and compliance-approved by the platform. The nominated director receives a secure email link to review and electronically accept the terms, advancing the sub-account from pending onboarding to operational activation.
Resource Access
- HTTP Method:
POST - Endpoint:
/banking/ibans/v2/sub-accounts/{subCompanyId}/tnc/send-email - Authentication: Bearer token required (
Client:Sub-Accounts:write,Admin:Onboarding:read)
Request Headers
| Header | Value | Required | Description |
|---|---|---|---|
Authorization | Bearer {access_token} | Yes | JWT Bearer access token |
Content-Type | application/json | Yes | Request payload format |
Accept | application/json | Yes | Response payload format |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
subCompanyId | number | Yes | Company ID of the sub-account whose director should receive the email (e.g. 1045). |
Request Body
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | Yes | Email address of the nominated director where the acceptance link will be delivered. |
shareholderId | string (UUID) | Yes | Identifier of the shareholder record. Must correspond to an active, UBO-approved controlling officer/director returned in the shareholders list from GET /banking/ibans/v2/companies/{companyId}/onboarding-data. |
Request Example
{
"email": "director@example.com",
"shareholderId": "a91ecbb5-2ea5-4424-87e6-1337d19ad1dc"
}
Response
Success Response (200 OK)
{
"message": "Email sent successfully"
}
Response Fields
| Field | Type | Description |
|---|---|---|
message | string | Confirmation message indicating the dispatch was triggered and linked status was updated to pending acceptance. |
Error Responses
- 400 Bad Request: The specified
shareholderIdexists in the entity records but is not classified as an active director / controlling officer. - 401 Unauthorized: Missing or expired Bearer token.
- 404 Not Found: Sub-account not found, or
shareholderIddoes not match an active, UBO-approved director of the sub-account. - 500 Internal Server Error: Internal platform error.
Code Examples
cURL
curl -X POST "https://gateway.ahrvo.network/banking/ibans/v2/sub-accounts/1045/tnc/send-email" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "director@example.com",
"shareholderId": "a91ecbb5-2ea5-4424-87e6-1337d19ad1dc"
}'
Python
import requests
url = "https://gateway.ahrvo.network/banking/ibans/v2/sub-accounts/1045/tnc/send-email"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
}
payload = {
"email": "director@example.com",
"shareholderId": "a91ecbb5-2ea5-4424-87e6-1337d19ad1dc"
}
response = requests.post(url, json=payload, headers=headers)
print(response.status_code, response.json())
JavaScript (Node.js)
const axios = require('axios');
const url = 'https://gateway.ahrvo.network/banking/ibans/v2/sub-accounts/1045/tnc/send-email';
const headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json',
'Accept': 'application/json'
};
const payload = {
email: 'director@example.com',
shareholderId: 'a91ecbb5-2ea5-4424-87e6-1337d19ad1dc'
};
axios.post(url, payload, { headers })
.then(res => console.log('Response:', res.data))
.catch(err => console.error(err.response ? err.response.data : err.message));