Automatisierter Sales-Abgleich
Beim Sales-Abgleich gleichen Sie die getrackten Transaktionen mit Ihrem Shop- oder Warenwirtschaftssystem ab: Was bezahlt und behalten wurde, wird bestätigt, was storniert oder retourniert wurde, wird storniert. Diese Seite beschreibt den kompletten Ablauf, das Dateiformat und die drei Wege, auf denen die Ergebnisse zurück ins System kommen.
Überblick
Der Abgleich läuft immer in drei Schritten:
- Offene Transaktionen holen: als Datei aus der Transaktionsliste oder automatisch über die Daten-API.
- Abgleichen: in Ihrem System entscheiden, welche Transaktion bestätigt, storniert oder im Umsatz korrigiert wird.
- Ergebnis zurückspielen: per Upload, per SFTP oder per Webservice-API.
| Weg | Geeignet für | Automatisierbar | Ergebnis sehen Sie unter |
|---|---|---|---|
| Upload im Transaktionsimport | monatlichen oder wöchentlichen Abgleich von Hand | nein | Transaktionsimport, Historie |
| SFTP-Ordner „Sales-Abgleich“ | regelmäßige Dateien aus Ihrer Warenwirtschaft | ja, Abholung alle 15 Minuten | Transaktionsimport, Historie und ExternalSources Monitor |
| Webservice-API (PUT Orders) | direkte Anbindung Ihres Systems, auch einzelne Transaktionen | ja | Antwort des Aufrufs und Historie der Transaktion |
Alle drei Wege ändern nur bestehende Transaktionen. Neue Transaktionen legt keiner dieser Wege an, solange Sie die Transaktions-ID (id) mitgeben.
Die Abgleichsdatei
Für Upload und SFTP brauchen Sie eine CSV-Datei. Für die API gelten dieselben Felder, nur als JSON.
Diese Spalten reichen
| Spalte | Pflicht | Inhalt |
|---|---|---|
id |
ja | Transaktions-ID aus unserem System. Nicht Ihre Bestellnummer. Sie steht in jedem Export in der ersten Spalte. |
status |
ja | Neuer Status, siehe unten. |
turnover |
nein | Korrigierter Netto-Umsatz, zum Beispiel nach einer Teilretoure. Nur mitgeben, wenn er sich geändert hat. |
cancel_reason |
nein | Stornogrund als Freitext, zum Beispiel Retoure. Sinnvoll bei Status 2. |
Mehr ist für einen Abgleich nicht nötig. Die Provision müssen Sie nicht mitschicken, das System rechnet sie selbst (siehe Provision).
Status
| Wert | Bedeutung |
|---|---|
0 |
offen |
1 |
bestätigt |
2 |
storniert |
Statt der Zahl verstehen alle drei Wege auch die Wörter offen, bestätigt, storniert sowie open, confirmed, cancelled. Andere Werte werden abgewiesen.
Ausgezahlte Transaktionen (Status 3) sind abgerechnet und lassen sich über keinen der drei Wege mehr ändern. Setzen Sie Status 3 nie selbst, er entsteht bei der Auszahlung.
Provision
Lassen Sie die Spalte commission weg, rechnet das System die Provision auf allen drei Wegen selbst:
- Prozentuale Provision: Ändert sich der Umsatz, wird die Provision aus dem neuen Umsatz berechnet.
- Feste Provision: bleibt, wie sie ist.
- Warenkorb-Provision: wird bei Upload und SFTP im Verhältnis zum neuen Umsatz angepasst.
Eine Spalte commission brauchen Sie nur, wenn Sie bewusst einen festen Betrag setzen wollen, der von der Provisionsgruppe abweicht. Steht sie in der Datei, wird ihr Wert genau so übernommen, auch wenn sich der Umsatz geändert hat.
Format
- Die erste Zeile ist die Kopfzeile mit den Spaltennamen. Kein Titel, keine Beschreibung, keine Leerzeile darüber.
- Eine Zeile je Transaktion. Keine Summenzeile am Ende.
- Trennzeichen Semikolon
;, Textbegrenzer doppelte Anführungszeichen", Kodierung UTF-8. - Beträge als reine Zahl:
12,49oder12.49. Keine Währung, keinEUR, kein€in der Zelle. - Eine leere Zelle bedeutet „nicht ändern“. Wer nur den Status setzen will, lässt
turnoverleer oder die Spalte ganz weg. - Nur Transaktionen aufnehmen, die Sie tatsächlich entschieden haben. Offene, die offen bleiben, gehören nicht in die Datei.
Beispiel:
id;status;turnover;cancel_reason
4271510;1;;
4271509;2;;Retoure
4223190;1;89,90;
4223189;2;;Bestellung nicht bezahlt
Zeile 1 bestätigt, Zeile 2 storniert mit Grund, Zeile 3 bestätigt mit korrigiertem Umsatz, Zeile 4 storniert.
Weitere Spalten wie Publisher-Name oder Ihre eigenen Notizen stören nicht. Sie werden beim Upload einfach nicht zugeordnet. Beim SFTP-Weg werden nur die fest vorgegebenen Spalten gelesen (siehe Weg B).
Wenn Sie die Datei erzeugen lassen
Erstellt ein Skript, ein Export Ihrer Warenwirtschaft oder ein KI-Assistent die Datei, geben Sie genau diese Vorgaben mit: Kopfzeile id;status;turnover;cancel_reason in Zeile 1, Beträge ohne Währung, keine Kopf- oder Summenzeilen, nur entschiedene Transaktionen. Prüfen Sie die erste Datei einmal im Transaktionsimport (Weg A), bevor Sie auf SFTP oder API umstellen.
Schritt 1: Offene Transaktionen holen
In der Transaktionsliste
- Transaktionen → Transaktionsliste öffnen.
- Zeitraum wählen und unter Status & Typ auf Offen filtern, bei Bedarf zusätzlich nach Kampagne.
- Liste aktualisieren klicken.
- Unter Export die Variante Transaktionsabgleich wählen und als CSV herunterladen.

