# Admin API - Dokumentation

# Basket API – Dokumentation

Die Basket API dient dem Export und der Analyse von Warenkorb-Daten, die über das Partnerprogramm-System erfasst wurden. Sie ermöglicht es, detaillierte Informationen zu einzelnen Basket-Items strukturiert als CSV-Datei abzurufen und weiterzuverarbeiten.

Die API kann im User-Interface unter dem Menüpunkt **Daten-API** verwendet werden.

---

## API-Aufruf

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-https%3A%2F%2Fwww.domain.d"><div class="overflow-y-auto p-4" dir="ltr">https://**www.<span class="hljs-keyword">domain</span>.de**/api//**<span class="hljs-keyword">ACCESS</span>-TOKEN**/<span class="hljs-keyword">admin</span>/**ID**/<span class="hljs-keyword">get</span>-orders_baskets**.csv**</div></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--1"></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-wert-beschreibung-ww"><table class="w-fit min-w-(--thread-content-width)" data-end="1483" data-start="768" style="width: 62.1429%; height: 154.406px;"><thead data-end="814" data-start="768"><tr data-end="814" data-start="768" style="height: 29.7969px;"><th data-col-size="sm" data-end="780" data-start="768" style="width: 41.6309%; height: 29.7969px;">Wert</th><th data-col-size="xl" data-end="814" data-start="798" style="width: 58.3691%; height: 29.7969px;">Beschreibung</th></tr></thead><tbody data-end="1483" data-start="864"><tr data-end="953" data-start="864" style="height: 35.2188px;"><td data-col-size="sm" data-end="892" data-start="864" style="width: 41.6309%; height: 35.2188px;">www.domain.de</td><td data-col-size="xl" data-end="953" data-start="907" style="width: 58.3691%; height: 35.2188px;">System-Partnerprogramm</td></tr><tr style="height: 29.7969px;"><td style="width: 41.6309%; height: 29.7969px;">ACCESS-TOKEN</td><td style="width: 58.3691%; height: 29.7969px;">Access Token des Users</td></tr><tr style="height: 29.7969px;"><td style="width: 41.6309%; height: 29.7969px;">ID</td><td style="width: 58.3691%; height: 29.7969px;">User-ID</td></tr><tr style="height: 29.7969px;"><td style="width: 41.6309%; height: 29.7969px;">.csv</td><td style="width: 58.3691%; height: 29.7969px;">Art des Downloads</td></tr></tbody></table>

</div>---

## Basket-API Filterung

Für die Basket API können verschiedene Parameter als Filter verwendet werden.  
Nachfolgend eine Übersicht aller verfügbaren Parameter:

<table class="w-fit min-w-(--thread-content-width)" data-end="1483" data-start="768" id="bkmrk-parameter-wert-%2F-bei" style="width: 100%;"><thead data-end="814" data-start="768"><tr data-end="814" data-start="768"><th data-col-size="sm" data-end="780" data-start="768" style="width: 22.5268%;">Parameter</th><th data-col-size="sm" data-end="798" data-start="780" style="width: 12.0373%;">Wert / Beispiel</th><th data-col-size="xl" data-end="814" data-start="798" style="width: 65.4359%;">Beschreibung</th></tr></thead><tbody data-end="1483" data-start="864"><tr data-end="953" data-start="864"><td data-col-size="sm" data-end="892" data-start="864" style="width: 22.5268%;">`condition[period][from]`</td><td data-col-size="sm" data-end="907" data-start="892" style="width: 12.0373%;">`01.01.2025`</td><td data-col-size="xl" data-end="953" data-start="907" style="width: 65.4359%;">Definiert das **Startdatum** des Zeitraums</td></tr><tr data-end="1039" data-start="954"><td data-col-size="sm" data-end="980" data-start="954" style="width: 22.5268%;">`condition[period][to]`</td><td data-col-size="sm" data-end="995" data-start="980" style="width: 12.0373%;">`31.01.2025`</td><td data-col-size="xl" data-end="1039" data-start="995" style="width: 65.4359%;">Definiert das **Enddatum** des Zeitraums</td></tr><tr data-end="1174" data-start="1040"><td data-col-size="sm" data-end="1067" data-start="1040" style="width: 22.5268%;">`condition[l:campaigns]`</td><td data-col-size="sm" data-end="1073" data-start="1067" style="width: 12.0373%;">`1`</td><td data-col-size="xl" data-end="1174" data-start="1073" style="width: 65.4359%;">Filtert alle Baskets, die einer bestimmten **Kampagne** zugeordnet sind. Mehrfachnennung möglich.</td></tr><tr data-end="1483" data-start="1175"><td data-col-size="sm" data-end="1199" data-start="1175" style="width: 22.5268%;">`condition[datemode]`</td><td data-col-size="sm" data-end="1240" data-start="1199" style="width: 12.0373%;">`processing`  
`payout`  
`incoming`</td><td data-col-size="xl" data-end="1483" data-start="1240" style="width: 65.4359%;">Bestimmt die Art des Zeitraums:  
• `processing`: Baskets, die im Zeitraum **validiert** wurden  
• `payout`: Baskets, die im Zeitraum **ausgezahlt** wurden  
• `incoming`: Baskets, die im Zeitraum **erfasst** wurden (Transaktionsdatum)</td></tr></tbody></table>

<div class="_tableContainer_1rjym_1" id="bkmrk-parameter-wert-%2F-bei-1"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1">  
</div></div>**Beispiel:**

