Skip to content

Use-case tutorials

Member integration flow

The most basic use case: linking a partner service account to a KiTbetter account. For the full specification, see Member integration.

The partner only implements steps 2 and 3 (issue a token, redirect). KiTbetter handles everything after that.

Member integration flow — a member is linked to KiTbetter from the partner service through a JWT redirect Member integration flow — a member is linked to KiTbetter from the partner service through a JWT redirect

Step 1 — Partner onboarding

Request onboarding through the contact channel to receive your JWT signing secret and the landing URL to redirect to. Test environment details are provided at the same time.

Step 2 — Issue a token

Build a JWT from the signed-in member's information (required: iss, sub, email, exp). Sign it with HS256.

{
  "iss": "your-service.com",
  "sub": "partner-member-0001",
  "email": "user@your-service.com",
  "name": "Jane Doe",
  "iat": 1778578868,
  "exp": 1778582468
}

Step 3 — Redirect the user

Append the token to the landing URL you received during onboarding and send the user there. That is the full extent of the partner implementation.

https://kitbetter.com/partners/accept-terms?jwt={TOKEN}

KiTbetter handles the rest, and the integration completes once the member accepts the terms.


Album ingest → release flow

The end-to-end use case for releasing an album you own as a KiTalbum on KiTbetter. The partner only implements steps 1 to 3 (prepare the XML, call ingest, check status); the final steps are done by the artist who arrives through member integration. For request and response details, see the album ingest reference.

Album ingest → release flow — the partner server submits an ingest and polls its status, and an album in production is created in Artists Album ingest → release flow — the partner server submits an ingest and polls its status, and an album in production is created in Artists

Step 1 — Prepare the ERN XML

Assemble your album and artist metadata as DDEX ERN 3.8.2 XML and create a presigned URL that KiTbetter can download. URLs for resource files such as audio, video, and images go inside the XML under <TechnicalDetails><File><URI> — do not send them separately in the request body.

Step 2 — Call the ingest API

Send releaseId (your album ID) and xmlUrl to POST /ddex/ingests. The response can take up to 30 seconds, so set your client timeout to at least 30 seconds.

A 201 response means an album in production has been created. Track the ingest with the ingestId in the response. Resource files are loaded asynchronously after the response. Resending the same releaseId returns 409, and a problem with the XML returns 422 (no ingest is created, so you can resend) — see error codes.

Step 3 — Check the ingest status

Audio and image files referenced in the XML are loaded asynchronously after the response. Use the ingestId to check progress.

curl "https://api.kitbetter.com/partner/v1/ddex/ingests/1042" \
  -H "X-API-Key: YOUR_API_KEY"
{
  "ingestId": "1042",
  "releaseId": "DIST-2026-00123",
  "status": "processing",
  "receivedAt": "2026-08-06T10:38:00+09:00",
  "completedAt": null,
  "resources": { "total": 14, "completed": 9, "failed": 0 }
}

Once status becomes completed, the artist can pick up the work. We recommend a first lookup about 30 seconds after ingest, then every 30 seconds to 1 minute. If the status is failed, check error.code for the reason and — instead of resending — contact us.

Instead of polling, you can register a webhook to receive completion and failure events in real time.

Step 4 — The artist finishes up

The artist signs in to KiTbetter through member integration, adjusts the package design in Artists, and completes the release flow — at which point the KiTalbum goes live on Shop.