Aus dem Englischen übersetzt. Bei Abweichungen gilt die englische Seite. Auf Englisch lesen

Einen Kanal verbinden

Lass Händler eBay, Shopify, Etsy und weitere Kanäle aus deiner App oder deinem Agenten verbinden: OAuth-Links, Kanäle mit API-Schlüssel, Rückkehr-URLs und Trennen.

POST /channel_connections führt denselben Verbindungsablauf aus wie das Nembol-Dashboard, auf dem nächsten freien Platz für diesen Kanal. Ein zweites eBay-Konto wird zu einem zweiten Kanalkonto. Dein Schlüssel braucht den Scope channels:connect.

Bei eBay, Etsy, Shopify, WooCommerce, TikTok Shop, Temu, Amazon, Google Merchant Center, Facebook Catalog, Square, Squarespace, Faire, Wix, Facebook, Pinterest und Tumblr muss sich der Händler beim Kanal anmelden und Nembol autorisieren. Du erhältst einen Einmal-Link, der 1 Stunde gültig ist:

curl -X POST https://api.nembol.com/rest/v1/channel_connections \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"channel": "shopify", "params": {"shop": "acme-vintage"},
       "return_url": "https://app.example.com/nembol/callback?user=42"}'
{
  "id": "conn_66f0a1",
  "object": "channel_connection",
  "status": "pending",
  "connect_url": "https://api.nembol.com/rest/v1/connect/…",
  "expires_at": "2026-10-07T16:00:00.000Z"
}

Öffne connect_url im Browser des Händlers. Wenn er fertig ist, landet er auf deiner return_url, an deren Query-String das Ergebnis angehängt ist:

https://app.example.com/nembol/callback?user=42&connection_id=conn_66f0a1&status=connected&channel_account_id=chac_6aa12cab

Auch ein Link, der nicht verwendet werden kann, führt zurück zu deiner return_url: abgelaufen (status=expired&error=link_expired), bereits verwendet (der aktuelle status und error=link_already_used) oder abgelehnt (status=failed und der Grund, z. B. plan_not_eligible). Zeig deine eigene Meldung an und erstelle bei Bedarf einen neuen Link. Der Verkäufer sieht nie eine Nembol-Fehlerseite.

Verlass dich nicht nur auf den Query-String. Bestätige das Ergebnis mit GET /channel_connections/{id} (connected / failed / expired) oder über den Webhook channel_account.connected.

KI-Agenten und Skripte: Lass return_url weg. Der Händler landet auf einer Nembol-Seite, die ihm sagt, dass er den Tab schließen kann, und der Agent fragt die Verbindung ab.

Registriere zuerst deine Rückkehr-URLs

return_url muss mit einer URL beginnen, die für den Shop registriert ist. Das verhindert, dass der Login-Ablauf von Nembol genutzt wird, um Personen auf beliebige Websites zu schicken:

curl -X POST https://api.nembol.com/rest/v1/redirect_urls \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://app.example.com/nembol/callback"}'

Gleicher Origin plus ein Pfad, der mit dem registrierten beginnt, gilt als Treffer; jeder Query-String ist erlaubt. Der Händler kann die Liste auch unter Einstellungen → Entwickler → Weiterleitungs-URLs verwalten.

Kanäle mit API-Schlüsseln: sofort verbinden

Kaufland, OnBuy, PrestaShop und Subito werden mit Zugangsdaten verbunden, und die Antwort ist bereits connected oder failed:

curl -X POST https://api.nembol.com/rest/v1/channel_connections \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"channel": "kaufland", "params": {"client_key": "…", "secret_key": "…"}}'

Die Schlüssel werden an den Kanal weitergegeben und nie in der Verbindung gespeichert.

Kanäle, die fragen, welches Konto verbunden werden soll

Amazon, Google Merchant Center und Facebook Catalog werden wie die anderen über einen Link verbunden. Nach dem Login hat der Verkäufer eventuell mehrere Konten zur Auswahl (mehrere Merchant-Center-Konten, mehrere Unternehmen). Die Verbindung wird dann needs_choice, ihre choices listen die Optionen auf, und du schließt sie mit POST /channel_connections/{id}/choose und dem gewählten value ab. Gibt es nur eine Option, wählt Nembol sie aus und die Verbindung ist direkt connected.