<div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" id="bkmrk-condition%5Bperiod%5D%5Bfr" tabindex="-1"><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-keyword">condition</span>[<span class="hljs-keyword">period</span>][<span class="hljs-keyword">from</span>]<span class="hljs-operator">=</span><span class="hljs-number">01.01</span><span class="hljs-number">.2025</span><span class="hljs-operator">&</span><span class="hljs-keyword">condition</span>[<span class="hljs-keyword">period</span>][<span class="hljs-keyword">to</span>]<span class="hljs-operator">=</span><span class="hljs-number">31.01</span><span class="hljs-number">.2025</span><span class="hljs-operator">&</span><span class="hljs-keyword">condition</span>[datemode]<span class="hljs-operator">=</span>processing`</div></div>---

</div>## Definition der Felder in der Basket-API

Die heruntergeladenen Transaktionen (z.B. als `.csv`) enthalten folgende Spalten:

<div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" id="bkmrk-feldname-beschreibun" tabindex="-1"><div class="_tableContainer_1rjym_1"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3132" data-start="1742"><thead data-end="1769" data-start="1742"><tr data-end="1769" data-start="1742"><th data-col-size="sm" data-end="1753" data-start="1742">Feldname</th><th data-col-size="md" data-end="1769" data-start="1753">Beschreibung</th></tr></thead><tbody data-end="3132" data-start="1800"><tr data-end="1841" data-start="1800"><td data-col-size="sm" data-end="1807" data-start="1800">`id`</td><td data-col-size="md" data-end="1841" data-start="1807">Eindeutige ID des Basket-Items</td></tr><tr data-end="1896" data-start="1842"><td data-col-size="sm" data-end="1854" data-start="1842">`orderid`</td><td data-col-size="md" data-end="1896" data-start="1854">Interne ID der zugehörigen Transaktion</td></tr><tr data-end="1940" data-start="1897"><td data-col-size="sm" data-end="1911" data-start="1897">`timestamp`</td><td data-col-size="md" data-end="1940" data-start="1911">Zeitpunkt der Transaktion</td></tr><tr data-end="1989" data-start="1941"><td data-col-size="sm" data-end="1956" data-start="1941">`ordertoken`</td><td data-col-size="md" data-end="1989" data-start="1956">Bestellnummer der Transaktion</td></tr><tr data-end="2060" data-start="1990"><td data-col-size="sm" data-end="2005" data-start="1990">`trigger_id`</td><td data-col-size="md" data-end="2060" data-start="2005">ID des Triggers, der der Transaktion zugeordnet ist</td></tr><tr data-end="2144" data-start="2061"><td data-col-size="sm" data-end="2075" data-start="2061">`is_basket`</td><td data-col-size="md" data-end="2144" data-start="2075">Gibt an, ob es sich um ein Basket-Item handelt (`true` / `false`)</td></tr><tr data-end="2198" data-start="2145"><td data-col-size="sm" data-end="2164" data-start="2145">`basket_item_id`</td><td data-col-size="md" data-end="2198" data-start="2164">Eindeutige ID des Basket-Items</td></tr><tr data-end="2246" data-start="2199"><td data-col-size="sm" data-end="2212" data-start="2199">`category`</td><td data-col-size="md" data-end="2246" data-start="2212">Übergebene Kategorie des Shops</td></tr><tr data-end="2288" data-start="2247"><td data-col-size="sm" data-end="2261" data-start="2247">`productid`</td><td data-col-size="md" data-end="2288" data-start="2261">ID des Produkts im Shop</td></tr><tr data-end="2334" data-start="2289"><td data-col-size="sm" data-end="2305" data-start="2289">`productname`</td><td data-col-size="md" data-end="2334" data-start="2305">Name des Produkts im Shop</td></tr><tr data-end="2379" data-start="2335"><td data-col-size="sm" data-end="2346" data-start="2335">`amount`</td><td data-col-size="md" data-end="2379" data-start="2346">Anzahl der gekauften Produkte</td></tr><tr data-end="2417" data-start="2380"><td data-col-size="sm" data-end="2390" data-start="2380">`price`</td><td data-col-size="md" data-end="2417" data-start="2390">Stückpreis des Produkts</td></tr><tr data-end="2481" data-start="2418"><td data-col-size="sm" data-end="2437" data-start="2418">`original_price`</td><td data-col-size="md" data-end="2481" data-start="2437">Ursprünglicher Stückpreis vor Änderungen</td></tr><tr data-end="2520" data-start="2482"><td data-col-size="sm" data-end="2493" data-start="2482">`status`</td><td data-col-size="md" data-end="2520" data-start="2493">Status des Basket-Items</td></tr><tr data-end="2563" data-start="2521"><td data-col-size="sm" data-end="2531" data-start="2521">`total`</td><td data-col-size="md" data-end="2563" data-start="2531">Gesamtpreis (Anzahl × Preis)</td></tr><tr data-end="2638" data-start="2564"><td data-col-size="sm" data-end="2579" data-start="2564">`commission`</td><td data-col-size="md" data-end="2638" data-start="2579">Provision, die der Publisher für das Basket-Item erhält</td></tr><tr data-end="2693" data-start="2639"><td data-col-size="sm" data-end="2657" data-start="2639">`currency_rate`</td><td data-col-size="md" data-end="2693" data-start="2657">Umrechnungsrate bei Fremdwährung</td></tr><tr data-end="2734" data-start="2694"><td data-col-size="sm" data-end="2707" data-start="2694">`currency`</td><td data-col-size="md" data-end="2734" data-start="2707">Währung der Transaktion</td></tr><tr data-end="2813" data-start="2735"><td data-col-size="sm" data-end="2753" data-start="2735">`is_attributed`</td><td data-col-size="md" data-end="2813" data-start="2753">Gibt an, ob eine Attribution vorliegt (`true` / `false`)</td></tr><tr data-end="2869" data-start="2814"><td data-col-size="sm" data-end="2830" data-start="2814">`attribution`</td><td data-col-size="md" data-end="2869" data-start="2830">Art der Attribution pro Basket-Item</td></tr><tr data-end="2930" data-start="2870"><td data-col-size="sm" data-end="2891" data-start="2870">`attributed_price`</td><td data-col-size="md" data-end="2930" data-start="2891">Attribuierter Preis pro Basket-Item</td></tr><tr data-end="2984" data-start="2931"><td data-col-size="sm" data-end="2952" data-start="2931">`attributed_total`</td><td data-col-size="md" data-end="2984" data-start="2952">Attribuierter Preis × Anzahl</td></tr><tr data-end="3037" data-start="2985"><td data-col-size="sm" data-end="3003" data-start="2985">`trigger_value`</td><td data-col-size="md" data-end="3037" data-start="3003">Provisionshöhe pro Basket-Item</td></tr><tr data-end="3081" data-start="3038"><td data-col-size="sm" data-end="3060" data-start="3038">`original_turnover`</td><td data-col-size="md" data-end="3081" data-start="3060">Getrackter Umsatz</td></tr><tr data-end="3132" data-start="3082"><td data-col-size="sm" data-end="3099" data-start="3082">`price_brutto`</td><td data-col-size="md" data-end="3132" data-start="3099">Brutto-Preis des Basket-Items</td></tr></tbody></table>

</div></div></div>

# Transaktions API - Dokumentation

Die Transaktions API ermöglicht den strukturierten Export und die Analyse von Transaktionen, die im Rahmen des Partnerprogramm-Systems erfasst wurden. Sie bietet detaillierte Einblicke in einzelne Transaktionsvorgänge und unterstützt bei der Abrechnung, Erfolgsmessung sowie der Integration in interne oder externe Systeme.

Die API kann im User-Interface unter dem Menüpunkt **Daten-API** verwendet werden.

---

## API-Aufruf

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-https%3A%2F%2Fwww.domain.d"><div class="overflow-y-auto p-4" dir="ltr">https://**www.<span class="hljs-keyword">domain</span>.de**/api//**<span class="hljs-keyword">ACCESS</span>-TOKEN**/<span class="hljs-keyword">admin</span>/**ID**/get-orders**.csv**</div></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--1"></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-wert-beschreibung-ww"><table class="w-fit min-w-(--thread-content-width)" data-end="1483" data-start="768"><thead data-end="814" data-start="768"><tr data-end="814" data-start="768"><th data-col-size="sm" data-end="780" data-start="768">Wert</th><th data-col-size="xl" data-end="814" data-start="798">Beschreibung</th></tr></thead><tbody data-end="1483" data-start="864"><tr data-end="953" data-start="864"><td data-col-size="sm" data-end="892" data-start="864">www.domain.de</td><td data-col-size="xl" data-end="953" data-start="907">Systemdomain</td></tr><tr><td>ACCESS-TOKEN</td><td>Access Token des Users</td></tr><tr><td>ID</td><td>User-ID</td></tr><tr><td>.csv</td><td>Art des Downloads</td></tr></tbody></table>

</div>---

## Transaktions-API Filterung

Für die Transaktions API können verschiedene Parameter als Filter verwendet werden.  
Nachfolgend eine Übersicht aller verfügbaren Parameter:

**Transaktions Status**

<table class="w-fit min-w-(--thread-content-width)" data-end="1483" data-start="768" id="bkmrk-parameter-wert-%2F-bei"><thead data-end="814" data-start="768"><tr data-end="814" data-start="768"><th data-col-size="sm" data-end="780" data-start="768">Parameter</th><th data-col-size="sm" data-end="798" data-start="780">Wert</th><th>Beispiel</th><th data-col-size="xl" data-end="814" data-start="798">Beschreibung</th></tr></thead><tbody data-end="1483" data-start="864"><tr data-end="953" data-start="864"><td data-col-size="sm" data-end="892" data-start="864">`condition[l:status]`</td><td data-col-size="sm" data-end="907" data-start="892">`open`</td><td>`condition[l:status]=open`</td><td data-col-size="xl" data-end="953" data-start="907">Alle Transaktionen, welche als “Offen” im System hinterlegt sind</td></tr><tr><td>  
</td><td>`confirmed`</td><td>`condition[l:status]=confirmed`</td><td>Alle Transaktionen, welche als “Bestätigt” im System hinterlegt sind</td></tr><tr><td>  
</td><td>`paid`</td><td>`condition[l:status]=paid`</td><td>Alle Transaktionen, welche als “Ausgezahlt” im System hinterlegt sind</td></tr><tr><td>  
</td><td>`canceled`</td><td>`condition[l:status]=canceled`</td><td>Alle Transaktionen, welche als “Storniert” im System hinterlegt sind</td></tr></tbody></table>

**Hinweis:** Es ist eine Kombination aus mehreren Status möglich. Zum Beispiel: `condition[l:status]=confirmed,paid`

<table class="w-fit min-w-(--thread-content-width)" data-end="1483" data-start="768" id="bkmrk-parameter-wert-%2F-bei-1"><thead data-end="814" data-start="768"><tr data-end="814" data-start="768"><th data-col-size="sm" data-end="780" data-start="768">Parameter</th><th data-col-size="sm" data-end="798" data-start="780">Wert / Beispiel</th><th data-col-size="xl" data-end="814" data-start="798">Beschreibung</th></tr></thead><tbody data-end="1483" data-start="864"><tr data-end="953" data-start="864"><td data-col-size="sm" data-end="892" data-start="864">`condition[period][from]`</td><td data-col-size="sm" data-end="907" data-start="892">`01.01.2025`</td><td data-col-size="xl" data-end="953" data-start="907">Definiert das **Startdatum** des Zeitraums</td></tr><tr data-end="1039" data-start="954"><td data-col-size="sm" data-end="980" data-start="954">`condition[period][to]`</td><td data-col-size="sm" data-end="995" data-start="980">`31.01.2025`</td><td data-col-size="xl" data-end="1039" data-start="995">Definiert das **Enddatum** des Zeitraums</td></tr><tr data-end="1174" data-start="1040"><td data-col-size="sm" data-end="1067" data-start="1040">`condition[l:campaigns]`</td><td data-col-size="sm" data-end="1073" data-start="1067">`1`</td><td data-col-size="xl" data-end="1174" data-start="1073">Filtert alle Baskets, die einer bestimmten **Kampagne** zugeordnet sind. Mehrfachnennung möglich.</td></tr><tr data-end="1483" data-start="1175"><td data-col-size="sm" data-end="1199" data-start="1175">`condition[datemode]`</td><td data-col-size="sm" data-end="1240" data-start="1199">`processing`  
`payout`  
`incoming`</td><td data-col-size="xl" data-end="1483" data-start="1240">Bestimmt die Art des Zeitraums:  
• `processing`: Baskets, die im Zeitraum **validiert** wurden  
• `payout`: Baskets, die im Zeitraum **ausgezahlt** wurden  
• `incoming`: Baskets, die im Zeitraum **erfasst** wurden (Transaktionsdatum)</td></tr></tbody></table>

<div class="_tableContainer_1rjym_1" id="bkmrk--3"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1">  
</div></div>**Beispiel:**

<div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" id="bkmrk-condition%5Bperiod%5D%5Bfr" tabindex="-1"><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-keyword">condition</span>[<span class="hljs-keyword">period</span>][<span class="hljs-keyword">from</span>]<span class="hljs-operator">=</span><span class="hljs-number">01.01</span><span class="hljs-number">.2025</span><span class="hljs-operator">&</span><span class="hljs-keyword">condition</span>[<span class="hljs-keyword">period</span>][<span class="hljs-keyword">to</span>]<span class="hljs-operator">=</span><span class="hljs-number">31.01</span><span class="hljs-number">.2025</span><span class="hljs-operator">&</span><span class="hljs-keyword">condition</span>[datemode]<span class="hljs-operator">=</span>processing`</div></div>---

</div>## Definition der Felder in der Transaktions-API

Die heruntergeladenen Transaktionen (z.B. als `.csv`) enthalten folgende Spalten:

