Skip to content
Docs
Operation

Graduate the organisation from test mode to live

POST/organisations/{id}/graduate
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.

Path parameters

idstringRequired
Organisation ID. Must be the caller's own organisation.

Headers

Idempotency-KeystringOptional
Makes the write safe to retry. The first request with a key does the work and its response is stored for 24 hours; a repeat with the same key and the same request (method, path, query, X-Ticketlayer-Channel, TL-Version and body) gets that stored status and body back, marked `Idempotent-Replay: true`, without running again. The key is scoped to your organisation and your credential. The same key with a different request is 422 IDEMPOTENCY_KEY_REUSED; a repeat while the first is still running waits for it, then answers 409 IDEMPOTENT_REQUEST_IN_PROGRESS if it has not finished. Only a 2xx is stored: after an error the key is free again. Omit the header and the request behaves as it always has.

Returns

The organisation is live

Errors

400
Bad Request - Invalid input
401
Unauthorized - Authentication required
403
Forbidden - Insufficient permissions
404
Not Found - Resource not found
500
Internal Server Error

Every error names its code and links to it. All error codes

curl -X POST "https://api.ticketlayer.com/v1/organisations/org_xyz789/graduate" \  -H "Authorization: Bearer tlak_..." \  -H "X-Ticketlayer-Org: your-org-slug"
Response 200
{
  "organisation": {
    "id": "org_xyz789",
    "name": "Acme Events Ltd",
    "slug": "acme-events"
  },
  "alreadyLive": false,
  "liveKeys": [
    {
      "keyId": "schk_abc123",
      "channelId": "sch_abc123",
      "channelSlug": "website",
      "publishableKey": "tlpk_Zm9vYmFyYmF6cXV4"
    }
  ],
  "signupClaimsGraduated": 1
}

Try it in test mode

Path parameters
Organisation ID. Must be the caller's own organisation.