Trennen

curl -X POST https://api.nembol.com/rest/v1/channel_accounts/chac_6aa12cab/disconnect \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Das Trennen beendet jede Synchronisierung mit diesem Konto und lässt sich über die API nicht rückgängig machen (zum erneuten Verbinden braucht es wieder den Login des Händlers). Daher wird zuerst eine Bestätigung verlangt:

  1. Die erste Anfrage antwortet mit 409 confirmation_required, einer Beschreibung der Folgen und einem confirmation.token.
  2. Zeig dem Händler die Folgen. Wenn er zustimmt, wiederhole dieselbe Anfrage mit dem Header Nembol-Confirmation: <token>. Der Token funktioniert einmal und läuft nach 10 Minuten ab.

Siehe Bestätigungen und Rückgängigmachen.

Nach dem Verbinden: Importe und Sync-Schalter

Über die API importiert eine neue Verbindung nichts: Der Katalog gehört deiner App. Fordere beim Erstellen der Verbindung an, was du brauchst:

OptionStandardWas sie bewirkt
import_productsfalseImportiert den Katalog des Kanals nach dem Verbinden in Nembol. Der Import ist eine normale Operation: Ihre ID ist die import_operation_id der Verbindung; verfolge sie mit GET /operations/{id} und mach sie mit POST /imports/{id}/undo rückgängig
import_ordersfalseHolt außerdem die Bestellungen, die der Shop schon vor dem Verbinden hatte (ein einmaliger Abruf)

Neue Bestellungen werden ab dem Moment synchronisiert, in dem das Konto verbunden ist, unabhängig von deiner Wahl. (Das Dashboard importiert immer beides: Der Verkäufer will seinen Shop sofort sehen.) Du kannst auch später mit POST /imports importieren.

Bei einem neu verbundenen Konto ist jeder Sync-Schalter aus: Änderungen in Nembol erreichen den Kanal nicht, und Verkäufe auf dem Kanal ändern den Bestand anderswo nicht, bis du sie mit PATCH /channel_accounts/{id} einschaltest. Siehe Ein Produkt bearbeiten: Was die Kanäle erreicht.

eBay: Geschäftsrichtlinien

Um auf eBay zu veröffentlichen, muss das Konto die eBay-Geschäftsrichtlinien (Business Policies) verwenden (jedes Angebot enthält Versand-, Zahlungs- und Rücknahmerichtlinien). Die meisten Verkäufer tun das bereits. Das Verbinden ändert daran nie etwas, denn die Anmeldung stellt das eBay-Konto des Verkäufers dauerhaft um. Ist das Konto nicht angemeldet, lehnt eBay die erste Veröffentlichung ab; aktiviere es ausdrücklich, mit dem Einverständnis des Verkäufers:

curl -X POST https://api.nembol.com/rest/v1/channel_accounts/chac_6aa12cab/enable_business_policies \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Dafür ist die zweistufige Bestätigung nötig. Die Antwort ist ready (Richtlinien gesetzt, Veröffentlichen funktioniert) oder pending (eBay migriert das Konto: ruf in ein paar Minuten erneut auf). Ein bereits angemeldetes Konto antwortet mit ready und nichts ändert sich.

Trennen und denselben Shop erneut verbinden

Ein getrenntes Konto behält seinen Platz mit dem Namen seines letzten Shops, damit seine Angebote es wiederfinden. Das nächste POST /channel_connections für diesen Kanal bringt es zurück: Die Antwort enthält reconnects_shop (den Shop, den es hatte), und der Verkäufer meldet sich bei genau diesem Shop an.

  • Um stattdessen einen anderen Shop zu verbinden, sende "new_account": true: Er belegt einen neuen Platz.
  • Meldet sich der Verkäufer ohne new_account bei einem anderen Shop an, schlägt die Verbindung mit different_channel_account fehl und nichts ändert sich.