<table class="w-fit min-w-(--thread-content-width)" data-end="3782" data-start="366" id="bkmrk-feldname-beschreibun"><thead data-end="393" data-start="366"><tr data-end="393" data-start="366"><th data-col-size="sm" data-end="377" data-start="366">Feldname</th><th data-col-size="md" data-end="393" data-start="377">Beschreibung</th></tr></thead><tbody data-end="3782" data-start="424"><tr data-end="464" data-start="424"><td data-col-size="sm" data-end="431" data-start="424">`id`</td><td data-col-size="md" data-end="464" data-start="431">Eindeutige ID der Transaktion</td></tr><tr data-end="502" data-start="465"><td data-col-size="sm" data-end="476" data-start="465">`status`</td><td data-col-size="md" data-end="502" data-start="476">Status der Transaktion</td></tr><tr data-end="546" data-start="503"><td data-col-size="sm" data-end="517" data-start="503">`timestamp`</td><td data-col-size="md" data-end="546" data-start="517">Zeitpunkt der Transaktion</td></tr><tr data-end="613" data-start="547"><td data-col-size="sm" data-end="563" data-start="547">`campaign_id`</td><td data-col-size="md" data-end="613" data-start="563">Kampagne, der die Transaktion zugeordnet wurde</td></tr><tr data-end="666" data-start="614"><td data-col-size="sm" data-end="630" data-start="614">`attribution`</td><td data-col-size="md" data-end="666" data-start="630">Betrag der gezahlten Attribution</td></tr><tr data-end="727" data-start="667"><td data-col-size="sm" data-end="695" data-start="667">`delivered_tagcode_count`</td><td data-col-size="md" data-end="727" data-start="695">Anzahl der ausgeführten Tags</td></tr><tr data-end="808" data-start="728"><td data-col-size="sm" data-end="766" data-start="728">`delivered_tagcode_serversided_url`</td><td data-col-size="md" data-end="808" data-start="766">Übermittelter Server-Side-Trackingcall</td></tr><tr data-end="869" data-start="809"><td data-col-size="sm" data-end="824" data-start="809">`ordertoken`</td><td data-col-size="md" data-end="869" data-start="824">Vom Advertiser übermittelte Bestellnummer</td></tr><tr data-end="907" data-start="870"><td data-col-size="sm" data-end="881" data-start="870">`source`</td><td data-col-size="md" data-end="907" data-start="881">Quelle der Transaktion</td></tr><tr data-end="980" data-start="908"><td data-col-size="sm" data-end="923" data-start="908">`project_id`</td><td data-col-size="md" data-end="980" data-start="923">ID des Projekts, dem die Transaktion zugeordnet wurde</td></tr><tr data-end="1054" data-start="981"><td data-col-size="sm" data-end="996" data-start="981">`admedia_id`</td><td data-col-size="md" data-end="1054" data-start="996">Werbemittel-ID, über die die Transaktion erzeugt wurde</td></tr><tr data-end="1118" data-start="1055"><td data-col-size="sm" data-end="1064" data-start="1055">`type`</td><td data-col-size="md" data-end="1118" data-start="1064">Typ der Transaktion (z.B. *Sale*, *Lead*, *View*)</td></tr><tr data-end="1183" data-start="1119"><td data-col-size="sm" data-end="1134" data-start="1119">`commission`</td><td data-col-size="md" data-end="1183" data-start="1134">Provision, die dem Publisher zugeordnet wurde (wird beim Salesabgleich geupdated) </td></tr><tr><td>`source_commission`</td><td>Ursprüngliche Provision (wird nicht geupdated)</td></tr><tr data-end="1288" data-start="1184"><td data-col-size="sm" data-end="1208" data-start="1184">`commission_group_id`</td><td data-col-size="md" data-end="1288" data-start="1208">Provisionsgruppe, in der sich der Publisher bei Transaktionserzeugung befand</td></tr><tr data-end="1354" data-start="1289"><td data-col-size="sm" data-end="1304" data-start="1289">`trigger_id`</td><td data-col-size="md" data-end="1354" data-start="1304">Trigger-ID, die der Transaktion zugeordnet ist</td></tr><tr data-end="1430" data-start="1355"><td data-col-size="sm" data-end="1371" data-start="1355">`description`</td><td data-col-size="md" data-end="1430" data-start="1371">Beschreibung, die bei der Transaktion übermittelt wurde</td></tr><tr data-end="1545" data-start="1431"><td data-col-size="sm" data-end="1449" data-start="1431">`trigger_value`</td><td data-col-size="md" data-end="1545" data-start="1449">Vergütung, die in der entsprechenden Trigger-ID zum Zeitpunkt der Transaktion hinterlegt war</td></tr><tr data-end="1625" data-start="1546"><td data-col-size="sm" data-end="1563" data-start="1546">`trigger_type`</td><td data-col-size="md" data-end="1625" data-start="1563">Art des Triggers (Fixvergütung oder prozentuale Vergütung)</td></tr><tr data-end="1675" data-start="1626"><td data-col-size="sm" data-end="1639" data-start="1626">`turnover`</td><td data-col-size="md" data-end="1675" data-start="1639">Provisionsrelevanter Bestellwert</td></tr><tr><td>`attributed_turnover`</td><td>Attribuierter Bestellwert (falls Attributionsmodell aktiv)</td></tr><tr data-end="1739" data-start="1676"><td data-col-size="sm" data-end="1698" data-start="1676">`original_turnover`</td><td data-col-size="md" data-end="1739" data-start="1698">Bestellwert in der Advertiser-Währung</td></tr><tr data-end="1810" data-start="1740"><td data-col-size="sm" data-end="1754" data-start="1740">`action_id`</td><td data-col-size="md" data-end="1810" data-start="1754">Action-ID, die bei der Transaktion übermittelt wurde</td></tr><tr data-end="1897" data-start="1811"><td data-col-size="sm" data-end="1825" data-start="1811">`salary_id`</td><td data-col-size="md" data-end="1897" data-start="1825">ID des Auszahlungsvorgangs, in dem die Transaktion abgerechnet wurde</td></tr><tr data-end="1970" data-start="1898"><td data-col-size="sm" data-end="1913" data-start="1898">`session_id`</td><td data-col-size="md" data-end="1970" data-start="1913">Session-ID, die bei der Transaktion übermittelt wurde</td></tr><tr data-end="2016" data-start="1971"><td data-col-size="sm" data-end="1990" data-start="1971">`order_currency`</td><td data-col-size="md" data-end="2016" data-start="1990">Währung der Bestellung</td></tr><tr data-end="2076" data-start="2017"><td data-col-size="sm" data-end="2040" data-start="2017">`status_change_date`</td><td data-col-size="md" data-end="2076" data-start="2040">Datum der letzten Statusänderung</td></tr><tr data-end="2149" data-start="2077"><td data-col-size="sm" data-end="2095" data-start="2077">`cancel_reason`</td><td data-col-size="md" data-end="2149" data-start="2095">Stornogrund, falls die Transaktion storniert wurde</td></tr><tr data-end="2214" data-start="2150"><td data-col-size="sm" data-end="2170" data-start="2150">`source_turnover`</td><td data-col-size="md" data-end="2214" data-start="2170">Vom Advertiser übermittelter Bestellwert</td></tr><tr data-end="2281" data-start="2215"><td data-col-size="sm" data-end="2231" data-start="2215">`last_change`</td><td data-col-size="md" data-end="2281" data-start="2231">Timestamp der letzten Änderung der Transaktion</td></tr><tr data-end="2367" data-start="2282"><td data-col-size="sm" data-end="2297" data-start="2282">`user_agent`</td><td data-col-size="md" data-end="2367" data-start="2297">Clientinformationen des Nutzers, der die Transaktion ausgelöst hat</td></tr><tr data-end="2458" data-start="2368"><td data-col-size="sm" data-end="2389" data-start="2368">`order_actions_id`</td><td data-col-size="md" data-end="2458" data-start="2389">Interner Verweis auf den provisionsrelevanten Klick oder Postview</td></tr><tr data-end="2496" data-start="2459"><td data-col-size="sm" data-end="2472" data-start="2459">`bonus_id`</td><td data-col-size="md" data-end="2496" data-start="2472">ID eines Bonus-Laufs</td></tr><tr data-end="2568" data-start="2497"><td data-col-size="sm" data-end="2525" data-start="2497">`customer_journey_status`</td><td data-col-size="md" data-end="2568" data-start="2525">Interne Kennziffer zur Customer Journey</td></tr><tr data-end="2637" data-start="2569"><td data-col-size="sm" data-end="2581" data-start="2569">`ebestid`</td><td data-col-size="md" data-end="2637" data-start="2581">Gehashte Bestellnummer zur Anzeige für den Publisher</td></tr><tr data-end="2688" data-start="2638"><td data-col-size="sm" data-end="2658" data-start="2638">`order_timestamp`</td><td data-col-size="md" data-end="2688" data-start="2658">Timestamp des Orderaufrufs</td></tr><tr data-end="2756" data-start="2689"><td data-col-size="sm" data-end="2710" data-start="2689">`action_timestamp`</td><td data-col-size="md" data-end="2756" data-start="2710">Timestamp der Action, die zur Order führte</td></tr><tr data-end="2796" data-start="2757"><td data-col-size="sm" data-end="2775" data-start="2757">`trigger_title`</td><td data-col-size="md" data-end="2796" data-start="2775">Name des Triggers</td></tr><tr data-end="2832" data-start="2797"><td data-col-size="sm" data-end="2812" data-start="2797">`payoutdate`</td><td data-col-size="md" data-end="2832" data-start="2812">Auszahlungsdatum</td></tr><tr data-end="2888" data-start="2833"><td data-col-size="sm" data-end="2858" data-start="2833">`campaign_group_title`</td><td data-col-size="md" data-end="2888" data-start="2858">Titel der Provisionsgruppe</td></tr><tr data-end="2966" data-start="2889"><td data-col-size="sm" data-end="2907" data-start="2889">`project_title`</td><td data-col-size="md" data-end="2966" data-start="2907">Name des Projekts, dem die Transaktion zugeordnet wurde</td></tr><tr data-end="3045" data-start="2967"><td data-col-size="sm" data-end="2986" data-start="2967">`campaign_title`</td><td data-col-size="md" data-end="3045" data-start="2986">Name der Kampagne, die der Transaktion zugeordnet wurde</td></tr><tr data-end="3124" data-start="3046"><td data-col-size="sm" data-end="3064" data-start="3046">`advertiser_id`</td><td data-col-size="md" data-end="3124" data-start="3064">ID des Advertisers, dem die Transaktion zugeordnet wurde</td></tr><tr><td>`advertiser_title`</td><td>Name des Advertisers, dem die Transaktion zugeordnet wurde</td></tr><tr data-end="3201" data-start="3125"><td data-col-size="sm" data-end="3142" data-start="3125">`publisher_id`</td><td data-col-size="md" data-end="3201" data-start="3142">ID des Publishers, dem die Transaktion zugeordnet wurde</td></tr><tr data-end="3271" data-start="3202"><td data-col-size="sm" data-end="3215" data-start="3202">`referrer`</td><td data-col-size="md" data-end="3271" data-start="3215">Seite, auf der der klickauslösende Vorgang stattfand</td></tr><tr data-end="3330" data-start="3272"><td data-col-size="sm" data-end="3284" data-start="3272">`country`</td><td data-col-size="md" data-end="3330" data-start="3284">Land, in dem die Transaktion erzeugt wurde</td></tr><tr data-end="3394" data-start="3331"><td data-col-size="sm" data-end="3341" data-start="3331">`subid`</td><td data-col-size="md" data-end="3394" data-start="3341">Sub-ID, die bei der Transaktion übermittelt wurde</td></tr><tr data-end="3461" data-start="3395"><td data-col-size="sm" data-end="3417" data-start="3395">`publisher_prename`</td><td data-col-size="md" data-end="3461" data-start="3417">Vorname des Publishers (aus Systemdaten)</td></tr><tr data-end="3529" data-start="3462"><td data-col-size="sm" data-end="3484" data-start="3462">`publisher_surname`</td><td data-col-size="md" data-end="3529" data-start="3484">Nachname des Publishers (aus Systemdaten)</td></tr><tr data-end="3602" data-start="3530"><td data-col-size="sm" data-end="3556" data-start="3530">`publisher_searchtitle`</td><td data-col-size="md" data-end="3602" data-start="3556">Suchtitel des Publishers (aus Systemdaten)</td></tr><tr data-end="3655" data-start="3603"><td data-col-size="sm" data-end="3620" data-start="3603">`basket_items`</td><td data-col-size="md" data-end="3655" data-start="3620">Anzahl der Artikel im Warenkorb</td></tr><tr data-end="3732" data-start="3656"><td data-col-size="sm" data-end="3671" data-start="3656">`sub_status`</td><td data-col-size="md" data-end="3732" data-start="3671">Advertiser-interner Status zur Verwaltung der Transaktion</td></tr><tr data-end="3782" data-start="3733"><td data-col-size="sm" data-end="3748" data-start="3733">`visibility`</td><td data-col-size="md" data-end="3782" data-start="3748">Sichtbarkeit für den Publisher</td></tr><tr><td><span data-path-to-node="20,51,0,0">`external_sources_entity_id`  
</span></td><td><span data-path-to-node="20,51,1,0">(Account) Id der externen Quelle</span></td></tr><tr><td>`<span data-path-to-node="20,51,0,0">external_sources_currency_code<br></br></span>`</td><td>Währungscode aus der externen Quelle</td></tr><tr><td>`<span data-path-to-node="20,51,0,0">external_sources_currency_rate<br></br></span>`</td><td>Umrechnungsrate anhand des `<span data-path-to-node="20,51,0,0">external_sources_currency_code</span>` und der internen Währung</td></tr><tr><td>`<span data-path-to-node="20,51,0,0">external_sources_turnover<br></br></span>`</td><td>Bestellwert aus der externen Quelle</td></tr><tr><td>`<span data-path-to-node="20,51,0,0">source_project_id<br></br></span>`</td><td>Publisher/Project-ID aus der externen Quelle</td></tr><tr><td>`<span data-path-to-node="20,51,0,0">source_project_title<br></br></span>`</td><td>Publisher/Project-Name aus der externen Quelle</td></tr><tr><td>`<span data-path-to-node="20,51,0,0">turnover_brutto<br></br></span>`</td><td>Bestellwert inkl. Steuern</td></tr></tbody></table>