Der Export „Transaktionsabgleich“ enthält nur die Spalten, die für den Abgleich wichtig sind: id, status, timestamp, campaign_id, ordertoken, project_id, type, commission, trigger_id, turnover, order_currency, cancel_reason, dazu Projekt- und Kampagnenname. Die Bestellnummer aus Ihrem Shop steht in ordertoken, darüber finden Sie die Bestellung in Ihrem System.
Die Datei lässt sich direkt bearbeiten und wieder hochladen. Löschen Sie vorher die Spalte commission, wenn Sie Umsätze ändern. Sonst wird die alte Provision zurückgeschrieben, statt sie neu zu berechnen.
Automatisch über die Daten-API
Unter API → Daten-API steht derselbe Export als fester Link zur Verfügung, Zeile Transaktionsabgleich. Ihr System kann ihn regelmäßig abrufen, zum Beispiel jede Nacht.

https://<Ihre-Domain>/api/<ACCESS-TOKEN>/admin/<LOGIN-ID>/get-orders_small.csv?condition[l:status]=open&condition[period][from]=01.10.2026&condition[period][to]=31.10.2026
| Teil | Bedeutung |
|---|---|
<Ihre-Domain> |
die Adresse, unter der Sie sich anmelden |
<ACCESS-TOKEN> |
Ihr Access-Token, rechts auf der Seite Daten-API |
<LOGIN-ID> |
Ihre Login-ID |
.csv |
Format, alternativ .xlsx, .xml, .json |
condition[l:status] |
open, confirmed, canceled, paid, auch kombiniert: open,confirmed |
condition[period][from], [to] |
Zeitraum im Format TT.MM.JJJJ |
condition[l:campaigns] |
nur bestimmte Kampagnen, zum Beispiel 1 |
Am einfachsten stellen Sie die Filter oben auf der Seite Daten-API ein und kopieren den fertigen Link. Alle Filter: Transaktions-API.
Der Access-Token wirkt wie ein Passwort. Geben Sie Links mit Token nur an Personen und Systeme weiter, die diese Daten sehen dürfen.
Schritt 2: Ergebnis zurückspielen
Weg A: Upload im Transaktionsimport
Transaktionen → Transaktionsimport (bzw. Administration → Transaktionsimport).
1. Datei. „Transaktionen“ auswählen, die CSV hineinziehen, Trennzeichen Semikolon und Textbegrenzer doppelte Anführungszeichen stehen lassen, Datei einlesen. Eine Notiz wie „Abgleich Oktober“ hilft später in der Historie.

2. Zuordnung. Heißen Ihre Spalten wie oben beschrieben, ordnet das System sie selbst zu: id → Transaktions-ID, status → Status, turnover → Umsatz, cancel_reason → Stornogrund. Unter jedem Feld steht der Wert aus der ersten Datenzeile, damit Sie sofort sehen, ob die Spalte passt. Heißen Ihre Spalten anders, wählen Sie sie hier von Hand aus.
Entscheidend ist der Hinweis über dem Formular:
- blau, „Aktualisierung“: Die Transaktions-ID ist zugeordnet, bestehende Transaktionen werden geändert. So muss es beim Abgleich aussehen.
- grün, „Neuanlage“: Keine Transaktions-ID zugeordnet, jede Zeile würde als neue Transaktion angelegt. Dann fragt das System nach Projekt-ID, Trigger-ID, Bestellnummer und Zeitpunkt. Für einen Abgleich ist das falsch: Spalte
idprüfen.

