Skip to content
StraventaDocs

Read a tenant's product-module catalog (enabled flags)

Returns the FULL module catalog (`recon`, `pos`, `payments`, `disburse`, `kyc`, `fraud`, `aml`, `marketplace`) with an `enabled` flag synthesized per key from the `tenant_modules` table — a bare object, NOT the paginated list envelope. Caller must hold `platform.tenants.modules.read`. Cross-tenant read runs as superuser. tenant-separation P2 / T008 (AC-2.1). Module catalog widened in migration 0293.

GET
/v1/platform/tenants/{tenantId}/modules

Returns the FULL module catalog (recon, pos, payments, disburse, kyc, fraud, aml, marketplace) with an enabled flag synthesized per key from the tenant_modules table — a bare object, NOT the paginated list envelope. Caller must hold platform.tenants.modules.read. Cross-tenant read runs as superuser. tenant-separation P2 / T008 (AC-2.1). Module catalog widened in migration 0293.

Authorization

bearerAuth
AuthorizationBearer <token>

JWT Bearer access token. Clock skew tolerance is ±60 seconds.

In: header

Path Parameters

tenantId*string

Target tenant UUID (platform-admin cross-tenant operations).

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/platform/tenants/497f6eca-6276-4993-bfeb-53cbbbba6f08/modules"
{
  "modules": [
    {
      "key": "payments",
      "enabled": true,
      "enabled_at": "2026-01-15T08:00:00Z"
    },
    {
      "key": "recon",
      "enabled": true,
      "enabled_at": "2026-01-15T08:00:00Z"
    },
    {
      "key": "pos",
      "enabled": false
    },
    {
      "key": "disburse",
      "enabled": false
    },
    {
      "key": "kyc",
      "enabled": true,
      "enabled_at": "2026-03-01T09:00:00Z"
    },
    {
      "key": "fraud",
      "enabled": false
    },
    {
      "key": "aml",
      "enabled": false
    },
    {
      "key": "marketplace",
      "enabled": false
    }
  ]
}
{
  "error": "unauthenticated",
  "message": "missing or invalid bearer token",
  "request_id": "req_01abc123"
}
{
  "error": "permission_denied",
  "message": "caller does not hold the required permission",
  "request_id": "req_01abc124"
}
{
  "error": "not_found",
  "message": "the requested resource was not found",
  "request_id": "req_01abc125"
}

Was this page helpful?