URL: /baas/api/reference/customer-apis/organization/activation
---
title: 'Organization Activation API'
description: 'Activate verified organization accounts'
---
import { RequiredRunnerHeadersWithUserContext } from '../../schemas/required-headers-snippet.mdx';
# Organization Activation API
Activate a verified organization account to enable wallet operations and financial transactions.
For complete details on authentication and headers, refer to the [Standard HTTP Headers](../../schemas/standard-headers) reference documentation.
**Role Requirement:** Only users with **COMPLIANCE_OFFICER** or **ADMIN_USER** roles can activate an organization.
---
## Prerequisites Checklist (14-Step Validation)
Before attempting activation, the system validates **14 prerequisites**:
### 1. Organization Structure (4 checks)
- [ ] Organization registered and status = `PENDING_ACTIVATION`
- [ ] At least 1 director added
- [ ] At least 1 employee with **ADMIN_USER** role
- [ ] Total shareholder ownership = **100%** exactly
### 2. Verification (3 checks)
- [ ] KYB verification completed
- [ ] Verification status = **APPROVED**
- [ ] All personnel (directors, UBOs) verified
### 3. Consents (3 checks)
- [ ] Terms and Conditions accepted
- [ ] Privacy Policy accepted
- [ ] Data Processing Agreement accepted
### 4. Documents (2 checks)
- [ ] All required corporate documents uploaded
- [ ] All documents status = **VERIFIED**
### 5. Authorization (2 checks)
- [ ] User has **COMPLIANCE_OFFICER** or **ADMIN_USER** role
- [ ] User is linked to the organization
**Check Activation Readiness:** Use `GET /{organizationId}/activation/readiness` to validate all prerequisites before attempting activation.
---
## Endpoint
```
POST /api/v2.1/customer/organization/{organizationId}/activation
```
---
## Headers
Tenant identifier
Example: `97e7ff29-15f3-49ef-9681-3bbfcce4f6cd`
Bearer token for authentication (admin privileges required)
Must be `application/json`
Response format (optional — defaults to `application/json`)
Example: `application/json, text/plain, */*`
User ID of the admin performing activation
Example: `e2f3a4b5-c6d7-48e9-0f1a-2b3c4d5e6f7a`
Comma-separated list of user roles
Example: `ADMIN_USER,COMPLIANCE_OFFICER`
Source identifier for request origin tracking
Example: `e2e-test`
Client application identifier — required by the global request filter
Example: `YourApp/1.0` or `Mozilla/5.0 (Windows NT 10.0; Win64; x64)`
Client platform identifier. Also accepted as `sec-ch-ua-platform`
Example: `web`
Unique device identifier for session tracking. Also accepted as `X-Device-Id` or `device-id`
Example: `356938035643809`
---
## Path Parameters
Organization UUID identifier
Example: `ef4a8be6-602b-4b26-b81d-afa7d6d835fd`
---
## Request Body
Reason for activation
Example: `"Organization account activation after KYB completion"`
Optional metadata about the activation
User ID performing the activation
Example: `"87b3af37-4ac1-402b-a0ea-53cfdc695e02"`
Activation code for verification
Example: `"E2E_TEST"`
---
## Code Examples
```bash cURL
curl -X POST "https://sandbox.finhub.cloud/api/v2.1/customer/organization/ef4a8be6-602b-4b26-b81d-afa7d6d835fd/activation" \
-H "Accept: application/json, text/plain, */*" \
-H "Content-Type: application/json" \
-H "X-Tenant-ID: 97e7ff29-15f3-49ef-9681-3bbfcce4f6cd" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "X-User-ID: e2f3a4b5-c6d7-48e9-0f1a-2b3c4d5e6f7a" \
-H "X-User-Roles: ADMIN_USER,COMPLIANCE_OFFICER" \
-H "X-Forwarded-From: e2e-test" \
-H "platform: web" \
-H "deviceId: 356938035643809" \
-d '{
"activationReason": "E2E Test Activation",
"additionalInfo": {
"userId": "87b3af37-4ac1-402b-a0ea-53cfdc695e02",
"activationCode": "E2E_TEST"
}
}'
```
```javascript JavaScript
const activateOrganization = async (organizationId, userId, userRoles) => {
const response = await fetch(
`https://sandbox.finhub.cloud/api/v2.1/customer/organization/${organizationId}/activation`,
{
method: 'POST',
headers: {
'Accept': 'application/json, text/plain, */*',
'Content-Type': 'application/json',
'X-Tenant-ID': '97e7ff29-15f3-49ef-9681-3bbfcce4f6cd',
'Authorization': `Bearer ${accessToken}`,
'X-User-ID': userId,
'X-User-Roles': userRoles,
'X-Forwarded-From': 'e2e-test',
'platform': 'web',
'deviceId': '356938035643809'
},
body: JSON.stringify({
activationReason: 'E2E Test Activation',
additionalInfo: {
userId: userId,
activationCode: 'E2E_TEST'
}
})
}
);
return response.json();
};
```
```python Python
import requests
def activate_organization(organization_id, user_id, user_roles):
url = f'https://sandbox.finhub.cloud/api/v2.1/customer/organization/{organization_id}/activation'
headers = {
'Accept': 'application/json, text/plain, */*',
'Content-Type': 'application/json',
'X-Tenant-ID': '97e7ff29-15f3-49ef-9681-3bbfcce4f6cd',
'Authorization': f'Bearer {access_token}',
'X-User-ID': user_id,
'X-User-Roles': user_roles,
'X-Forwarded-From': 'e2e-test',
'platform': 'web',
'deviceId': '356938035643809'
}
payload = {
'activationReason': 'Organization account activation after KYB completion',
'additionalInfo': {
'testRun': False,
'activatedBy': 'Admin User'
}
}
response = requests.post(url, headers=headers, json=payload)
return response.json()
```
---
## Response
```json 200 - Success
{
"code": 200,
"message": "Organization activated successfully",
"data": {
"wallet": {
"walletId": "49a2fe3a-a9df-48dc-9da3-e9dff8eb4968",
"balance": "0.00",
"currency": "EUR",
"id": "49a2fe3a-a9df-48dc-9da3-e9dff8eb4968",
"status": "ACTIVE"
},
"iban": "LT963500070344952515",
"activation": {
"message": "Organization activated successfully",
"status": "ACTIVE",
"activatedAt": "2026-01-13T10:04:12.830711352",
"warnings": [
"No employees found - consider adding employees with required roles"
]
}
}
}
```
```json 400 - Missing Prerequisites
{
"code": 400,
"message": "Organization verification not completed"
}
```
```json 400 - Missing Consents
{
"code": 400,
"message": "Required consents not accepted. Please accept Terms, Privacy, and Data Processing consents."
}
```
---
## Response Fields
HTTP status code
Human-readable status message
Activation result data
Created wallet information
Unique wallet identifier
Initial balance (formatted)
Wallet currency (typically EUR)
Wallet status: `ACTIVE`
Generated IBAN for the organization
Example: `LT963500070344952515`
Activation details
Activation status: `ACTIVE`
ISO 8601 timestamp of activation
Activation message
Array of warning messages (if any)
---
## Common Activation Warnings
The API may return warnings in the activation response. These warnings do not prevent activation but indicate configuration issues that should be addressed:
| Warning | Meaning | Action Required |
|---------|---------|----------------|
| `No employees found - consider adding employees with required roles` | Organization has no employees | Add employees for production use |
| `Missing ADMIN_USER role employee` | No employee with ADMIN_USER role | Add employee with ADMIN_USER role immediately |
| `No directors found` | Organization has no directors | Add at least one director |
| `Shareholder ownership does not sum to 100%` | Incomplete ownership structure | Review shareholder percentages |
**Production Readiness**
While warnings do not prevent activation, organizations should address all warnings before production use to ensure proper governance and compliance.
---
## Organization vs Individual Activation
Key differences between organization and individual activation:
| Aspect | Individual | Organization |
|--------|-----------|--------------|
| Request Body | `code`, `userId` | `activationReason`, `additionalInfo` |
| Verification Method | Email verification code | Admin-initiated after KYB |
| Response Warnings | No warnings | May include structural warnings |
| Required Headers | Standard auth | `X-User-ID`, `X-User-Roles` required |
| Prerequisites | KYC, Consents | KYB, Consents, Team Structure |
---
## Post-Activation Operations
After successful activation, the organization can:
1. **Check Balance**
```
GET /api/v2.1/fintrans/{walletId}/balance
```
2. **Add Beneficiaries**
```
POST /api/v2.1/fintrans/{walletId}/beneficiaries
```
3. **Prepare Transactions**
```
POST /api/v2.1/fintrans/{walletId}/types/topup/prepare
POST /api/v2.1/transfers/{walletId}/prepare
```
4. **Execute Transactions**
```
POST /api/v2.1/fintrans/{walletId}/types/topup/execute
```
See [Financial Operations](/baas/api/reference/financial-operations) for complete transaction workflows.
---
## Troubleshooting
### Verification Not Completed
**Error:**
```json
{
"code": 400,
"message": "Organization verification not completed"
}
```
**Solution:** Ensure KYB verification is completed and approved before activation.
### Missing Consents
**Error:**
```json
{
"code": 400,
"message": "Required consents not accepted"
}
```
**Solution:** Accept all three required consents:
- Terms and Conditions: `POST /consents/terms`
- Privacy Policy: `POST /consents/privacy`
- Data Processing: `POST /consents/data-processing`
### Missing ADMIN_USER Role
**Error:**
```json
{
"code": 400,
"message": "Organization must have at least one employee with ADMIN_USER role"
}
```
**Solution:** Add an employee with `ADMIN_USER` role before activation.
---
## What Happens During Activation
When activation is successful, the system performs these **6 automatic actions**:
| Step | Action | Details |
|------|--------|---------|
| 1 | **Status Update** | Organization status changes from `PENDING_ACTIVATION` → `ACTIVE` |
| 2 | **Wallet Activation** | Default EUR wallet created and activated |
| 3 | **IBAN/BIC Assignment** | Unique IBAN and BIC assigned to organization account |
| 4 | **Category Limits Applied** | Transaction limits based on categorization (daily, monthly, per-txn) |
| 5 | **Features Enabled** | Category features activated (transfers, payments, topups) |
| 6 | **Audit Trail** | Complete activation log created with timestamps and user info |
---
## What Happens After Activation
Once activated, the organization can:
✅ **Financial Operations:**
- Check wallet balance
- Add beneficiaries
- Create payment consents
- Execute transfers (SEPA, SWIFT)
- Top up wallet
✅ **Account Management:**
- Add more employees/directors
- Update organization details
- Upload additional documents
---
## Wallet Information
After activation, the organization receives a **default EUR wallet**:
| Attribute | Value | Description |
|-----------|-------|-------------|
| **Currency** | EUR | Default currency |
| **Status** | ACTIVE | Ready for transactions |
| **Balance** | 0.00 | Initial balance |
| **IBAN** | DE89370400440532013000 | Unique account number |
| **BIC** | COBADEFFXXX | Bank identifier code |
| **Account Type** | BUSINESS | Business account |
---
## API Schema Reference
For the complete OpenAPI schema specification, see the [API Schema Mapping](../../../../doc/mint/API_SCHEMA_MAPPING#organization-activation) document.
---
## Related Endpoints
Complete HTTP headers reference
Register new organizations
Manage directors, shareholders, employees
Complete KYB verification
Accept required consents
Post-activation financial operations
---
## Changelog
| Version | Date | Changes |
|---------|------|---------|
| v1.0 | 2026-01-13 | Comprehensive organization activation documentation |