Reference
Enterprise Management
Enterprise onlyProvision and deprovision businesses under an enterprise account, inspect API usage, and manage the shared wallet.
The enterprise management module is for bank partners and multi-tenant operators running many businesses under a single Finora Business enterprise account. It covers provisioning (creating a business + owner in one call), deprovisioning, usage reporting, and wallet management.
Authorization
Unlike business-scoped routes, enterprise endpoints do not verify
businessId access. Instead, your API key's user must be listed in the
enterprise's adminUserIds. Non-admins receive 403 FORBIDDEN.
List enterprise businesses
/v1/enterprise/businessesReturns the businesses linked to your enterprise, newest first.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
limit | integer | no | Default 50, max 100. |
offset | integer | no | Skip N results. |
status | string | no | active, expired, or suspended. |
search | string | no | Substring match on business name. |
Response — 200
{
"success": true,
"data": {
"businesses": [
{
"id": "biz_001",
"name": "Acme Suya Spot",
"email": "ops@acme.ng",
"industry": "Food & Beverage",
"subscriptionTier": "enterprise",
"enterpriseSubscriptionStatus": "active",
"enterpriseSubscriptionExpiresAt": "2026-12-31T23:59:59.000Z",
"setupComplete": true,
"createdAt": "2026-01-15T09:00:00.000Z"
}
],
"pagination": { "total": 145, "limit": 50, "offset": 0, "hasMore": true }
}
}Provision a new business
/v1/enterprise/businessesCreates a Firebase Auth user (or finds one by email), creates the business document with COA seeded, and links it to your enterprise.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
ownerEmail | string | yes | Creates a Firebase Auth user if none exists. |
ownerFirstName | string | yes | |
ownerLastName | string | yes | |
ownerPhone | string | no | |
business | object | yes | Business details — see below. |
business.name | string | yes | |
business.email | string | yes | |
business.industry | string | yes | |
coaTemplate | string | no | regular (default) or school. |
subscriptionType | string | no | monthly (default) or annual. |
Response — 201
{
"success": true,
"data": {
"businessId": "biz_new123",
"userId": "user_new456",
"name": "Acme Retail Ltd",
"subscriptionExpiresAt": "2026-05-17T23:59:59.000Z",
"coaTemplate": "regular",
"setupComplete": true
}
}Provisioned businesses skip the setup wizard (setupComplete: true) and
come pre-seeded with the Nigerian chart of accounts.
Deprovision a business
/v1/enterprise/businesses/{businessId}Unlinks the business from the enterprise. Does NOT delete data — the owner retains access independently.
After deprovisioning, the business's subscriptionTier drops to free and
it is no longer billed against your enterprise wallet. Historical data
stays intact for the business owner.
Usage report
/v1/enterprise/usageAggregate API usage across all businesses in the enterprise for a date range.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
startDate | string (ISO) | no | Defaults to start of current month. |
endDate | string (ISO) | no | Defaults to today. |
Response — 200
Returns totalBusinesses, activeBusinesses, totalAPIRequests, a
requestsByEndpoint breakdown, and a perBusiness array with per-tenant
metrics. See the source file for the full shape.
Wallet balance
/v1/enterprise/walletReturns the enterprise wallet balance, lifetime topups and spend, and next billing date.
Response — 200
{
"success": true,
"data": {
"balanceKobo": 5000000000,
"balance": 50000000.00,
"totalTopupsKobo": 10000000000,
"totalSpentKobo": 5000000000,
"businessCount": 145,
"nextBillingDate": "2026-05-01T00:00:00.000Z"
}
}Top up the wallet
/v1/enterprise/wallet/topupRecords a wallet topup. Settlement happens out-of-band; the reference is for your reconciliation.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
amount | number | yes | Amount in naira. |
paymentMethod | string | yes | e.g. bank_transfer. |
reference | string | yes | Your unique reference for this topup. |
403 response for retail keys
Calling any /v1/enterprise/* endpoint with a retail API key returns:
{
"success": false,
"error": {
"code": "ENTERPRISE_ONLY",
"message": "This endpoint requires an enterprise subscription. Contact sales at https://finorabusiness.com/contact",
"requestId": "req_..."
}
}Ready to go enterprise?
Enterprise provisioning, shared wallets, and multi-tenant analytics are part of the enterprise tier. Contact sales to discuss pricing and partnership terms.
Related endpoints
- Business Intelligence — health scores across your portfolio
- Account Officers — officer portal for relationship managers
- Branch & Regional Analytics — branch/regional/national dashboards
Reference index
Back to all modules