<div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" id="bkmrk--4" tabindex="-1"><div class="_tableContainer_1rjym_1"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1">  
</div></div></div>

# Statistik API - Dokumentation

Die Statistik API ermöglicht den Export und die Auswertung aggregierter Leistungsdaten im Rahmen des Partnerprogramm-Systems. Sie stellt unterschiedliche Statistik-Arten bereit, wie z. B. Auswertungen nach Tag, Kampagne, Projekt oder Werbemittel, und unterstützt so bei der Performance-Analyse und Optimierung.

Alle APIs können im User-Interface unter dem Menüpunkt **Daten-API** verwendet werden.

---

## API-Aufruf

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-https%3A%2F%2Fwww.domain.d"><div class="overflow-y-auto p-4" dir="ltr">https://**www.<span class="hljs-keyword">domain</span>.de**/api//**<span class="hljs-keyword">ACCESS</span>-TOKEN**/<span class="hljs-keyword">admin</span>/**ID**/get-statistic_**daily.csv**</div><div class="overflow-y-auto p-4" dir="ltr"><table class="w-fit min-w-(--thread-content-width)" data-end="1483" data-start="768" style="width: 61.9048%;"><thead data-end="814" data-start="768"><tr data-end="814" data-start="768"><th data-col-size="sm" data-end="780" data-start="768" style="width: 41.8561%;">Wert</th><th data-col-size="xl" data-end="814" data-start="798" style="width: 58.1439%;">Beschreibung</th></tr></thead><tbody data-end="1483" data-start="864"><tr data-end="953" data-start="864"><td data-col-size="sm" data-end="892" data-start="864" style="width: 41.8561%;">www.domain.de</td><td data-col-size="xl" data-end="953" data-start="907" style="width: 58.1439%;">System-Partnerprogramm</td></tr><tr><td style="width: 41.8561%;">ACCESS-TOKEN</td><td style="width: 58.1439%;">Access Token des Users</td></tr><tr><td style="width: 41.8561%;">ID</td><td style="width: 58.1439%;">User-ID</td></tr><tr><td style="width: 41.8561%;">get-statistic\_{Statistik-Art}</td><td style="width: 58.1439%;">Art der Statistik (z.B. Tagesbasiert, etc.)</td></tr><tr><td style="width: 41.8561%;">.csv</td><td style="width: 58.1439%;">Art des Downloads</td></tr></tbody></table>

</div></div>## Statistik-API Filterung

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--1"><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>Für die Statistik API können verschiedene Parameter als Filter verwendet werden.  
Nachfolgend eine Übersicht aller verfügbaren Parameter:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-statistik-arten"><div class="overflow-y-auto p-4" dir="ltr">**Statistik-Arten**</div></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--2"></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-statistik-art-parame"><table class="w-fit min-w-(--thread-content-width)" data-end="1547" data-start="446" style="width: 87.0238%;"><thead data-end="475" data-start="446"><tr data-end="475" data-start="446"><th data-col-size="sm" data-end="462" data-start="446" style="width: 46.7562%;">Statistik-Art</th><th data-col-size="sm" data-end="475" data-start="462" style="width: 53.2438%;">Parameter</th></tr></thead><tbody data-end="1547" data-start="508"><tr data-end="554" data-start="508"><td data-col-size="sm" data-end="529" data-start="508" style="width: 46.7562%;">Statistik nach Tag</td><td data-col-size="sm" data-end="554" data-start="529" style="width: 53.2438%;">`get-statistic_daily`</td></tr><tr data-end="613" data-start="555"><td data-col-size="sm" data-end="583" data-start="555" style="width: 46.7562%;">Statistik nach Advertiser</td><td data-col-size="sm" data-end="613" data-start="583" style="width: 53.2438%;">`get-statistic_advertiser`</td></tr><tr data-end="669" data-start="614"><td data-col-size="sm" data-end="641" data-start="614" style="width: 46.7562%;">Statistik nach Kampagnen</td><td data-col-size="sm" data-end="669" data-start="641" style="width: 53.2438%;">`get-statistic_campaign`</td></tr><tr data-end="724" data-start="670"><td data-col-size="sm" data-end="699" data-start="670" style="width: 46.7562%;">Statistik nach Werbemittel</td><td data-col-size="sm" data-end="724" data-start="699" style="width: 53.2438%;">`get-statistic_media`</td></tr><tr data-end="781" data-start="725"><td data-col-size="sm" data-end="752" data-start="725" style="width: 46.7562%;">Statistik nach Publisher</td><td data-col-size="sm" data-end="781" data-start="752" style="width: 53.2438%;">`get-statistic_publisher`</td></tr><tr data-end="834" data-start="782"><td data-col-size="sm" data-end="807" data-start="782" style="width: 46.7562%;">Statistik nach Projekt</td><td data-col-size="sm" data-end="834" data-start="807" style="width: 53.2438%;">`get-statistic_project`</td></tr><tr data-end="883" data-start="835"><td data-col-size="sm" data-end="858" data-start="835" style="width: 46.7562%;">Statistik nach SubID</td><td data-col-size="sm" data-end="883" data-start="858" style="width: 53.2438%;">`get-statistic_subid`</td></tr><tr data-end="938" data-start="884"><td data-col-size="sm" data-end="910" data-start="884" style="width: 46.7562%;">Statistik nach Referrer</td><td data-col-size="sm" data-end="938" data-start="910" style="width: 53.2438%;">`get-statistic_referrer`</td></tr><tr data-end="991" data-start="939"><td data-col-size="sm" data-end="964" data-start="939" style="width: 46.7562%;">Statistik nach Channel</td><td data-col-size="sm" data-end="991" data-start="964" style="width: 53.2438%;">`get-statistic_channel`</td></tr><tr data-end="1061" data-start="992"><td data-col-size="sm" data-end="1026" data-start="992" style="width: 46.7562%;">Statistik nach Provisionsgruppe</td><td data-col-size="sm" data-end="1061" data-start="1026" style="width: 53.2438%;">`get-statistic_provisionsgroup`</td></tr><tr data-end="1114" data-start="1062"><td data-col-size="sm" data-end="1087" data-start="1062" style="width: 46.7562%;">Statistik nach Trigger</td><td data-col-size="sm" data-end="1114" data-start="1087" style="width: 53.2438%;">`get-statistic_trigger`</td></tr><tr data-end="1167" data-start="1115"><td data-col-size="sm" data-end="1140" data-start="1115" style="width: 46.7562%;">Statistik nach Journey</td><td data-col-size="sm" data-end="1167" data-start="1140" style="width: 53.2438%;">`get-statistic_journey`</td></tr><tr data-end="1220" data-start="1168"><td data-col-size="sm" data-end="1194" data-start="1168" style="width: 46.7562%;">Statistik nach A/B-Test</td><td data-col-size="sm" data-end="1220" data-start="1194" style="width: 53.2438%;">`get-statistic_abtest`</td></tr><tr data-end="1278" data-start="1221"><td data-col-size="sm" data-end="1248" data-start="1221" style="width: 46.7562%;">Statistik nach Gerätetyp</td><td data-col-size="sm" data-end="1278" data-start="1248" style="width: 53.2438%;">`get-statistic_devicetype`</td></tr><tr data-end="1328" data-start="1279"><td data-col-size="sm" data-end="1302" data-start="1279" style="width: 46.7562%;">Statistik nach Gerät</td><td data-col-size="sm" data-end="1328" data-start="1302" style="width: 53.2438%;">`get-statistic_device`</td></tr><tr data-end="1381" data-start="1329"><td data-col-size="sm" data-end="1354" data-start="1329" style="width: 46.7562%;">Statistik nach Browser</td><td data-col-size="sm" data-end="1381" data-start="1354" style="width: 53.2438%;">`get-statistic_browser`</td></tr><tr data-end="1436" data-start="1382"><td data-col-size="sm" data-end="1414" data-start="1382" style="width: 46.7562%;">Statistik nach Betriebssystem</td><td data-col-size="sm" data-end="1436" data-start="1414" style="width: 53.2438%;">`get-statistic_os`</td></tr><tr data-end="1489" data-start="1437"><td data-col-size="sm" data-end="1459" data-start="1437" style="width: 46.7562%;">Statistik nach Land</td><td data-col-size="sm" data-end="1489" data-start="1459" style="width: 53.2438%;">`get-statistic_geocountry`</td></tr><tr data-end="1547" data-start="1490"><td data-col-size="sm" data-end="1511" data-start="1490" style="width: 46.7562%;">Manuelle Statistik</td><td data-col-size="sm" data-end="1547" data-start="1511" style="width: 53.2438%;">`get-statistic_manualstatistics`</td></tr></tbody></table>

