Files
proxmox/docs/04-configuration/mifos-omnl-central-bank/OMNL_ENTITY_MASTER_DATA.md
defiQUG 95522d3bca
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
feat(omnl): HYBX-BATCH-001 package, rail scripts, regulatory docs, CI
- Add OMNL/CBK Indonesia submission and audit binder docs, manifests, attestations
- Add scripts/omnl transaction-package pipeline, LEI/PvP helpers, jq/lib fixtures
- Update entity master data, MASTER_INDEX, TODOS, dbis-rail docs and rulebook
- Add proof_package/regulatory skeleton and transaction package zip + snapshot JSON
- validate-omnl-rail workflow, forge-verification-proxy tweak, .gitignore hygiene
- Bump smom-dbis-138 (cronos verify docs/scripts) and explorer-monorepo (SPA + env report)

Made-with: Cursor
2026-03-24 18:11:36 -07:00

7.3 KiB
Raw Blame History

OMNL Entity Master Data — Names, LEI, Address, Contacts

Purpose: Single source of truth for the 19 operating / external-facing entities. Used to populate either Offices (Organization / Manage Offices) or Clients (names, LEI, address, contacts).

Data file: OMNL_ENTITY_MASTER_DATA.json

Using entities as Offices (recommended): To model the 15 as offices instead of clients, see OMNL_OFFICES_POPULATE.md. Run omnl-offices-populate-15.sh then omnl-clients-remove-15.sh.


Entity list (reference)

# Account No. Entity name
1 000000001 OMNL Head Office (DBIS) Central Bank
2 000000002 Shamrayan Enterprises
3 000000003 HYBX
4 000000004 TAJ Private Single Family Office
5 000000005 Aseret Mortgage Bank
6 000000006 Mann Li Family Offices
7 000000007 Sovereign Order of Malta OSJ
8 000000008 Alltra Mainnet
9 000000009 FIDIS
10 000000010 Alpha Omega Holdings
11 000000011 SGI Capital
12 000000012 Titan Financial
13 000000013 Roy Walker PLLC
14 000000014 SGI Partners LLC
15 000000015 Tsunami Holdings AG
16 000000016 Anakatech
17 000000017 Anema Camden Walker Global
18 000000018 NEPAL RASTRA BANK (Central Bank)
19 000000019 SANIMA BANK LIMITED

Fields to complete per entity

1. Entity name

  • Already set in the JSON.
  • Pushed to Fineract as client firstname (full name); lastname empty.
  • Format: 20-character alphanumeric (e.g. 5493001KJTIIGC8Y1R12).
  • OMNL Head Office (entity 1): Canonical LEI 98450070C57395F6B906 — public summary at lei.info. Roster and filing notes: OMNL_BANKING_DIRECTORS_AND_LEI.md.
  • In Fineract: Stored as a Client Identifier with document type LEI (or “Legal Entity Identifier”). The tenant must have a document/identifier type named LEI (or equivalent); the apply script uses the first matching type from GET /clients/{clientId}/identifiers/template (allowedDocumentTypes).
  • In JSON: "lei": "<20-char LEI>". Leave "" if not yet assigned.

2b. LEI, EBICS, BIC, and other codes in Address2 / Address3 or memo fields

Many screens (and offices in particular) have no dedicated LEI, EBICS, BIC, or similar fields. You can still record them on the entity using free-text slots:

  • Client addresses (Fineract): Put labeled lines in addressLine2, addressLine3, and/or street / addressLine1 as appropriate (e.g. primary premises on line 1; identifiers on lines 23). The Client Addresses API accepts all of these fields.
  • Office / organization UI: Use any memo, description, additional information, or equivalent note field the tenant exposes, with the same labeling convention.
  • Suggested format (human- and audit-friendly): One token per line where possible, for example: LEI:98450070C57395F6B906, BIC:ABCDEFGH, EBICS:<bank-specific id>. Keep the canonical structured LEI in "lei" when you use this JSON as source of truth; mirror or supplement in address lines as needed for Fineract or regulator-facing exports.

3. Address

  • In Fineract: Stored via Client Addresses API: POST /client/{clientId}/addresses (and optionally PUT to update). Fields: street, addressLine1, addressLine2, addressLine3, city, stateProvinceId, countryId, postalCode, isActive. countryId and optionally stateProvinceId are Fineract reference IDs (from GET /codes or the UI).
  • In JSON: Under address: fill street, addressLine1, addressLine2, addressLine3, city, postalCode; set countryId (and stateProvinceId if applicable) when you have the Fineract code IDs. Use null or omit to skip address for that entity. Use addressLine2 / addressLine3 for LEI / BIC / EBICS (and similar) when those identifiers are not stored elsewhere on the record.

4. Contacts

  • In Fineract: Client-level mobile and email (e.g. mobileNo, emailAddress). May be updatable via PUT /clients/{clientId} if the server allows it; otherwise via UI or datatables.
  • In JSON: Under contact: "mobileNo": "+1234567890", "emailAddress": "entity@example.com". Leave "" if not yet known.

How to fill the JSON

  1. Open OMNL_ENTITY_MASTER_DATA.json.
  2. For each entity in entities:
    • LEI: Set lei to the 20-character LEI when assigned; otherwise leave "". If the live system only allows Address2/3 or a memo for identifiers, mirror LEI (and BIC, EBICS, etc.) there and document the same strings in address.addressLine2 / addressLine3 when you want the apply script to push them for clients.
    • Address: Fill address.street, addressLine1, addressLine2, addressLine3, city, postalCode. For countryId (and stateProvinceId) you need the Fineract code IDs from the tenant (Admin → Code values / address config, or GET /codes).
    • Contact: Fill contact.mobileNo and contact.emailAddress as appropriate; leave "" if unknown.
  3. Save the file. The apply script reads this file and updates Fineract (names, then LEI identifiers, addresses, then contact fields when supported).

Applying data to Fineract

From repo root, with omnl-fineract/.env (or root .env) set:

# Data file path (default: docs/04-configuration/mifos-omnl-central-bank/OMNL_ENTITY_MASTER_DATA.json)
ENTITY_DATA="docs/04-configuration/mifos-omnl-central-bank/OMNL_ENTITY_MASTER_DATA.json"

# Dry run: show what would be updated
DRY_RUN=1 bash scripts/omnl/omnl-entity-data-apply.sh

# Apply: names, then LEI (identifiers), addresses, contacts
bash scripts/omnl/omnl-entity-data-apply.sh

Complete all clients (115) in one go: If clients 915 do not exist yet, create them first, then apply entity data:

bash scripts/omnl/omnl-clients-create-9-15.sh
bash scripts/omnl/omnl-entity-data-apply.sh

See scripts/omnl/README.md for full script list.


Fineract API mapping summary

Master data Fineract API Notes
Entity name PUT /clients/{clientId} body firstname, lastname One-line display name in UI
LEI POST /clients/{clientId}/identifiers documentTypeId = LEI type from template; documentKey = LEI value
Address POST /client/{clientId}/addresses Requires countryId (and optionally stateProvinceId) from tenant codes; addressLine2 / addressLine3 may carry LEI, BIC, EBICS, etc.
LEI / BIC / EBICS (no dedicated field) Address lines or UI memo Same strings as in master JSON; offices often have no identifier API—use org memo or address-style fields in UI
Mobile / email PUT /clients/{clientId} body mobileNo, emailAddress If server accepts; else use UI

References