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.
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 JWT Bearer access token. Clock skew tolerance is ±60 seconds.
In: header
Path Parameters
Target tenant UUID (platform-admin cross-tenant operations).
uuidResponse 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?