</div><table class="w-fit min-w-(--thread-content-width)" data-end="2851" data-start="1888" id="bkmrk-parameter-wert-%2F-bei" style="width: 86.9048%; height: 432.922px;"><thead data-end="1934" data-start="1888"><tr data-end="1934" data-start="1888" style="height: 29.7969px;"><th data-col-size="sm" data-end="1900" data-start="1888" style="width: 27.7092%; height: 29.7969px;">Parameter</th><th data-col-size="lg" data-end="1918" data-start="1900" style="width: 31.8244%; height: 29.7969px;">Wert / Beispiel</th><th data-col-size="md" data-end="1934" data-start="1918" style="width: 40.4664%; height: 29.7969px;">Beschreibung</th></tr></thead><tbody data-end="2851" data-start="1984"><tr data-end="2055" data-start="1984" style="height: 30.1094px;"><td data-col-size="sm" data-end="2012" data-start="1984" style="width: 27.7092%; height: 30.1094px;">`condition[period][from]`</td><td data-col-size="sm" data-end="907" data-start="892" style="width: 31.8244%; height: 47.2188px;">`01.01.2025`</td><td data-col-size="md" data-end="2055" data-start="2027" style="width: 40.4664%; height: 30.1094px;">Startdatum der Statistik</td></tr><tr data-end="2123" data-start="2056" style="height: 30.1094px;"><td data-col-size="sm" data-end="2082" data-start="2056" style="width: 27.7092%; height: 30.1094px;">`condition[period][to]`</td><td data-col-size="sm" data-end="995" data-start="980" style="width: 31.8244%; height: 47.2188px;">`31.01.2025`</td><td data-col-size="md" data-end="2123" data-start="2097" style="width: 40.4664%; height: 30.1094px;">Enddatum der Statistik</td></tr><tr data-end="2248" data-start="2124" style="height: 64.3281px;"><td data-col-size="sm" data-end="2153" data-start="2124" style="width: 27.7092%; height: 64.3281px;">`condition[paymentstatus]`</td><td data-col-size="lg" data-end="2214" data-start="2153" style="width: 31.8244%; height: 64.3281px;">`all` = alle  
`0` = nicht ausgezahlt  
`1` = ausgezahlt</td><td data-col-size="md" data-end="2248" data-start="2214" style="width: 40.4664%; height: 64.3281px;">Filtert nach Auszahlungsstatus</td></tr><tr data-end="2433" data-start="2249" style="height: 81.4375px;"><td data-col-size="sm" data-end="2276" data-start="2249" style="width: 27.7092%; height: 81.4375px;">`condition[dynamicdate]`</td><td data-col-size="lg" data-end="2409" data-start="2276" style="width: 31.8244%; height: 81.4375px;">`currentmonth` = aktueller Monat  
`lastmonth` = vorheriger Monat  
`currentweek` = aktuelle Woche  
`last10d` = letzte 10 Tage</td><td data-col-size="md" data-end="2433" data-start="2409" style="width: 40.4664%; height: 81.4375px;">Dynamische Zeiträume</td></tr><tr data-end="2505" data-start="2434" style="height: 30.1094px;"><td data-col-size="sm" data-end="2461" data-start="2434" style="width: 27.7092%; height: 30.1094px;">`condition[l:publisher]`</td><td data-col-size="lg" data-end="2475" data-start="2461" style="width: 31.8244%; height: 30.1094px;">`1234,5678`</td><td data-col-size="md" data-end="2505" data-start="2475" style="width: 40.4664%; height: 30.1094px;">Filtert nach Publisher-IDs</td></tr><tr data-end="2570" data-start="2506" style="height: 30.1094px;"><td data-col-size="sm" data-end="2532" data-start="2506" style="width: 27.7092%; height: 30.1094px;">`condition[project_id]`</td><td data-col-size="lg" data-end="2542" data-start="2532" style="width: 31.8244%; height: 30.1094px;">`12345`</td><td data-col-size="md" data-end="2570" data-start="2542" style="width: 40.4664%; height: 30.1094px;">Filtert nach Projekt-IDs</td></tr><tr data-end="2655" data-start="2571" style="height: 46.5938px;"><td data-col-size="sm" data-end="2597" data-start="2571" style="width: 27.7092%; height: 46.5938px;">`condition[bruttodata]`</td><td data-col-size="lg" data-end="2606" data-start="2597" style="width: 31.8244%; height: 46.5938px;">`true`</td><td data-col-size="md" data-end="2655" data-start="2606" style="width: 40.4664%; height: 46.5938px;">Gibt Bruttozahlen zurück (z. B. Klicks/Views)</td></tr><tr data-end="2717" data-start="2656" style="height: 30.1094px;"><td data-col-size="sm" data-end="2681" data-start="2656" style="width: 27.7092%; height: 30.1094px;">`condition[l:mandant]`</td><td data-col-size="lg" data-end="2687" data-start="2681" style="width: 31.8244%; height: 30.1094px;">`1`</td><td data-col-size="md" data-end="2717" data-start="2687" style="width: 40.4664%; height: 30.1094px;">Filtert nach Mandanten-IDs</td></tr><tr data-end="2785" data-start="2718" style="height: 30.1094px;"><td data-col-size="sm" data-end="2746" data-start="2718" style="width: 27.7092%; height: 30.1094px;">`condition[l:advertiser]`</td><td data-col-size="lg" data-end="2754" data-start="2746" style="width: 31.8244%; height: 30.1094px;">`2,3`</td><td data-col-size="md" data-end="2785" data-start="2754" style="width: 40.4664%; height: 30.1094px;">Filtert nach Advertiser-IDs</td></tr><tr data-end="2851" data-start="2786" style="height: 30.1094px;"><td data-col-size="sm" data-end="2813" data-start="2786" style="width: 27.7092%; height: 30.1094px;">`condition[l:campaigns]`</td><td data-col-size="lg" data-end="2821" data-start="2813" style="width: 31.8244%; height: 30.1094px;">`1,3`</td><td data-col-size="md" data-end="2851" data-start="2821" style="width: 40.4664%; height: 30.1094px;">Filtert nach Kampagnen-IDs</td></tr></tbody></table>

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--3"></div>## Aufschlüsselung nach weiteren Kriterien (Dynamische-Statistik)

Die Statistik kann zusätzlich nach weiteren Kriterien **aufgeschlüsselt (segmentiert)** werden.  
Hierzu wird der Parameter `condition[l:criterions]` verwendet.

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-parameter-wert-besch"><div class="_tableContainer_1rjym_1"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3861" data-start="3079"><thead data-end="3125" data-start="3079"><tr data-end="3125" data-start="3079"><th data-col-size="sm" data-end="3091" data-start="3079">Parameter</th><th data-col-size="sm" data-end="3098" data-start="3091">Wert</th><th data-col-size="sm" data-end="3113" data-start="3098">Beschreibung</th><th data-col-size="md" data-end="3125" data-start="3113">Beispiel</th></tr></thead><tbody data-end="3861" data-start="3176"><tr data-end="3272" data-start="3176"><td data-col-size="sm" data-end="3204" data-start="3176">`condition[l:criterions]`</td><td data-col-size="sm" data-end="3212" data-start="3204">`day`</td><td data-col-size="sm" data-end="3239" data-start="3212">Aufschlüsselung nach Tag</td><td data-col-size="md" data-end="3272" data-start="3239">`condition[l:criterions]=day`</td></tr><tr data-end="3362" data-start="3273"><td data-col-size="sm" data-end="3276" data-start="3273"> </td><td data-col-size="sm" data-end="3290" data-start="3276">`publisher`</td><td data-col-size="sm" data-end="3323" data-start="3290">Aufschlüsselung nach Publisher</td><td data-col-size="md" data-end="3362" data-start="3323">`condition[l:criterions]=publisher`</td></tr><tr data-end="3446" data-start="3363"><td data-col-size="sm" data-end="3366" data-start="3363"> </td><td data-col-size="sm" data-end="3376" data-start="3366">`media`</td><td data-col-size="sm" data-end="3411" data-start="3376">Aufschlüsselung nach Werbemittel</td><td data-col-size="md" data-end="3446" data-start="3411">`condition[l:criterions]=media`</td></tr><tr data-end="3539" data-start="3447"><td data-col-size="sm" data-end="3450" data-start="3447"> </td><td data-col-size="sm" data-end="3465" data-start="3450">`advertiser`</td><td data-col-size="sm" data-end="3499" data-start="3465">Aufschlüsselung nach Advertiser</td><td data-col-size="md" data-end="3539" data-start="3499">`condition[l:criterions]=advertiser`</td></tr><tr data-end="3631" data-start="3540"><td data-col-size="sm" data-end="3543" data-start="3540"> </td><td data-col-size="sm" data-end="3556" data-start="3543">`campaign`</td><td data-col-size="sm" data-end="3593" data-start="3556">Aufschlüsselung nach Kampagnenname</td><td data-col-size="md" data-end="3631" data-start="3593">`condition[l:criterions]=campaign`</td></tr><tr data-end="3728" data-start="3632"><td data-col-size="sm" data-end="3635" data-start="3632"> </td><td data-col-size="sm" data-end="3651" data-start="3635">`campaign_id`</td><td data-col-size="sm" data-end="3687" data-start="3651">Aufschlüsselung nach Kampagnen-ID</td><td data-col-size="md" data-end="3728" data-start="3687">`condition[l:criterions]=campaign_id`</td></tr><tr data-end="3861" data-start="3729"><td data-col-size="sm" data-end="3747" data-start="3729">**Kombination**</td><td data-col-size="sm" data-end="3777" data-start="3747">z. B. `day,publisher,media`</td><td data-col-size="sm" data-end="3812" data-start="3777">Mehrdimensionale Aufschlüsselung</td><td data-col-size="md" data-end="3861" data-start="3812">`condition[l:criterions]=day,publisher,media`</td></tr></tbody></table>