3. Prüfung. Vor dem Import zählt das System, was passieren würde. Für einen Abgleich steht die Zahl unter Änderung, gültig, bei Neu steht 0. Abgelehnte Werte erscheinen als Tabelle mit Zeile, Feld, Wert und Hinweis. Die Vorschau zeigt die ersten Zeilen, filterbar nach Fehlern und Dubletten.

4. Import. Import starten schickt den Auftrag an den Importer, er beginnt innerhalb weniger Sekunden. Mit Zur Freigabe vorlegen wird der Auftrag erst ausgeführt, wenn ein zweites Konto ihn freigibt (Vier-Augen-Prinzip).
Danach steht der Auftrag in der Historie unter dem Formular. Ein Klick öffnet das Detail: Zahl der geänderten und übersprungenen Zeilen, jede abgelehnte Zelle mit Grund und ein Protokoll je Zeile mit dem Wert vorher und nachher. Dort sehen Sie für jede Transaktion, was der Abgleich geändert hat.
Mehr zum Transaktionsimport: Transaktionsabgleich / Conversion.
Weg B: SFTP
Für regelmäßige Dateien richten Sie sich einen eigenen SFTP-Zugang ein. Den Abgleich übernimmt danach das System.
- Integrations → SFTP-Uploads öffnen und oben rechts die Kampagne wählen.
- Zugang einrichten. Das System legt den Zugang und die Ordner an und zeigt Host, Port, Benutzername und Passwort. Das Passwort wird nur dieses eine Mal angezeigt, speichern Sie es sofort in einem Passwortmanager. Ein neues lässt sich jederzeit erzeugen, das alte wird dabei sofort ungültig.
- Ihre Abgleichsdatei in den Ordner
/order_abgleich_import/hochladen.
Alle 15 Minuten holt das System neue Dateien aus dem Ordner, importiert sie und verschiebt sie danach nach done/. Jede Datei erscheint als eigener Auftrag in der Historie des Transaktionsimports, mit denselben Details wie bei Weg A.
Unterschiede zum Upload:
- Es gibt keinen Zuordnungsschritt. Die Spalten müssen genau so heißen:
id,status,turnover,cancel_reason, optionalcommissionunddescription. - Trennzeichen ist immer das Semikolon, Textbegrenzer immer das doppelte Anführungszeichen.
- Ohne Spalte
commissionrechnet das System die Provision wie beim Upload.
Der Ordner /order_tracking_import/ ist für neue Transaktionen gedacht, nicht für den Abgleich. Eine Datei mit Spalte id gehört immer nach /order_abgleich_import/.
Weg C: Webservice-API
Mit der API ändert Ihr System Transaktionen direkt, einzeln oder viele auf einmal, ohne Datei.
Ändern oder neu anlegen? Das entscheidet die HTTP-Methode:
| Methode | Wirkung |
|---|---|
PUT |
ändert bestehende Transaktionen. Legt nie eine neue an. |
POST |
legt neue Transaktionen an, siehe Create Orders. |
Für den Abgleich nutzen Sie ausschließlich PUT.
Zugang
| Angabe | Wert |
|---|---|
| URL | https://<Ihre-Domain>/ws/V6/admin/REST/Orders |
| Methode | PUT |
Content-Type |
application/json |
X-Auth-ID |
Login-ID Ihres Admin-Benutzers |
X-Auth-Token |
Access-Token dieses Benutzers, zu finden unter API → Daten-API |
X-Network-ID |
-1 (bzw. die ID Ihres Mandanten, wenn Sie mehrere haben) |
Mit einem Advertiser-Login lautet die URL https://<Ihre-Domain>/ws/V6/advertiser/REST/Orders, Login-ID und Access-Token sind dann die des Advertiser-Logins. Ein Advertiser-Login ändert nur Transaktionen der eigenen Kampagnen, ein Admin-Login mit Mandant nur die seines Mandanten.
Legen Sie für die Anbindung am besten einen eigenen Benutzer an, zum Beispiel „Salesabgleich API“. Dann ist in der Historie jeder Transaktion zu sehen, dass die Änderung aus der Anbindung kam.
Aufruf
curl -X PUT "https://<Ihre-Domain>/ws/V6/admin/REST/Orders" \
-H "Content-Type: application/json" \
-H "X-Auth-ID: <LOGIN-ID>" \
-H "X-Auth-Token: <ACCESS-TOKEN>" \
-H "X-Network-ID: -1" \
-d '[
{ "id": 4271510, "status": 1 },
{ "id": 4271509, "status": 2, "cancel_reason": "Retoure" },
{ "id": 4223190, "status": 1, "turnover": 89.90 }
]'
| Feld | Pflicht | Inhalt |
|---|---|---|
id |
ja | Transaktions-ID |
status |
ja | 0, 1 oder 2 |
turnover |
nein | korrigierter Netto-Umsatz als Zahl mit Punkt, zum Beispiel 89.90 |
cancel_reason |
nein | Stornogrund |
commission |
nein | nur für einen bewusst festen Betrag, siehe Provision |
Schicken Sie nur diese Felder. Eine campaign_id ist nicht nötig, die id reicht. Große Abgleiche teilen Sie auf mehrere Aufrufe auf.
Antwort: Woran Sie sehen, dass alles angekommen ist
Die Antwort enthält in data jede Transaktion, die geändert wurde, mit ihrem neuen Stand:
{
"data": [
{ "id": 4271510, "status": 1, "turnover": 19.99, "commission": 5, "cancel_reason": null, "status_change_date": "2026-10-28T14:50:44+00:00", ... },
{ "id": 4271509, "status": 2, "turnover": 19.99, "commission": 5, "cancel_reason": "Retoure", ... },
{ "id": 4223190, "status": 1, "turnover": 89.9, "commission": 8.99, ... }
]
}
- Gleichen Sie die IDs in der Antwort mit den gesendeten ab. Eine Transaktion, die in
datafehlt, wurde nicht geändert: Die ID gibt es nicht, die Transaktion ist bereits ausgezahlt, sie gehört nicht zu Ihren Kampagnen, oder der Status war ungültig. In einer Liste meldet die API dafür keinen Fehler, die Zeile fehlt einfach. Schicken Sie ein einzelnes Objekt statt einer Liste, antwortet die API in diesen Fällen mit"error": true. status,turnoverundcommissionin der Antwort sind die Werte, die jetzt im System stehen. Hier sehen Sie auch, ob die Provision neu berechnet wurde.status_change_datesetzt das System selbst, sobald sich der Status ändert.- Bei falschen Zugangsdaten kommt
{"error": true, "message": "Authentification failed."}.
Testen Sie die Anbindung zuerst mit einer einzigen Transaktion und prüfen Sie das Ergebnis in der Transaktionsliste, bevor Sie den ganzen Abgleich schicken.
Weitere Felder und Beispiele: Update Orders.
Häufige Fehler
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
| „Es wurde nur eine Spalte erkannt“ und „Für die Neuanlage fehlen: Kampagnen-ID, Projekt-ID …“ | Über der Kopfzeile stehen Titel, Beschreibung oder Leerzeilen, oder das Trennzeichen stimmt nicht. | Alles über der Kopfzeile löschen. Trennzeichen im Schritt Datei prüfen. |
| Hinweis „Neuanlage“ statt „Aktualisierung“ | Die Spalte mit der Transaktions-ID fehlt oder heißt anders. | Spalte id nennen oder im Schritt Zuordnung bei Transaktions-ID auswählen. |
| Betrag abgelehnt: nicht als Zahl lesbar | Währung oder Text in der Zelle, zum Beispiel 12,49 EUR. |
Nur die Zahl eintragen. |
| Letzte Zeile ungültig | Summenzeile wie „Gesamt“ am Ende der Datei. | Summenzeile entfernen. |
| Provision hat sich geändert, obwohl nur der Status geändert werden sollte | Die Spalte commission aus dem Export wurde mitgeschickt. |
Spalte commission vor dem Upload löschen. |
| Provision bleibt alt, obwohl der Umsatz geändert wurde | Die Spalte commission aus dem Export enthält noch den alten Wert. |
Spalte commission vor dem Upload löschen. |
| Transaktion wurde nicht geändert | Sie ist bereits ausgezahlt (Status 3), oder die ID stimmt nicht. | ID in der Transaktionsliste suchen. Ausgezahlte Transaktionen korrigiert der Support. |
So sieht der Transaktionsimport aus, wenn über der Kopfzeile noch Text steht:

Fragen
Für Abgleiche, die über diese Wege hinausgehen, etwa ein Abruf direkt aus Ihrem Warenwirtschaftssystem oder ein festes Dateiformat, das Sie nicht ändern können, schreiben Sie an support@easy-m.de. Wir richten die passende Strecke mit Ihnen ein.
No comments to display
No comments to display