Tenant Use Cases
Create a Tenant
All Eclipse APIs are called on behalf of a tenant — either by the tenant's own admin users or by customers belonging to the tenant. The first step is to be onboarded as a tenant.
Tenant creation is performed by EFT Corporation staff. To request a sandbox tenant, contact your account manager. You will receive:
- A tenant ID
- An initial administrator username and password
- Default system wallets and configuration for your scenario
Set Up Admin Users
Admin users can access the Eclipse API and Admin Portal. Create additional admin users for your employees or for machine-to-machine API access.
Prerequisites:
- A valid bearer token (tenant system identity)
Create an Admin User
POST /eclipse-conductor/rest/v1/tenants/{tenantId}/admin-users
Authorization: Bearer {jwt}
Content-Type: application/json
{
"firstName": "Aisha",
"lastName": "Petersen",
"email": "[email protected]",
"phone1": "27829876543",
"identity": "aisha.petersen",
"password": "SecureP@ssw0rd123",
"positions": ["LEVEL_01"]
}Response (201 Created):
{
"adminUserId": 10481,
"tenantId": 42,
"firstName": "Aisha",
"lastName": "Petersen",
"email": "[email protected]",
"phone1": "27829876543",
"identity": "aisha.petersen",
"status": "ACTIVE",
"positions": ["LEVEL_01"],
"created": "2026-05-19T09:00:00.000Z"
}Passwords: Pass a clear-text password and Eclipse will hash it with bcrypt (cost factor 12), or pass a pre-hashed bcrypt value directly. Example of a pre-hashed value:
$2a$10$tMR2xhUpO0kEpJT9E7p2ZuiJaqxFVmpCJjYJG7H7ttstFq2ddjXfq
PKI auth: For service accounts that require mutual TLS, omit
passwordand providebase64EncodedPublicKeywith the RSA 4096 public key. See Authentication for details.
List Admin Users
GET /eclipse-conductor/rest/v1/tenants/{tenantId}/admin-users
Authorization: Bearer {jwt}Update an Admin User
PUT /eclipse-conductor/rest/v1/tenants/{tenantId}/admin-users/{adminUserId}
Authorization: Bearer {jwt}
Content-Type: application/json
{
"adminUserId": 10481,
"email": "[email protected]",
"positions": ["LEVEL_01", "LEVEL_02"]
}Delete an Admin User
DELETE /eclipse-conductor/rest/v1/tenants/{tenantId}/admin-users/{adminUserId}
Authorization: Bearer {jwt}You can also manage admin users in the Eclipse Admin Portal. See Admin Users in the Admin Portal guide.
Create a Wallet Type
The wallet type is a template that controls the behaviour of every wallet created from it: currency, limits, KYC requirements, card settings, and more. You must have at least one wallet type before you can create wallets.
Prerequisites:
- A valid bearer token (tenant system identity)
Create a Basic Closed-Loop Digital Wallet Type
For most sandbox integrations, a closed-loop digital wallet with ZAR currency is the starting point.
POST /eclipse-conductor/rest/v1/tenants/{tenantId}/wallet-types
Authorization: Bearer {jwt}
Content-Type: application/json
{
"name": "Digital Wallet ZAR",
"mode": "CLOSED_LOOP_DIGITAL",
"configuration": [
{ "att": "Currency", "val": "ZAR" }
]
}Response (201 Created):
{
"walletTypeId": 7825,
"name": "Digital Wallet ZAR",
"mode": "CLOSED_LOOP_DIGITAL",
"configuration": [
{ "att": "Currency", "val": "ZAR" }
],
"version": 1
}The walletTypeId is the identifier used when creating wallets.
Wallet Type Modes
| Mode | Description |
|---|---|
CLOSED_LOOP_DIGITAL | Standard digital wallet; transfers only within Eclipse |
DEBIT_RECEIVEONLY_CARD | Linked to a debit card on card rails (receive-only) |
PREPAID_RECEIVEONLY_CARD | Linked to a prepaid card on card rails (receive-only) |
CRYPTO | Backed by a crypto exchange integration |
Common Configuration Properties
| Property | Description | Example |
|---|---|---|
Currency | ISO 4217 currency code | ZAR, USD, KES |
minBalance | Minimum allowed balance | 0 |
maxBalance | Maximum balance cap | 50000 |
dailyDebitLimit | Maximum daily debit amount | 10000 |
alwaysCreateCard | Auto-issue a virtual card on wallet creation | true |
kycLevel | Minimum KYC level required to provision | BASIC |
For the full list of wallet type configuration properties, see Wallet Type Configuration.
Update a Wallet Type
PUT /eclipse-conductor/rest/v1/tenants/{tenantId}/wallet-types/{walletTypeId}
Authorization: Bearer {jwt}
Content-Type: application/json
{
"walletTypeId": 7825,
"name": "Digital Wallet ZAR",
"mode": "CLOSED_LOOP_DIGITAL",
"configuration": [
{ "att": "Currency", "val": "ZAR" },
{ "att": "dailyDebitLimit", "val": "20000" }
],
"version": 1
}The
versionfield is required on updates. It prevents concurrent modifications from overwriting each other. The response always returns the current version — use that value on your next update.
List Wallet Types
GET /eclipse-conductor/rest/v1/tenants/{tenantId}/wallet-types
Authorization: Bearer {jwt}Next Steps
With a tenant, at least one admin user, and at least one wallet type in place, you are ready to:
