# Integration roadmap

> **TL;DR** — Seven phases, from a signed agreement to a live app. Each phase links to the page that does the work and says when it is done. The responsibilities split and the pieces are on [Architecture](https://docs.wandura.ai/developers/architecture).

```mermaid
flowchart LR
  p0["0 · Onboarding"] --> p1["1 · Keys"]
  p1 --> p2["2 · Catalog sync"]
  p2 --> p3["3 · Playback + paywall"]
  p3 --> p4["4 · Player SDK in the app"]
  p4 --> p5["5 · Test"]
  p5 --> p6["6 · Go-live"]
```

## Phase 0: Onboarding
Organisation, members, film licences, test organisation and Player SDK trial, in your team's Wandura Discord channel. **Page:** [Before you start](https://docs.wandura.ai/developers/before-you-start#get-onboarded).
**Done when:** your developers can open **Developers** on partner.wandura.ai, and Wandura has confirmed your licensed films.

## Phase 1: Keys
One key per system and environment, with only the scopes it needs, created by your developers on **Developers**. **Pages:** [Authentication](https://docs.wandura.ai/developers/authentication#scopes), [Security](https://docs.wandura.ai/developers/concepts/security).
**Done when:** each system has its own key in your secrets manager, and `GET /config` from your server answers `200`.

## Phase 2: Catalog sync
A job that copies the catalog into your database every 15–60 minutes, pages safely, and never wipes your copy on an error. **Page:** [Catalog sync](https://docs.wandura.ai/developers/guides/catalog-sync).
**Done when:** your app shows the licensed films from your own database, in Wandura's order, with free episodes and "coming soon" tiles right.

## Phase 3: Playback and paywall
Your ticket endpoint: your paywall first, then one batch request for the episode and up to two unlocked next episodes; viewer messages for every error. **Pages:** [Playback flow and paywall](https://docs.wandura.ai/developers/guides/playback-flow), [Smooth playback under load](https://docs.wandura.ai/developers/guides/smooth-playback), [Errors](https://docs.wandura.ai/developers/concepts/errors).
**Done when:** a locked episode never reaches Wandura, and every error maps to a screen.

## Phase 4: Player SDK in the app
Device values, the ticket from your backend, playback, expiry and recovery, subtitles. **Pages:** [Player SDK](https://docs.wandura.ai/developers/player-sdk), [iOS](https://docs.wandura.ai/developers/player-sdk/ios), [Android](https://docs.wandura.ai/developers/player-sdk/android), [Subtitles](https://docs.wandura.ai/developers/guides/subtitles).
**Done when:** a free episode plays with subtitles on a real iPhone and a real Android phone.

Optional, any time after Phase 1: [Creatives sync](https://docs.wandura.ai/developers/guides/creatives-sync), [Open video sync](https://docs.wandura.ai/developers/guides/open-video-sync).

## Phase 5: Test
The test plan, run on real phones. **Page:** [Testing](https://docs.wandura.ai/developers/guides/testing).
**Done when:** every item of the test plan passes on the release build.

## Phase 6: Go-live
Paid licence, limit review, production keys, monitoring and the rights-ending plan. **Pages:** [Go-live checklist](https://docs.wandura.ai/developers/production/go-live), [Observability](https://docs.wandura.ai/developers/production/observability), [When rights end](https://docs.wandura.ai/developers/production/rights-end), [Troubleshooting](https://docs.wandura.ai/developers/production/troubleshooting).
**Done when:** Wandura confirms go-live in your channel.

## Anchors kept from the previous guide
Links to the former single-page guide land here. Where things moved:

| Topic | Now on |
|---|---|
| Test and production, test plan | [Testing](https://docs.wandura.ai/developers/guides/testing) |
| Go-live checklist, monitoring, rights ending | [Go-live](https://docs.wandura.ai/developers/production/go-live), [Observability](https://docs.wandura.ai/developers/production/observability), [When rights end](https://docs.wandura.ai/developers/production/rights-end) |
| Prefetch, expiry, subtitles, viewer messages | [Playback flow](https://docs.wandura.ai/developers/guides/playback-flow), [Subtitles](https://docs.wandura.ai/developers/guides/subtitles), [Errors](https://docs.wandura.ai/developers/concepts/errors#viewer-messages) |
| What to store, withdrawals | [Catalog sync](https://docs.wandura.ai/developers/guides/catalog-sync) |
