Skip to main content

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)

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

🧾 Body-Parameter

ParameterBeschreibungDatentypPflichtfeld
ordertokenEindeutiger Identifier für die Order. Muss systemweit eindeutig sein. Wird kein Wert übergeben, generiert das System automatisch einen (AUTOID_…). Aliasse: token, bestid.String✅ Ja
campaign_idID der Kampagne, der die Order zugeordnet wird. Kann alternativ über emid, vc, admedia_id oder advertiser_id aufgelöst werden.Integer✅ Ja
trigger_idID des Triggers, der bei Nutzung von ordertoken zwingend angegeben werden muss. Alternativ per trigger_title. Alias: eventid.Integer✅ Ja
statusStatus der Order: 0 = offen, 1 = bestätigt, 2 = storniert. (Bei der Anlage immer 0 – Statusänderung erfolgt über den PUT-Endpoint.)Integer✅ Ja
turnoverBestellwert in Kampagnenwährung. Komma und Punkt als Dezimaltrenner erlaubt. Alias: preis.Float✅ Ja
original_turnoverBestellwert in Fremdwährung.FloatNein
commissionProvisionswert in Kampagnenwährung. Kann übergeben werden, falls selbst berechnet. Wert "autocalculate" berechnet bei dynamischen Triggern automatisch aus turnover × trigger_value.FloatNein
cancel_reasonAngabe eines Stornogrundes bei Status = 2 (storniert).StringNein
currencyBestellwährung als 3-stelliger ISO-Code (z. B. EUR, CHF). Default = Kampagnen-Einstellung, sonst EUR. Umrechnungskurs wird automatisch gesetzt.StringNein
descrFreitext-Beschreibung der Order (max. 255 Zeichen). Alias: beschreibung.StringNein
trigger_tstampBestellzeitpunkt als Unix-Timestamp. Akzeptiert auch Apache-Log-Format bzw. eine 24-stellige Mongo-ObjectId (wird umgerechnet). Fehlt der Wert, wird die aktuelle Zeit genutzt.IntegerNein
emidKlick-/Action-ID aus dem Tracking (24-stellig hex). Dient der Klick-Zuordnung und kann die campaign_id auflösen.StringNein*
admedia_idWerbemittel-ID. Ergänzt project_id-Tracking und löst die campaign_id auf.IntegerNein*
advertiser_idAdvertiser-ID zur Fallback-Kampagnen-Auflösung bzw. Session-Zuordnung.IntegerNein*
vcGutscheincode-Tracking: löst Kampagne/Werbemittel über die Admedia-Einstellungen auf.StringNein*
project_idDirekte Zuordnung per Projekt (Publisher). Erzeugt eine Track-Action, sofern eine Connection zur Kampagne besteht.IntegerNein*
publisher_idWird intern zu project_id aufgelöst.IntegerNein*
trackidTrack-/Session-ID zur Zuordnung (24-stellig hex).StringNein*
actionidExplizite Action-ID zur Session-Auflösung (24-stellig hex).StringNein*
pvidPost-View-ID (24-stellig hex), wird als trackid verwendet.StringNein*
trsSession-ID (24-stellig hex); sonst aus dem Cookie.StringNein*
forcedTrackIdErzwingt eine bestimmte trackid.StringNein
click_timestampKlickzeitpunkt (Unix-Timestamp) bei project_id-Tracking.IntegerNein
clickOverwritesVoucherLässt bei Gutscheincode-Tracking einen echten Klick den Voucher-Fallback überschreiben.FlagNein
sourceWert fp markiert die Conversion als Fingerprint-Tracking.StringNein
ezActivateFingerprintTrackingAktiviert Fingerprint-Tracking für den Request.BoolNein
ident_suffixSuffix, das an die Tracking-Identifikation (source) angehängt wird.StringNein
subidAttributionswert (SubID), wird am Auftrag gespeichert (max. 500 Zeichen).StringNein
sub_statusSubstatus der Order (frei belegbar).StringNein
hide_orderWert 1 legt die Order versteckt an (visibility = 0).IntegerNein
visibilitySichtbarkeit direkt setzen: 0 (versteckt) oder 1 (sichtbar).IntegerNein
lifetimeSetzt die Klick-/Cookie-Mindestlaufzeit auf „unbegrenzt" und qualifiziert damit auch ältere Klicks.BoolNein
blockTagsUnterdrückt das Ausführen der Order-Tags/Pixel in der Antwort.FlagNein
trackingTestWert true = Testmodus; die Order wird nach data.orders_trackingtest statt in den Echtbestand geschrieben.BoolNein
tAntwortformat: json, js, img oder exec_tags_only. Alias über mode (1 = js, 2 = img).StringNein
get_parametersObjekt { "key": "value", … } mit beliebigen Zusatzfeldern (z. B. voucher, coupon). Wird vor dem Tracking flach aufgelöst und am Auftrag gespeichert.ObjectNein
(beliebiger Key)Jeder weitere, nicht reservierte Parameter wird als Key/Value am Auftrag gespeichert (orders_getparameter, Key max. 25 Zeichen). Arrays landen als key[subkey].StringNein

* Kampagnen-/Klick-Zuordnung: campaign_id ist Pflicht, kann aber alternativ über emid, vc, admedia_id oder advertiser_id aufgelöst werden. Für die Zuordnung zur ursprünglichen Klick-/View-Aktion sollte eine der Attributions-Methoden (emid, trackid, actionid, pvid, trs, project_id/publisher_id, vc) mitgegeben werden.

Reservierte Keys (werden nicht als Custom-Parameter gespeichert): prid, bestid, beschreibung, preis, lead, sale, js, currency, campaign_id, project_id, pid, trigger_id, token, descr, turnover, t, eventid, nwtrack, json, callback, _url, emid, actionid, trackid, subid, pvid, _.

Dublettenschutz: Dieselbe Kombination aus campaign_id + trigger_id + ordertoken wird innerhalb von 60 Sekunden abgelehnt (ORDER_EXISTS / ORDER_REQUEST_FREEZED). Der Vergleichsschlüssel ist per Kampagnen-Setting order_constraint_key umstellbar (emid, sessionid, ordertoken_projectid).

📘 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.