TrieOH

Overview

API reference and developer guides for the TrieOH platform services.

TrieOH is a multi-service platform: four Go backends, each with its own OpenAPI 3.1 contract, all sharing one identity and tenant model.

Every service's reference below is generated from the OpenAPI spec the service itself serves (/docs/openapi.yml) — the docs always match the deployed contract.

Services

ServiceLocalWhat it doesGuide
IdentityXhttp://localhost:8080Identity & tenants — actors, projects, organizations, JWTs, API keys, OAuth, profilesIdentityX
Univentshttp://localhost:8081Events, editions, ticketing, products, programs, badges & certifications, storeUnivents
Payssagehttp://localhost:8082Payments — wallets, sellers, intents, provider OAuth, webhooks, test modePayssage
Informdhttp://localhost:8083Multi-tenant forms — namespaces, forms, steps, fields, responsesInformd

In production the services are reachable through the gateway at https://api.trieoh.com/{service}.

Authentication

Every backend authenticates with credentials issued by IdentityX:

SchemeHeaderUse for
Bearer JWTAuthorization: Bearer <token>End-user calls (issued by /auth/login or OAuth)
API keyX-API-Key: <key>Server-to-server calls (created in the service's IdentityX project)

Response envelope

Every JSON response (except IdentityX's raw JWKS) is the shared fun.Response envelope:

{
  "code": 200,
  "message": "",
  "data": {},
  "error": null,
  "pagination": null,
  "timestamp": "2026-01-01T12:00:00Z",
  "module": "IdentityX"
}
  • Success: the payload lives in data.
  • Failure: error is an AppError{ "code", "message", "fields", "meta" }, and data is absent. The code sentinel maps to the HTTP status (e.g. UNAUTHORIZED → 401).

Always read data, not the envelope root.

On this page