> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qlero.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Importing new repertoire via DDEX

DDEX is the XML format distributors and labels use to deliver release metadata to each other. If your distributor already sends you ERN messages, you can load them straight into Qlero instead of retyping the release into a spreadsheet. One file describes one release and its tracks.

<Note>
  Importing a DDEX file needs both write and import access to Repertoire. Import access alone is not enough, because the upload lives on the Releases page and there is no second way in. DDEX is available to record companies on a recordings license.
</Note>

## Before your first import

**Set your DDEX Party ID.** Open organization settings, then the record company's **General** page, and fill in **DDEX Party ID (DPID)**. It looks like `PADPIDA0000000000A`. Until it is set, the **DDEX** tab under Data Files stays locked.

**Ask Qlero to add your delivery partner.** Every DDEX file comes in under a named partner, the distributor or aggregator the feed comes from. Qlero sets partners up for you, so contact support with the partner's details before your first delivery.

## Importing a file

<Steps>
  <Step title="Go to Repertoire › Releases">
    Choose **Create New › Import from DDEX**.
  </Step>

  <Step title="Pick the delivery partner">
    Choose the partner the file came from. If the list is empty, no partner has been set up yet.
  </Step>

  <Step title="Upload the ERN XML">
    Only `.xml` is accepted. Upload the message itself, not a zipped delivery.
  </Step>

  <Step title="Click Import">
    Qlero processes the file in the background. Nothing appears in your repertoire until it finishes.
  </Step>
</Steps>

<img src="https://mintcdn.com/qlero/hBIPUWJRkQWqgOj3/images/guides/gud-1505/importing-repertoire-via-ddex.gif?s=7a12bd007b8efbf2f0ad1d210bb8fc72" alt="Importing repertoire from a DDEX file" width="960" height="540" data-path="images/guides/gud-1505/importing-repertoire-via-ddex.gif" />

## What Qlero does with the message

**Tracks are matched on ISRC.** A track whose ISRC already exists is updated. Anything else is created.

**The release is matched on barcode, then catalog number.** If neither finds an existing release, Qlero creates one.

**Updates only fill in what the message carries.** A delivery can change a track's title, artist, duration, and label, and a release's title, artist, barcode, catalog number, release date, and label. Everything you set yourself in Qlero, such as external IDs, versions, variants, P lines, notes, and format type, is left alone.

**Tracks are added to a release, never removed.** Tracks already on the release keep their position, and delivered tracks that were not there are appended to the end.

**Labels are linked, not created.** A label name in the message attaches only if a label with that name already exists in your repertoire. Create the label first if you want the link. See [Adding new labels](/labels/repertoire/adding-new-labels).

**Contract auto-matching still applies.** A newly created track picks up a contract that auto-matches on its label or artist, the same as a track you create by hand. See [Assigning contracts to tracks and releases](/labels/repertoire/assigning-contracts-participation).

A DDEX message carries no participation rates, so you set those yourself unless auto-matching covered them.

## What Qlero skips

**Tracks with no ISRC.** There is nothing to match them on.

**Repeated ISRCs.** If the same ISRC appears twice in one message, only the first is used.

**The whole release, if any track fails.** A release is imported as one unit, so a single unusable track means nothing from that message is saved. Fix the file with your distributor and redeliver.

## Checking the result

Open **Data Files › DDEX**. Each delivery is one row:

* **Release Identifier** shows the barcode with the catalog number beneath it.
* **Outcome** is **Created**, **Updated**, or **Unchanged**, and it describes the release only: its own details and its tracklist. **Unchanged** means neither moved.
* **Tracks** counts what was in the message, then **Created**, **Updated**, and **Reused** split those into new tracks, tracks whose details changed, and existing tracks that were added to the release unchanged.

Read the two together. A delivery can land on **Unchanged** while the **Updated** count is not zero, which means the release record was already right but track details changed.

Search this page by release identifier to find a specific delivery.

<img src="https://mintcdn.com/qlero/hBIPUWJRkQWqgOj3/images/guides/gud-1505/checking-a-ddex-import.gif?s=d3b32aabdbe7055d271bc5e5922a88ee" alt="Checking a release imported through DDEX" width="960" height="540" data-path="images/guides/gud-1505/checking-a-ddex-import.gif" />

## Message types

Qlero imports **NewReleaseMessage**.

<Warning>
  Qlero does not process takedown or update messages. Uploading one is recorded as a delivery and changes nothing in your repertoire, with no error to tell you so. Anything a takedown was meant to do has to be done by hand.
</Warning>

If a delivery does not appear, or appears without touching anything you expected it to, contact Qlero support. The app does not show why.

## Next steps

A DDEX delivery brings in metadata. Attach the new tracks and releases to contracts so Qlero can allocate income to them. See [Assigning contracts to tracks and releases](/labels/repertoire/assigning-contracts-participation).