</div></div></div>## Hinzufügen von KPIs

Über den Parameter `condition[l:additional_parameters]` können zusätzliche **Key Performance Indicators (KPIs)** zur Statistik hinzugefügt werden.

<div class="_tableContainer_1rjym_1" id="bkmrk-parameter-wert-besch-1"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="4263" data-start="4040"><thead data-end="4086" data-start="4040"><tr data-end="4086" data-start="4040"><th data-col-size="sm" data-end="4052" data-start="4040">Parameter</th><th data-col-size="sm" data-end="4059" data-start="4052">Wert</th><th data-col-size="sm" data-end="4074" data-start="4059">Beschreibung</th><th data-col-size="sm" data-end="4086" data-start="4074">Beispiel</th></tr></thead><tbody data-end="4263" data-start="4137"><tr data-end="4263" data-start="4137"><td data-col-size="sm" data-end="4176" data-start="4137">`condition[l:additional_parameters]`</td><td data-col-size="sm" data-end="4184" data-start="4176">`all`</td><td data-col-size="sm" data-end="4219" data-start="4184">Fügt alle verfügbaren KPIs hinzu</td><td data-col-size="sm" data-end="4263" data-start="4219">`condition[l:additional_parameters]=all`</td></tr></tbody></table>

</div></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--4"></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-wert-beschreibung-ww"></div>

# Touchpoints / Customerjourney API - Dokumentation

Die Customerjourney Orders API dient dem Export und der Analyse von Customer-Journey-Daten, die über das Partnerprogramm-System erfasst wurden. Sie ermöglicht es, detaillierte Informationen zu den einzelnen Kontaktpunkten (Actions) einer Bestellung strukturiert als CSV-Datei abzurufen und die Pfade der Nutzer bis zur Conversion präzise nachzuvollziehen.

Die API kann im User-Interface unter dem Menüpunkt **Daten-API** verwendet werden.

---

## API-Aufruf

`https://DOMAIN/api/ACCESS-TOKEN/admin/ID/get-customerjourney_orders.csv`

<table id="bkmrk-wert-beschreibung-do"><thead><tr><th align="left">Wert</th><th align="left">Beschreibung</th></tr></thead><tbody><tr><td align="left">**DOMAIN**</td><td align="left">System-Partnerprogramm Domain</td></tr><tr><td align="left">**ACCESS-TOKEN**</td><td align="left">Access Token des Users</td></tr><tr><td align="left">**ID**</td><td align="left">User-ID</td></tr><tr><td align="left">**.csv**</td><td align="left">Art des Downloads (Dateiformat)</td></tr></tbody></table>

---

## Customerjourney-API Filterung

Für die Customerjourney API können verschiedene Parameter als Filter verwendet werden. Nachfolgend eine Übersicht der verfügbaren Parameter:

<table id="bkmrk-parameter-wert-%2F-bei"><thead><tr><th align="left">Parameter</th><th align="left">Wert / Beispiel</th><th align="left">Beschreibung</th></tr></thead><tbody><tr><td align="left">**condition\[period\]\[from\]**</td><td align="left">2026-02-04</td><td align="left">Definiert das Startdatum des Zeitraums (Bestelldatum).</td></tr><tr><td align="left">**condition\[period\]\[to\]**</td><td align="left">2026-02-04</td><td align="left">Definiert das Enddatum des Zeitraums (Bestelldatum).</td></tr><tr><td align="left">**condition\[dynamicdate\]**</td><td align="left">`currentmonth`, `lastmonth`, `last10d`, `currentweek`</td><td align="left">Definition eines dynamischen Zeitraums. **Hinweis:** Kann nicht zusammen mit `period[from]` oder `period[to]` verwendet werden.</td></tr><tr><td align="left">**condition\[l:campaigns\]**</td><td align="left">1</td><td align="left">Filtert alle Daten, die einer bestimmten Kampagne zugeordnet sind. Mehrfachnennung möglich.</td></tr><tr><td align="left">**condition\[l:projects\]**</td><td align="left">1234</td><td align="left">Alle Transaktionen, welche unter der entsprechenden Projekt-ID des Programms hinterlegt sind. Mehrfachnennung möglich.</td></tr></tbody></table>

**Beispiele für gefilterte Aufrufe:**

- **Fixer Zeitraum:** `condition[period][from]=2026-02-04&condition[period][to]=2026-02-04&condition[l:campaigns]=1`
- **Dynamisch:** `condition[dynamicdate]=currentweek&condition[l:projects]=1234`

---

## Definition der Felder (Spalten)

Die heruntergeladenen Transaktionen enthalten folgende Spalten:

<table id="bkmrk-feldname-beschreibun"><thead><tr><th align="left">Feldname</th><th align="left">Beschreibung</th></tr></thead><tbody><tr><td align="left">**order\_id**</td><td align="left">Interne ID der zugehörigen Transaktion / Bestellung</td></tr><tr><td align="left">**ordertoken**</td><td align="left">Bestellnummer der Transaktion aus dem Shopsystem</td></tr><tr><td align="left">**campaign\_id**</td><td align="left">ID der Kampagne, welcher die Bestellung zugeordnet ist</td></tr><tr><td align="left">**order\_timestamp**</td><td align="left">Zeitpunkt des Bestelleingangs (Format: YYYY-MM-DD HH:MM:SS+TZ)</td></tr><tr><td align="left">**trigger\_id**</td><td align="left">ID des Triggers, der der Bestellung zugeordnet ist</td></tr><tr><td align="left">**project\_id**</td><td align="left">ID des Projekts (Attribution Target)</td></tr><tr><td align="left">**admedia\_id**</td><td align="left">ID des Werbemittels der Bestellung</td></tr><tr><td align="left">**action\_timestamp**</td><td align="left">Zeitpunkt des Klicks oder der Einblendung (Touchpoint)</td></tr><tr><td align="left">**type**</td><td align="left">Art des Kontaktpunkts (z.B. click)</td></tr><tr><td align="left">**action\_campaign\_id**</td><td align="left">Kampagnen-ID des spezifischen Kontaktpunkts innerhalb der Journey</td></tr><tr><td align="left">**action\_project\_id**</td><td align="left">Projekt-ID des spezifischen Kontaktpunkts</td></tr><tr><td align="left">**action\_admedia\_id**</td><td align="left">Werbemittel-ID des spezifischen Kontaktpunkts</td></tr><tr><td align="left">**referrer**</td><td align="left">Die URL, von der der Nutzer zum Shop geleitet wurde (inkl. Tracking-Parametern)</td></tr></tbody></table>

# Order Webservice

# Create / easy.affiliate REST-API (Orders)

## 📝 Einleitung
Um neue Orders automatisiert im easy.affiliate-System anzulegen, steht ein REST-konformer Webservice zur Verfügung. Über die HTTP-Methode **POST** können neue Transaktionen übermittelt werden. Jeder User erhält hierfür einen Authentifizierungs-Token und eine Login-ID, die im Frontend einsehbar sind.

---

## 🔐 Authentifizierung
Für den Zugriff sind folgende Header erforderlich:

| Header | Beschreibung | Typ |
| :--- | :--- | :--- |
| **Content-Type** | Muss auf `application/json` gesetzt sein | String |
| **X-Network-ID** | Netzwerk-ID: meist `-1` für mandantenübergreifende API | Integer |
| **X-Auth-Token** | Dein API-Token (im Frontend sichtbar) | String |
| **X-Auth-ID** | Deine Login-ID (im Frontend sichtbar) | Integer |

---

## 📩 Endpunkte

* **Admin:** `https://SUBDOMAIN.de/ws/V6/admin/JSON/Orders`
* **Advertiser:** `https://SUBDOMAIN.de/ws/V6/advertiser/JSON/Orders`

---

## 🧪 Beispiel (cURL)

```bash
curl -X POST \
  -H "Content-Type: application/json" \
  -H "X-Network-ID: -1" \
  -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" \
  -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" \
  -d '[{
    "ordertoken": "testorder001",
    "campaign_id": 1,
    "trigger_id": 2,
    "status": 1,
    "turnover": 199.99,
    "commission": 20.00
  }]' \
  https://SUBDOMAIN.de/ws/V6/admin/JSON/Orders
```

---

### 🧾 Body-Parameter

| Parameter | Beschreibung | Datentyp | Pflichtfeld |
| :--- | :--- | :--- | :--- |
| **ordertoken** | Eindeutiger Identifier für die Order. Muss systemweit eindeutig sein. | String | ✅ Ja |
| **campaign_id** | ID der Kampagne, der die Order zugeordnet wird. | Integer | ✅ Ja |
| **trigger_id** | ID des Triggers, der bei Nutzung von `ordertoken` zwingend angegeben werden muss. | Integer | ✅ Ja |
| **status** | Status der Order: `0` = offen, `1` = bestätigt, `2` = storniert | Integer | ✅ Ja |
| **turnover** | Bestellwert in Kampagnenwährung | Float | ✅ Ja |
| **original_turnover** | Bestellwert in Fremdwährung | Float | Nein |
| **commission** | Provisionswert in Kampagnenwährung. Kann übergeben werden, falls selbst berechnet | Float | Nein |
| **cancel_reason** | Angabe eines Stornogrundes bei Status = 2 (storniert) | String | Nein |

---

### 📘 Hinweise

 **Wichtige Implementierungsdetails:**
* **ordertoken:** Muss **eindeutig** sein – idealerweise eine Kombination aus Zeitstempel, Shop-ID oder externer Ordernummer.
* **trigger_id:** Wenn du diese nicht kennst, frage im Frontend deine Kampagnenkonfiguration ab.
* **Bulk-Aktionen:** Du kannst auch mehrere Orders in einem Array auf einmal anlegen.
* **Updates:** Wird eine Order mit gleichem `ordertoken` bereits im System gefunden, kann ein `PUT-Request` genutzt werden, um sie zu aktualisieren.

# Update / easy.affiliate REST-API (Orders)

