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 password and provide base64EncodedPublicKey with 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

ModeDescription
CLOSED_LOOP_DIGITALStandard digital wallet; transfers only within Eclipse
DEBIT_RECEIVEONLY_CARDLinked to a debit card on card rails (receive-only)
PREPAID_RECEIVEONLY_CARDLinked to a prepaid card on card rails (receive-only)
CRYPTOBacked by a crypto exchange integration

Common Configuration Properties

PropertyDescriptionExample
CurrencyISO 4217 currency codeZAR, USD, KES
minBalanceMinimum allowed balance0
maxBalanceMaximum balance cap50000
dailyDebitLimitMaximum daily debit amount10000
alwaysCreateCardAuto-issue a virtual card on wallet creationtrue
kycLevelMinimum KYC level required to provisionBASIC

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 version field 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:

  1. Register customers and run KYC
  2. Create wallets for customers
  3. Configure top-up and withdrawal methods