Space — The Organizational Boudary

A Space is the foundational unit of isolation in the Monime ecosystem. It represents an organizational entity — a business, a company, a merchant, a platform, government institution or NGO — and everything associated with its payment operations and financial identity.

Key Characteristics:

  • Isolation by Design: Every resource (payment, transfer, customer, financial account) is scoped to a single Space. No data leaks or overlaps across Spaces.
  • Namespace and Environment Boundaries: Each Space can have environments (like test and live) for safe development and deployment workflows.
  • Operational Identity: All configurations, policies, and memberships are defined within the scope of a Space.
  • Segregated Ledgers: Fund tracking, settlement, and balances are kept separate across Spaces. This is crucial for legal, financial, and operational clarity.
Think of a Space as the “tenant” in Monime’s multi-tenant architecture.

Monimeer — The Personal Identity

A Monimeer is a user account — a developer, operator, or finance personnel. Unlike Spaces, Monimeers are personal and global across Monime.

Key Characteristics:

  • Cross-Space Access: A Monimeer can be a member of multiple Spaces with different roles.
  • Personal Tokens: Monimeer access via APIs is authenticated with Personal Access Tokens (PATs), which carry permissions.
  • Role-Scoped Authorization: Monime implements a dual-layer permission system that controls what actions a Monimeer can perform within a Space:
    1. Dashboard Access: What a Monimeer can do via the dashboard is determined solely by the roles (permission sets) assigned to the Monimeer in that Space
    2. API Access: What a Monimeer can do via the API is determined by the intersection of:
      • The Monimeer’s roles (permission sets) in the Space, (dashboard access)
      • and, the specific roles (permission sets) assigned to the access token they create.
    This means API access tokens can never exceed the permissions of their creator but can be scoped down for security. For example, if a Monimeer has full transfer management rights in the dashboard, they can create an API token with read-only transfer access, but cannot create a token with webhook management if they lack that dashboard role.
This model separates who the user is (Monimeer) from what organization they are operating in (Space) — enabling powerful collaboration scenarios.

Financial Account — The Value Container

A Financial Account in Monime is an internal ledger abstraction representing where money is held, routed, or reconciled. It is the heart of Monime’s Money Management for a Space. Every financial operation in a Space, be it payment, disbursement, internal transfer e.t.c, is scoped to a financial account.

Key Characteristics:

  • Currency Bounded: Holds money in a specific currency
  • Space Scoped: Operates within a Space’s secure boundaries
  • Real-time: Provides real-time point-in-time and historical view of its balance.
  • Unit Financial Transparency: Tracks every fund movement with complete transparency
  • Deeply Programmatic: Supports programmatic control though APIs.
Financial accounts abstract away the complexities of real bank accounts while remaining tightly modeled to real-world money flow.

Ownership Graph — Resource Genealogy

This provides a complete genealogy for every created financial resource, creating an immutable chain of relationships that traces back to the originating object. An Ownership Graph is a hierarchical data structure that captures the complete lineage of any object in Monime. It answers critical questions like:
  • What triggered this transaction?
  • Who initiated the original action?
  • What was the business context?
  • How did we get here?
Basic Structure
{
  "ownershipGraph": {
    "owner": {
      "id": "pmt-k6Em1Aap25VZ8oWg7ajhxHX3JqF",
      "type": "payment",
      "metadata": {
        "channel": "momo",
        "provider": "m17"
      },
      "owner": {
        "id": "sps-k6Em1aAap254VXg6fhxk9HX3JqF",
        "type": "checkout_session",
        "metadata": {
          "orderId": "ord-3n4o5p6q7r8s"
        },
        "owner": {
          "id": "arq-k6Em12r5VZ8oW9r9Xh7xsH3J4qF",
          "type": "api_request",
          "metadata": {
            "endpoint": "/v1/checkout-sessions",
            "subjectId": "acc-k6Em15VsZ8go5W9lX2h7dxsJ4qF",
            "ipAddress": "192.168.1.100"
          }
        }
      }
    }
  }
}
Payment Code
└── Payment (when someone pays)
    └── Financial Transaction (when payment is process)
        └── Fee Transaction (when you takes your service fee)

Next steps