## 📝 Einleitung
Um Orders automatisiert im **easy.affiliate-System** bearbeiten zu können, stellt die easy Marketing GmbH eine Webservice-API zur Verfügung. Diese ermöglicht es, bestehende Orders im Nachgang zu bearbeiten, sobald sie den Validierungsprozess durchlaufen.

Jedem User stehen hierfür ein **Authentifizierungs-Token** und eine **Login_id** zur Verfügung, die über das Frontend abgerufen werden können.

* **User-ID:** Wo ist die User-ID hinterlegt? (Siehe Frontend-Profil)
* **Access-Token:** Wo ist der Access-Token hinterlegt? (Siehe API-Einstellungen)

---

## Endpunkte

| Zielgruppe | URL |
| :--- | :--- |
| **Admin** | `https://SUBDOMAIN.de/ws/V6/admin/JSON/Orders` |
| **Advertiser** | `https://SUBDOMAIN.de/ws/V6/advertiser/JSON/Orders` |

---

## Beispiele

### Beispiel mit cURL
```bash
curl -X PUT \
  -H "Content-Type: application/json" \
  -H "X-Network-ID: -1" \
  -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" \
  -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" \
  -d '[{ "campaign_id": 1, "id": 12345, "status": 1, "turnover":100.00, "commission":12.34 },{ "campaign_id": 1, "ordertoken":"123a456b", "status": 2, "turnover": 0.00 }]' \
  https://DOMAIN/ws/V6/admin/JSON/Orders
  ```
---
  ### Codebeispiel
Mit der folgenden Methode können mehrere Orders geupdatet werden. Ein Beispielaufruf sieht folgendermaßen aus:

#### Headers
| Variable | Wert / Bedeutung |
| :--- | :--- |
| **Content-Type** | `application/json` |
| **X-Network-ID** | `-1` |
| **X-Auth-Token** | `ADMIN_APIUSER_TOKEN` |
| **X-Auth-ID** | `ADMIN_APIUSER_LOGIN_ID` |

#### Body
```json
[
    {
        "id": "12345",
        "campaign_id": 1,
        "status": 1,
        "turnover": 10.00,
        "commission": 0.99
    },
    {
        "ordertoken": "123a456b",
        "campaign_id": 1,
        "trigger_id": 1,              
        "status": 2,
        "turnover": 9.99,
        "cancel_reason": "Storno Grund"
    }
]
```
---
## Variablenerläuterung

### Headers
| Variable | Bedeutung | Datentyp |
| :--- | :--- | :--- |
| **Content-Type** | Der Content-Type des Requests | String |
| **X-NETWORKID** | Hier wird die ID des Mandanten eingetragen. Wenn nur ein Mandant vorhanden ist oder mandantenübergreifend gearbeitet wird, muss der Wert “-1” eingetragen werden. | Integer |
| **X-AUTH-TOKEN** | Hier wird der API-Authentifizierungs-Token des Admin Nutzers hinterlegt. | String |
| **X-AUTH-ID** | Hier wird die ID des Admin Nutzers hinterlegt. | Integer |

---

### Body

> Im nachfolgenden werden die Standard-Parameter aufgelistet. Es ist aber über die API möglich, alle zur Verfügung stehenden Parameter zu updaten.

| Parameter | Erklärung | Datentyp | Pflichtfeld |
| :--- | :--- | :--- | :--- |
| **id** | Hier wird die Transaktionsid hinterlegt.<br>Aufbau: `"id":"ID"` | String | Ja (oder `ordertoken`) |
| **ordertoken** | Hier wird der Ordertoken hinterlegt.<br>Aufbau: `"ordertoken":"ORDERTOKEN"` | String | Ja (oder `id`).* |
| **campaign_id** | Hier wird die Campaign_id hinterlegt.<br>Aufbau: `"campaign_id":CAMPAIGN_ID` | Integer | Ja |
| **trigger_id** | Hier wird die Trigger ID hinterlegt.<br>Aufbau: `"trigger_id":TRIGGER_ID` | Integer | Nein, nur falls `ordertoken` genutzt wird. |
| **status** | Hier wird der Status hinterlegt.<br>**Werte:** `-5` (ausstehende Nachbuchung), `0` (offen), `1` (bestätigt), `2` (storniert) | Integer | Nein |
| **turnover** | Hier wird der Bestellwert der Transaktion in Kampagnenwährung hinterlegt.<br>Aufbau: `"turnover":TURNOVER` | Float | Nein |
| **original_turnover** | Hier wird der Bestellwert der Transaktion in Fremdwährung hinterlegt.<br>Aufbau: `"original_turnover":TURNOVER_IN_FREMDWÄHRUNG` | Float | Nein |
| **commission** | Hier wird die Provisionshöhe in Kampagnenwährung hinterlegt, falls Sie die Commission selbst berechnen möchten. | Float | Nein |
| **cancel_reason** | Übergeben Sie den Stornogrund.<br>Aufbau: `"cancel_reason":"Stornogrund"` | String | Nein |

**\*) Hinweis:** Wird der `ordertoken` genutzt, ist neben der `campaign_id` auch die `trigger_id` ein Pflichtfeld.

# Publisher Webservice

# Verwaltung von Projekten über die V6 REST-API

## Einleitung
Die V6 REST-API bietet Admins die Möglichkeit, Projekte effizient zu verwalten. Mit dem `/Projects`-Endpoint können Projekte erstellt, ausgelesen, bearbeitet und gelöscht werden. Zusätzlich können Projekte anhand verschiedener Parameter gefiltert werden.

## Endpoint
**Für Admins:**
`https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects`

---

## Parameter & Filter

### Erforderliche Parameter (bei POST und PUT)
| Parameter | Typ | Beschreibung |
| :--- | :--- | :--- |
| `title` | String | Titel des Projekts (Pflichtfeld) |
| `status` | Integer | Status des Projekts (Pflichtfeld) |
| `url` | String | URL des Projekts (Pflichtfeld) |

### Filteroptionen (bei GET)
Es kann nach allen Spalten der Tabelle `publisher.projects` gefiltert werden, z. B.:
* `id`
* `status`
* `publisher_id`
* `projecttype`
* `title`
* `url`
* `channel_id`
* `hidden`

**Beispiel für GET mit Filtern:**
```bash
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects?status=1&publisher_id=10"
```

---

## CRUD-Operationen

### GET: Abrufen von Projekten
Abrufen einer Liste von Projekten oder eines spezifischen Projekts anhand der `id`.

```bash
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects?id=5"
```

### POST: Erstellen eines neuen Projekts
```bash
curl -X POST -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" -d '{
  "title": "Neues Projekt",
  "status": 1,
  "url": "https://example.com"
}' "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects"
```

### PUT: Aktualisieren eines bestehenden Projekts
```bash
curl -X PUT -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" -d '{
  "id": 5,
  "title": "Geändertes Projekt",
  "status": 2,
  "url": "https://updated-example.com"
}' "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects"
```

### DELETE: Löschen eines Projekts
Löschen eines Projekts anhand der `id`.

```bash
curl -X DELETE -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Projects?id=5"
```

---

## Antworten (Responses)

### Erfolgreiche Antwort
```json
{
  "id": 5,
  "status": 1,
  "publisher_id": 10,
  "projecttype": "page",
  "title": "Projektbeispiel",
  "description": "Beschreibung des Projekts",
  "url": "https://example.com",
  "channel_id": 2,
  "project_identifier_string": "abc123",
  "reach": "1000",
  "statistic_type": "internal",
  "external_sources_entity_id": "-1",
  "trackingtemplate": "template",
  "kpi_whitelist": "kpi1,kpi2",
  "hidden": false,
  "login_type": "pub",
  "exclude_from_salary": 0,
  "default_project": false,
  "insert_timestamp": "2025-01-27T12:00:00"
}
```

### Fehlerhafte Anfrage
```json
{
  "error": "Missing required field: title"
}
```

## Hinweise zur Fehlerbehandlung
* Bei fehlenden Pflichtfeldern (`title`, `status`, `url`) wird ein entsprechender Fehler zurückgegeben.
* Ungültige oder nicht vorhandene `id` bei GET, PUT oder DELETE resultieren in einer leeren Antwort oder einer Fehlermeldung.

# Publisher-Verwaltung über die V6 REST-API

## Einleitung
Die V6 REST-API ermöglicht es Admins, Publisher anzulegen und deren Details auszulesen. Die Funktionalität beschränkt sich aktuell auf **CREATE** und **READ**-Operationen.

## Endpoint
**Für Admins:**
`https://SUBDOMAIN.de/ws/V6/admin/JSON/Publisher`

---

## CRUD-Operationen

### POST: Publisher erstellen (CREATE)
Erstellt einen neuen Publisher und fügt die entsprechenden Daten in die Tabellen `global.logins` und `global.login_settings` ein.

**Erforderliche Parameter:**
| Parameter | Typ | Beschreibung |
| :--- | :--- | :--- |
| `email` | String | Pflichtfeld, max. 255 Zeichen |
| `salutation` | String | Pflichtfeld, Werte: `mr` oder `mrs` |
| `prename` | String | Pflichtfeld, max. 255 Zeichen |
| `surname` | String | Pflichtfeld, max. 255 Zeichen |

**Optionale Parameter (Auszug):**
`company`, `street`, `zip`, `city`, `telephone`, `country` (ISO 3166 ALPHA-3), `billing_sepa_iban`, `companytype` (`un` oder `priv`), `language_interface` (Default: `DEU`), etc.

**Beispiel-Request:**
```bash
curl -X POST -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" -d '{
  "email": "max.mustermann@example.com",
  "salutation": "mr",
  "prename": "Max",
  "surname": "Mustermann",
  "company": "Musterfirma",
  "street": "Musterstraße 1",
  "zip": "12345",
  "city": "Musterstadt",
  "country": "DEU",
  "billing_sepa_owner": "Max Mustermann",
  "billing_sepa_iban": "DE12345678901234567890",
  "billing_sepa_bic": "GENODEF1M01",
  "language_interface": "DEU",
  "billing_mode": 1,
  "billing_media": 1,
  "country_billing": "DEU",
  "country_publisher": "DEU",
  "billing_limit": 50
}' "https://SUBDOMAIN.de/ws/V6/admin/JSON/Publisher"
```

**Erwartete Antwort:**
```json
{
  "id": 123,
  "name": "Max Mustermann",
  "email": "max.mustermann@example.com"
}
```

---

### GET: Publisher auslesen (READ)
Gibt die Details eines spezifischen Publishers oder eine Liste von Publishern zurück.

