Overview
The Account Activation endpoint completes the customer onboarding process by activating the account, generating an IBAN, and creating the associated wallet. This is typically done after verification processes are complete and required consents have been accepted.Path Parameters
The unique identifier of the customer to activate
Headers
Bearer token for authentication (admin privileges required)
Tenant identifier for multi-tenant operations
Must be
application/json
Request Body
Activation code (can be system-generated or provided by admin)
The user ID associated with the customer
Response
The generated IBAN for the customer account
The internal account number
Account activation status
Timestamp of activation
Example Request
Copy
Ask AI
curl --request POST \
--url https://api.finhub.cloud/api/v2.1/customer/individual/cust_123456789/activation \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'X-Tenant-ID: fh_api_finsei_ltd_7f957f77' \
--header 'Content-Type: application/json' \
--data '{
"code": "ACTIVATION_CODE_MED_12345",
"userId": "user_987654321"
}'
```text`n## Example Response
```json
{
"data": {
"iban": "LT123456789012345678",
"accountNumber": "ACC123456789",
"wallet": {
"walletId": "wal_abc123def456",
"id": "wal_abc123def456",
"currency": "EUR",
"balance": "0.00",
"status": "ACTIVE"
},
"status": "ACTIVATED",
"activatedAt": "2025-01-23T11:00:00.000Z"
}
}
```text`n## Activation Requirements
Before activation, ensure the following steps are completed:
1. **Customer Registration** - Account created successfully
2. **Verification Process** - Based on risk level:
- Medium Risk: Identity and document verification
- High Risk: Enhanced due diligence completed
3. **Consent Acceptance** - Required consents processed:
- Terms and Conditions
- Privacy Policy
- Data Processing Consent
## Activation Codes
Activation codes can be:
- **System-generated**: Auto-generated based on customer type and risk level
- **Admin-provided**: Custom codes for specific scenarios
- **Pattern-based**: Following naming conventions like `ACTIVATION_CODE_{RISK}_{ID}`
Examples:
- `ACTIVATION_CODE_MED_12345` - Medium risk customer
- `ACTIVATION_CODE_HIGH_67890` - High risk customer
- `ACTIVATION_CODE_LOW_11111` - Low risk customer
## Post-Activation Actions
After successful activation:
1. **Create Customer Session** - Enable customer login
2. **Add Beneficiaries** - Set up payment recipients
3. **Fund Wallet** - Add initial balance if needed
4. **Set Transaction Limits** - Based on categorization
## Wallet Features
The created wallet includes:
- **Multi-currency support** (initially EUR)
- **Real-time balance tracking**
- **Transaction history**
- **Configurable limits based on risk profile**
### Balance Model
```json
{
"balances": {
"available": "0.00", // Funds immediately usable
"current": "0.00", // Book balance
"locked": "0.00" // Reserved for pending operations
}
}
```text`n## Error Handling
Common activation errors:
| Error Code | Description | Resolution |
|------------|-------------|------------|
| 400 | Invalid activation code | Verify code format and validity |
| 403 | Insufficient verification | Complete required verification steps |
| 404 | Customer not found | Check customer ID |
| 409 | Already activated | Account is already active |
## PowerShell Script Example
```powershell
# Account activation after verification and consent acceptance
$activationUrl = "$baseUrl/api/v2.1/customer/individual/$customerId/activation"
$activationRequest = @{
code = "ACTIVATION_CODE_$(Get-Date -Format 'yyyyMMddHHmmss')"
userId = $userId
}
$activationBody = $activationRequest | ConvertTo-Json
try {
$activationResponse = Invoke-RestMethod -Uri $activationUrl -Method Post -Headers $headers -Body $activationBody
Write-Host "Account activated successfully!" -ForegroundColor Green
# Extract IBAN from multiple possible locations
if ($activationResponse.iban) {
$accountIban = $activationResponse.iban
Write-Host " IBAN: $accountIban" -ForegroundColor Cyan
}
elseif ($activationResponse.data -and $activationResponse.data.iban) {
$accountIban = $activationResponse.data.iban
Write-Host " IBAN: $accountIban" -ForegroundColor Cyan
}
# Extract wallet information
$wallet = $null
if ($activationResponse.data -and $activationResponse.data.wallet) {
$wallet = $activationResponse.data.wallet
}
elseif ($activationResponse.wallet) {
$wallet = $activationResponse.wallet
}
if ($wallet) {
if ($wallet.walletId) {
$walletId = $wallet.walletId
Write-Host " Wallet ID: $walletId" -ForegroundColor Cyan
}
elseif ($wallet.id) {
$walletId = $wallet.id
Write-Host " Wallet ID: $walletId" -ForegroundColor Cyan
}
if ($wallet.currency) {
Write-Host " Currency: $($wallet.currency)" -ForegroundColor White
}
if ($wallet.balance) {
Write-Host " Balance: $($wallet.balance)" -ForegroundColor White
}
# Save customer session data
$customerData = @{
customerId = $customerId
userId = $userId
walletId = $walletId
iban = $accountIban
activatedAt = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
}
# Optionally save to file for future use
$customerDataFile = "./customer_data_$(Get-Date -Format 'yyyyMMddHHmmss').json"
$customerData | ConvertTo-Json | Set-Content -Path $customerDataFile
Write-Host " Customer data saved to: $customerDataFile" -ForegroundColor Gray
}
}
catch {
Write-Host "Activation failed: $($_.Exception.Message)" -ForegroundColor Red
# Check if it's an already activated error
if ($_.Exception.Message -match "already activated") {
Write-Host " Account is already active" -ForegroundColor Yellow
}
}
```text`n## Related Endpoints
- [Register Individual Customer](/latest/api-reference/v2.1/customer/individual-register) - Initial registration
- [Create Verification Request](/latest/api-reference/v2.1/verification/create-verification) - Start verification
- [Accept Consents](/latest/api-reference/v2.1/consent/individual-consents) - Process consents
- [Get Wallet Details](/latest/api-reference/v2.1/wallet/get-wallet) - View wallet information