Skip to content
Docs
Reference

BackstageClient.organisations

BackstageClient.organisations in @ticketlayer/backstage.

@ticketlayer/backstage


@ticketlayer/backstage / BackstageClient / organisations

organisations: {
  get: (id: string, requestOptions?: RequestOptions) => Promise<{
     allowApiKeyLedgerRead: boolean;
     apiVersion: string;
     createdAt: string;
     id: string;
     logoUrl?: string;
     metadata?: {
      [key: string]: unknown;
     };
     name: string;
     primaryColor?: string;
     secondaryColor?: string;
     testMode: boolean;
     updatedAt: string;
  }>;
  graduate: (id: string, requestOptions?: RequestOptions) => Promise<{
     alreadyLive: boolean;
     liveKeys: {
        channelId: string;
        channelSlug: string;
        keyId: string;
        publishableKey: string;
     }[];
     organisation: {
        id: string;
        name: string;
        slug: string;
     };
     signupClaimsGraduated: number;
  }>;
  update: (id: string, request: {
     allowApiKeyLedgerRead?: boolean;
     apiVersion?: string;
     logoUrl?: string;
     metadata?: {
      [key: string]: unknown;
     };
     name?: string;
     primaryColor?: string;
     secondaryColor?: string;
     testMode?: boolean;
   }, requestOptions?: RequestOptions) => Promise<{
     allowApiKeyLedgerRead: boolean;
     apiVersion: string;
     createdAt: string;
     id: string;
     logoUrl?: string;
     metadata?: {
      [key: string]: unknown;
     };
     name: string;
     primaryColor?: string;
     secondaryColor?: string;
     testMode: boolean;
     updatedAt: string;
  }>;
};

Defined in: client.ts:2381

Organisations methods

get()#

get: (id: string, requestOptions?: RequestOptions) => Promise<{
  allowApiKeyLedgerRead: boolean;
  apiVersion: string;
  createdAt: string;
  id: string;
  logoUrl?: string;
  metadata?: {
   [key: string]: unknown;
  };
  name: string;
  primaryColor?: string;
  secondaryColor?: string;
  testMode: boolean;
  updatedAt: string;
}>;

Get organisation Get organisation details, including the colours and logo the staff consoles wear. Those are console chrome, not the brand a buyer sees: a buyer's brand is a Brand (GET /brands).

Parameters#

ParameterType
idstring
requestOptions?RequestOptions

Returns#

Promise<{ allowApiKeyLedgerRead: boolean; apiVersion: string; createdAt: string; id: string; logoUrl?: string; metadata?: { [key: string]: unknown; }; name: string; primaryColor?: string; secondaryColor?: string; testMode: boolean; updatedAt: string; }>

Operation Id#

getOrganisation

graduate()#

graduate: (id: string, requestOptions?: RequestOptions) => Promise<{
  alreadyLive: boolean;
  liveKeys: {
     channelId: string;
     channelSlug: string;
     keyId: string;
     publishableKey: string;
  }[];
  organisation: {
     id: string;
     name: string;
     slug: string;
  };
  signupClaimsGraduated: number;
}>;

Graduate the organisation from test mode to live Takes the organisation live: new orders, payments, passes and entitlements are real from this moment, a live publishable key is issued for every active customer-facing channel, and the self-service signup claim that created the organisation is marked graduated. NOTHING ALREADY CREATED CHANGES. A test order taken yesterday is still a test order, its tickets are still refused at a live door, and it still sits outside revenue and the ledger - what a row is was decided when the row was created. The keys the organisation already held are not revoked, so an integration in flight keeps working and can swap to the new key when it suits. One way and idempotent: there is no route back to test mode, and graduating an organisation that is already live succeeds without issuing a second set of keys. The organisation is the caller's own - another id answers 404. Requires organisation.update.

Parameters#

ParameterType
idstring
requestOptions?RequestOptions

Returns#

Promise<{ alreadyLive: boolean; liveKeys: { channelId: string; channelSlug: string; keyId: string; publishableKey: string; }[]; organisation: { id: string; name: string; slug: string; }; signupClaimsGraduated: number; }>

Operation Id#

graduateOrganisation

update()#

update: (id: string, request: {
  allowApiKeyLedgerRead?: boolean;
  apiVersion?: string;
  logoUrl?: string;
  metadata?: {
   [key: string]: unknown;
  };
  name?: string;
  primaryColor?: string;
  secondaryColor?: string;
  testMode?: boolean;
}, requestOptions?: RequestOptions) => Promise<{
  allowApiKeyLedgerRead: boolean;
  apiVersion: string;
  createdAt: string;
  id: string;
  logoUrl?: string;
  metadata?: {
   [key: string]: unknown;
  };
  name: string;
  primaryColor?: string;
  secondaryColor?: string;
  testMode: boolean;
  updatedAt: string;
}>;

Update organisation Update organisation details and the colours and logo the staff consoles wear (owner permission required). These do NOT reach a storefront, a confirmation email or a ticket: change a Brand (PATCH /brands/{id}) for that. allowApiKeyLedgerRead lets the organisation's API keys read its finance data; only a person may change it, and turning it off cuts off every key that holds ledger.read from its next request.

Parameters#

ParameterTypeDescription
idstring-
request{ allowApiKeyLedgerRead?: boolean; apiVersion?: string; logoUrl?: string; metadata?: { [key: string]: unknown; }; name?: string; primaryColor?: string; secondaryColor?: string; testMode?: boolean; }-
request.allowApiKeyLedgerRead?booleanDescription Allow this organisation's API keys to read its finance data. An organisation API key's ledger.read scope works only while this is true: turning it off refuses every ledger read by a key (403 API_KEY_LEDGER_READ_NOT_ALLOWED), keys already holding the scope included, and a key cannot be minted with the scope. A person's own sign-in is not affected. A person only. Example true
request.apiVersion?stringDescription Pin the organisation to a dated API version. Must be a known, non-sunset version (see GET /meta/versions). Example 2026-10-02
request.logoUrl?stringFormat: uri Description Console chrome only: the mark the staff consoles show beside this organisation's name. A buyer's logo lives on a Brand. Example https://example.com/logo.png
request.metadata?{ [key: string]: unknown; }Description Additional metadata Example { * "industry": "Technology", * "size": "Medium" * }
request.name?stringDescription Organisation name Example Acme Corporation
request.primaryColor?stringDescription Console chrome only (hex): the colour the staff consoles tint this organisation with. It does not reach a storefront, a confirmation email or a ticket - set a Brand for that. Example #FF5733
request.secondaryColor?stringDescription Console chrome only (hex). It does not reach anything a buyer sees. Example #3366FF
request.testMode?booleanDescription Turn test mode on or off. While it is on, every order, payment, pass and entitlement created is marked as test data. Turning it off is "going live": new things become real and NOTHING already created changes - a test order taken yesterday is still a test order, and its tickets are still refused at a live door. Example true
requestOptions?RequestOptions-

Returns#

Promise<{ allowApiKeyLedgerRead: boolean; apiVersion: string; createdAt: string; id: string; logoUrl?: string; metadata?: { [key: string]: unknown; }; name: string; primaryColor?: string; secondaryColor?: string; testMode: boolean; updatedAt: string; }>

Operation Id#

updateOrganisation