**Filteroptionen:**
Alle Felder der Tabelle können als Filter verwendet werden (z. B. `email`, `status`, `prename`, `surname`).

**Beispiel-Request (spezifische ID):**
```bash
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Publisher?id=123"
```

**Beispiel für GET mit Filtern:**
```bash
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" "https://SUBDOMAIN.de/ws/V6/admin/JSON/Publisher?status=1&prename=Max"
```

---

## Fehlerbehandlung

* **Fehlende Pflichtfelder (POST):**
    ```json
    { "error": "Missing required field: email" }
    ```
* **Publisher nicht gefunden (GET):**
    ```json
    { "error": "Publisher not found" }
    ```

# Externe API anbinden

Es ist möglich für jedes externe Programm eine API für das System einzubinden. Die APIs werden durch den Support freigeschaltet. Hierfür muss bitte eine E-Mail an die Support@easy-m.de geschrieben werden. Anschließend wird überprüft, ob die API zur Verfügung steht oder angebunden werden kann.

## Vorbereitung

Um eine API für die Kampagne zu hinterlegen, muss zuerst die Kampagne angelegt werden.

## Durchführung

Um eine API für eine Kampagne zu hinterlegen, muss auf das Kampagnen-Kontrollzentrum gewechselt werden. Anschließend muss zu dem Punkt “Verknüpfungen” navigiert werden:

[![image-20210208-150605.png](https://docs.easy-m.de/uploads/images/gallery/2026-05/scaled-1680-/image-20210208-150605.png)](https://docs.easy-m.de/uploads/images/gallery/2026-05/image-20210208-150605.png)

Dort werden alle für die Kampagne verfügbaren APIs angezeigt:

[![image-20210208-150802.png](https://docs.easy-m.de/uploads/images/gallery/2026-05/scaled-1680-/image-20210208-150802.png)](https://docs.easy-m.de/uploads/images/gallery/2026-05/image-20210208-150802.png)

Abschließend muss auf den Button “Neue Verknüpfung” geklickt werden, um die Daten, welche für die API benötigt werden, einzugeben.

## Externe API Zugänge

Um die API des externen Dienstleisters anzusprechen werden entsprechende Zugangsdaten benötigt. Wo diese Daten in den einzelnen Systemen des Dienstleisters zu finden sind, wird in den einzelnen Anleitungen erläutert.

# Werbemittel API

# Admedia API (V6) - POST (Create)

## Einleitung
Um Werbemittel nicht manuell, sondern durch einen automatisierten Prozess im easy.affiliate-System zu erstellen, stellt die easy Marketing GmbH eine Webservice-API bereit. Hierfür steht jedem User ein Authentifizierungs-Token und eine Login_id zur Verfügung. Der Authentifizierungs-Token sowie die Login_id werden dem User über das Frontend bereitgestellt.

**User-ID:** Wo ist die User-ID hinterlegt?

**Access-Token:** Wo ist der Access-Token hinterlegt?

**Endpoint für Admin:**

https://SUBDOMAIN.de/ws/V6/admin/JSON/Admedia

**Endpoint für Advertiser:**

https://SUBDOMAIN.de/ws/V6/advertiser/JSON/Admedia

---

### Beispiel mit cURL

```text
curl -X POST -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" -d "$EXAMPLE_JSON_DATA" <https://DOMAIN/ws/V6/admin/JSON/Admedia>
```
---

### Codebeispiel
Mit der folgenden Methode können Werbemittel erstellt werden. Ein Beispielaufruf sieht folgendermaßen aus:

**Headers:**

```text
Content-Type: application/json
X-Network-ID: -1
X-Auth-Token: ADMIN_APIUSER_TOKEN
X-Auth-ID: ADMIN_APIUSER_LOGIN_ID
```

**Body:**

```text
{
    "campaign_id": 1,
    "project_ids": [50012],
    "title": "Werbemittel Titel",
    "deeplink": "https://example.de/link",
    "category_id": 5,
    "mediatype": "text",
    "linktext": "Klicken Sie hier",
    "status": 1
}
```
---

## Variablenerläuterung

### Headers

| Variable | Bedeutung | Datentyp |
| :--- | :--- | :--- |
| **Content-Type** | Der Content-Type des Requests | String |
| **X-NETWORKID** | ID des Mandanten oder "-1" | Integer |
| **X-AUTH-TOKEN** | API-Authentifizierungs-Token des Admin Nutzers | String |
| **X-AUTH-ID** | ID des Admin Nutzers | Integer |

---

### Body

| Parameter | Erklärung | Datentyp | Pflichtfeld |
| :--- | :--- | :--- | :--- |
| **campaign_id** | ID der Kampagne | Integer | Ja |
| **project_ids** | Whitelist von Projekt-IDs | JSON-ARRAY | Nein |
| **title** | Titel des Werbemittels | String | Ja |
| **deeplink** | Deeplink des Werbemittels | String | Ja |
| **category_id** | ID der Kategorie | Integer | Ja |
| **click_tracking_getparameter** | Click Tracking Parameter | String | Nein |
| **valid_from** | Gültig ab Datum | String | Nein |
| **valid_until** | Gültig bis Datum | String | Nein |
| **mediatype** | Typ des Werbemittels (z.B. text, banner) | String | Ja |
| **linktext** | Linktext (nur bei mediatype = text) | String | Ja, wenn Typ “text” |
| **imageurl** | Bild-URL (nur bei mediatype = banner) | String | Ja, wenn Typ “banner” |
| **size_width** | Breite des Banners | String | Ja, wenn Typ “banner” |
| **size_height** | Höhe des Banners | String | Ja, wenn Typ “banner” |
| **status** | Status des Werbemittels | Integer | Ja |


---

### Response

Nach erfolgreicher Erstellung gibt die API folgende Informationen als JSON zurück:

- Werbemittel-ID: Integer

- Werbemittel-Titel: String

- Werbemittel-Kategorie: String

- View-Link: String

- Click-Link: String

- View-Link (Shortener): String 

- Click-Link (Shortener): String 

- Adcode: String

# Admedia API (V6) - GET (Read)

## Abfrage generierter Werbemittel über die V6 REST-API

Um eine einfache und effiziente Verwaltung der generierten Werbemittel zu gewährleisten, stellt die V6 REST-API eine Abfragefunktion zur Verfügung. Mit dieser Funktion können Nutzer relevante Daten zu den Werbemitteln und den zugehörigen Trackinglinks abrufen.

## Endpoint
**Für Admins:**
`<https://SUBDOMAIN.de/ws/V6/admin/JSON/Admedia>`

**Erforderliche Parameter:**
- `campaign_id`: ID der betreffenden Kampagne (Pflichtfeld)

- `project_id`: ID des betreffenden Projekts (Optional)

### Beispielaufruf mit cURL

```text
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" <https://DOMAIN/ws/V6/admin/JSON/Admedia?params[campaign_id]=1&params[project_id]=50001>
```

### Erwartete Antwort
Nach erfolgreichem Aufruf gibt die API die folgenden Informationen zu den Werbemitteln im JSON-Format zurück:

- **id**: ID des Werbemittels (Integer)

- **title**: Titel des Werbemittels (String)

- **campaign_id**: ID der zugeordneten Kampagne (Integer)

- **project_id**: ID des zugeordneten Projekts (Integer, falls angegeben)

- **clicklink**: Clicklink des Werbemittels (String)

- **viewlink**: Viewlink des Werbemittels (String)

- **adcode**: Javascriptcode/HTML-Code des Trackinglinks (String)

## Fehlerbehandlung
Bei fehlendem oder ungültigem `campaign_id` wird ein entsprechender Fehler zurückgegeben.

Bei nicht vorhandenen Daten für die angegebenen Parameter wird ein leerer Datensatz zurückgegeben.

# Basket API

# Basket Update API

## 📝 Einleitung

Zur automatischen Bearbeitung von Warenkörben, bieten wir eine Webservice-API an. Diese ermöglicht die nachträgliche Anpassung bereits existierender Warenkörbe. Jeder Nutzer erhält für den Zugriff einen Access-Token und eine User-ID, die über das Frontend bereitgestellt werden.

---

## 🔐 Authentifizierung
Für den Zugriff sind folgende Header erforderlich:

| Header | Beschreibung | Typ |
| :--- | :--- | :--- |
| **Content-Type** | Der Content-Type des Requests | String |
| **X-Network-ID** | Netzwerk-ID: meist `-1` für mandantenübergreifende API | Integer |
| **X-Auth-Token** | Dein Access-Token (im Frontend sichtbar) | String |
| **X-Auth-ID** | Deine User-ID (im Frontend sichtbar) | Integer |

---

## 📩 Endpunkte

* **Admin:** `https://SUBDOMAIN.de/ws/V6/admin/JSON/Baskets`
* **Advertiser:** `https://SUBDOMAIN.de/ws/V6/advertiser/JSON/Baskets`

---

## 🧪 Beispiel (cURL)

```bash
curl -X PUT -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: AUTH-TOKEN" -H "X-Auth-ID: USER-ID" -d '[{"basket_item_id": 76041, "amount": 2, "status": "0", "additional": {"variable1": "text", "variable2": 1}}]' https://SUB.DOMAIN.DE/ws/V6/admin/JSON/Baskets
```

---

### 🧾 Body-Parameter

| Parameter | Beschreibung | Datentyp | Pflichtfeld |
| :--- | :--- | :--- | :--- |
| **basket_item_id** | Eindeutige ID des Warenkorbelements | Integer | ✅ Ja |
| **amount** | Anzahl der Warenkorbelemente | Integer | Nein |
| **price** | Nettopreis des Warenkorbelements | Float | ✅ Nein |
| **status** | Status der Order: `0` = offen, `1` = bestätigt, `2` = storniert | Integer | ✅ Ja |
| **turnover** | Bestellwert in Kampagnenwährung | Float | ✅ Ja |
| **additional** | Zusätzliche Informationen zum Basket-Item | JSON | Nein |

## Beispiel Request

**Headers**

```bash
Content-Type: application/json
X-Network-ID: -1
X-Auth-Token: ACCESS-TOKEN
X-Auth-ID: USER-ID
```

**Body**

```bash
[
    {
            "basket_item_id": 76041, 
            "amount": 1, 
            "status": "1", 
            "additional": {
                "variable1": "text", 
                "variable2": 1
            }

```
---