Organisation Use Cases

Creating organisations, running KYB, and managing organisation wallets and members.

Organisations let you model merchants for payment acceptance and group customers when more complex permissions are needed. Examples include onboarding a business as a merchant, managing shared wallets where multiple users transact, or linking a minor customer to a guardian for KYC compliance.


Register a New Organisation

Prerequisites:

  • Valid bearer token
  • KYB documents ready to upload (company registration certificate, ID documents of directors)

Step 1 — Create the Organisation

POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "name": "Dlamini Trading (Pty) Ltd",
  "tradingName": "Dlamini Traders",
  "email": "[email protected]",
  "phone1": "27115551234",
  "companyNumber": "2021123456",
  "taxNumber": "9876543210",
  "industrialSector": "Retail",
  "industrialClassification": "General Merchandise",
  "categoryCode": 5999,
  "type": "BUSINESS",
  "externalUniqueId": "org-dlamini-001"
}

Response (201 Created):

{
  "organisationId": 88142,
  "tenantId": 42,
  "name": "Dlamini Trading (Pty) Ltd",
  "tradingName": "Dlamini Traders",
  "email": "[email protected]",
  "phone1": "27115551234",
  "companyNumber": "2021123456",
  "taxNumber": "9876543210",
  "status": "ACTIVE",
  "externalUniqueId": "org-dlamini-001",
  "created": "2026-05-19T10:00:00.000Z"
}

Store the organisationId — it is required for all subsequent calls.

Step 2 — Add Address Details

POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/addresses
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "line1": "45 Commerce Street",
  "line2": "Newtown",
  "city": "Johannesburg",
  "state": "Gauteng",
  "postalCode": "2001",
  "country": "ZAF",
  "addressType": "REGISTERED"
}

Response (201 Created): Returns the address object with a system-assigned addressId.

Step 3 — Upload KYB Documents

Upload company registration and director identity documents as base64-encoded content.

POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/documents
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "documentType": "COMPANY_REGISTRATION",
  "fileName": "cipc_cert.pdf",
  "contentType": "application/pdf",
  "content": "base64EncodedPdfHere..."
}
POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/documents
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "documentType": "NATIONAL_IDENTITY",
  "fileName": "director_id.jpg",
  "contentType": "image/jpeg",
  "content": "base64EncodedImageHere..."
}

Step 4 — Add Customer Positions to the Organisation

Customers become members of an organisation by being assigned a position. Different positions can have different permissions (e.g. OWNER, DIRECTOR, MEMBER).

Prerequisite: The customer must already exist — see Customer Use Cases.

POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/positions
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "customerId": 4829104,
  "position": "OWNER"
}

Response (201 Created):

{
  "positionId": 77021,
  "organisationId": 88142,
  "customerId": 4829104,
  "position": "OWNER",
  "status": "ACTIVE",
  "created": "2026-05-19T10:05:00.000Z"
}

Step 5 — Run KYB (Ratify)

Once the profile, address, and documents are uploaded, trigger the KYB pipeline.

POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/ratify
Authorization: Bearer {jwt}
Content-Type: application/json

{}

Response (200 OK):

{
  "ratifyResultId": 98280,
  "organisationId": 88142,
  "status": "COMPLETED",
  "kycStatus": "PASSED",
  "riskScore": 12,
  "results": [
    { "processor": "OcrCheck", "status": "PASSED" },
    { "processor": "SdnCheck", "status": "PASSED" },
    { "processor": "RelyComplyCheck", "status": "PASSED" }
  ],
  "created": "2026-05-19T10:10:00.000Z"
}

See Ratify Use Cases for full details on the KYB processor pipeline.

Step 6 — Create an Organisation Wallet

POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/wallets
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "walletTypeId": 7825,
  "status": "ACTIVE",
  "name": "Dlamini Trading Merchant Wallet",
  "currency": "ZAR",
  "externalUniqueId": "wallet-dlamini-001"
}

Response (201 Created):

{
  "walletId": 2081002,
  "organisationId": 88142,
  "tenantId": 42,
  "walletTypeId": 7825,
  "name": "Dlamini Trading Merchant Wallet",
  "currency": "ZAR",
  "status": "ACTIVE",
  "currentBalance": 0,
  "availableBalance": 0,
  "walletFriendlyId": "M741XPQR",
  "externalUniqueId": "wallet-dlamini-001",
  "created": "2026-05-19T10:15:00.000Z"
}

To link a specific customer (cardholder) to the wallet at creation time, include customerId in the request body. That customer must have a position in the organisation.


Register a Customer Under an Organisation

Customers within an organisation follow the same KYC onboarding flow as standalone customers, then are added to the organisation via a position assignment.

  1. Complete the standard customer registration (Steps 1–4 of Customer Use Cases)
  2. Add the customer as a position holder in the organisation (Step 4 above)
  3. Create a wallet under the organisation linked to the customer:
POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/wallets
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "walletTypeId": 7825,
  "status": "ACTIVE",
  "name": "Member Wallet",
  "currency": "ZAR",
  "customerId": 4829104,
  "externalUniqueId": "wallet-member-sipho-001"
}

View Organisation Wallets

GET /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/wallets
Authorization: Bearer {jwt}

Returns all wallets belonging to the organisation.


Update Organisation Information

PUT /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "organisationId": 88142,
  "email": "[email protected]",
  "phone1": "27115559999",
  "version": 1
}

Update Organisation KYB

If KYB fails or documents need to be refreshed, update the relevant profile fields and documents, then re-trigger ratify.

Step 1 — Update documents

PUT /eclipse-conductor/rest/v1/tenants/{tenantId}/documents/{documentId}
Authorization: Bearer {jwt}
Content-Type: application/json

{
  "documentId": 20441,
  "documentType": "COMPANY_REGISTRATION",
  "fileName": "cipc_cert_updated.pdf",
  "contentType": "application/pdf",
  "content": "base64EncodedUpdatedPdfHere..."
}

Step 2 — Re-run KYB

POST /eclipse-conductor/rest/v1/tenants/{tenantId}/organisations/{organisationId}/ratify
Authorization: Bearer {jwt}
Content-Type: application/json

{}

Permissions Required

PermissionDescription
Organisation.CREATE.AllowedCreate organisations
Organisation.READ.AllowedView organisations
Organisation.UPDATE.AllowedUpdate organisation profile
OrganisationPosition.CREATE.AllowedAdd members to an organisation
Ratify.CREATE.AllowedRun KYB
Wallet.CREATE.AllowedCreate organisation wallets

Did this page help you?