Einen abgelaufenen Login erneut verbinden

Ein Marktplatz-Login kann ablaufen oder widerrufen werden (ein geändertes Passwort, eine auf dem Kanal entfernte App). Das Konto zeigt dann Fehler an und synchronisiert nicht mehr. Um das ohne Dashboard zu beheben, verbinde genau dieses Konto erneut:

curl -X POST https://api.nembol.com/rest/v1/channel_connections \
  -H "Authorization: Bearer $NEMBOL_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"channel_account_id": "chac_6aa12cab",
       "return_url": "https://app.example.com/nembol/callback"}'

Es funktioniert wie eine neue Verbindung (eine connect_url für den Verkäufer, danach return_url), mit drei Unterschieden:

  • Das Konto behält seine ID (chac_…) und jedes damit verknüpfte Angebot; es wird kein neues Kanalkonto angelegt und kein freier Platz benötigt.
  • Meldet sich der Verkäufer bei einem anderen Shop oder Konto an als dem, das erneut verbunden wird, ändert sich nichts und die Verbindung schlägt mit different_channel_account fehl.
  • channel ist optional; wenn du es sendest, muss es der Kanal des Kontos sein.

Dieselben Regeln wie im Dashboard

Die API nutzt den Verbindungsablauf des Dashboards selbst, daher gilt jede Nembol-Regel. Nichts, was eine Integration tut, kann über das hinausgehen, was der Händler in Nembol tun könnte:

  • Ein Marktplatzkonto, ein Nembol-Shop. Ein eBay-Konto (Etsy, Shopify…), das bereits mit irgendeinem Nembol-Shop verbunden ist, lässt sich nicht erneut verbinden; die Verbindung endet mit failed und der Meldung des Kanals.
  • Aktives Abonnement erforderlich, geprüft wie im Dashboard (einschließlich einer Live-Prüfung beim Zahlungsanbieter): andernfalls 402 subscription_inactive.
  • Das Konto, über das der Shop Nembol bezahlt (Abrechnung über Shopify, WooCommerce oder Wix), kann nicht getrennt werden: 422 channel_not_disconnectable.
  • Beim Öffnen des Links wird alles erneut geprüft. Wurde der Platz inzwischen belegt, hat sich der Plan geändert oder ist das Abonnement ausgelaufen, wird der Link abgelehnt und die Verbindung endet mit failed.

Stolperfallen

  • Ein Link, eine Verwendung. Ein geöffneter oder abgelaufener Link lässt sich nicht wiederverwenden. Erstelle eine neue Verbindung.
  • Abgelaufener Login vs. getrenntes Konto. Ein Konto, dessen Login abgelaufen ist, existiert weiterhin: Verbinde es mit channel_account_id erneut (es behält seine ID). Ein getrenntes Konto kommt mit der nächsten Verbindung dieses Kanals zurück (gleicher Platz und gleiche Angebote, eine neue chac_-ID: Die alte ID antwortet mit 404 channel_account_not_found, und seine Angebote tragen jetzt die neue ID in channel_account_id); siehe oben.
  • Etsy, zweiter Shop: Der Händler muss auf etsy.com vom ersten Shop abgemeldet sein, bevor er den Link öffnet, sonst meldet Etsy ihn wieder beim selben Shop an.
  • Plätze sind begrenzt. Jeder Kanal hat eine begrenzte Anzahl an Konten pro Shop: 422 channel_slots_full bedeutet, dass du zuerst eines trennen musst.
  • Plan-Limits gelten wie im Dashboard: 403 plan_channel_not_included, wenn der Plan den Kanal nicht enthält.
  • Kein automatischer Import über die API. Eine im Dashboard erstellte Verbindung startet den üblichen ersten Import; eine über die API erstellte importiert nur, was import_products / import_orders anfordern.

Zuletzt aktualisiert am 20. Oktober 2026

Brauchst du Hilfe?

Schreib uns, und ein Mensch antwortet, meist innerhalb eines Werktags.

Auf dieser Seite