Aus dem Englischen übersetzt. Bei Abweichungen gilt die englische Seite. Auf Englisch lesen
Fehler
Das Fehlerformat, jeder Fehlercode und was jeweils zu tun ist.
Jede Fehlerantwort hat dieselbe Struktur:
{
"error": {
"type": "invalid_request_error",
"code": "photo_required_for_channel",
"message": "Product 66a1… has no images: channel \"etsy\" requires at least one image. Add an image, then publish again.",
"param": null,
"doc_url": "https://developers.nembol.com/docs/getting-started/errors#photo_required_for_channel"
},
"request_id": "req_9f83…"
}type: eine von vier Familien (siehe unten). Verzweige danach für deine Wiederholungslogik.code: stabiler, maschinenlesbarer String. Verzweige danach für eine gezielte Behandlung.message: für Menschen lesbar, auf Englisch, sagt dir, wie du das Problem behebst. Parse sie nie.param: das betroffene Feld bei Validierungsfehlern (z. B.variants[2].price).request_id: gib sie an, wenn du den Support kontaktierst.
Fehlertypen
Häufige Codes
| Code | HTTP | Bedeutung |
|---|---|---|
invalid_api_key | 401 | Schlüssel fehlt, ist fehlerhaft, widerrufen oder rotiert |
insufficient_scope | 403 | Dem Schlüssel fehlt der Scope für diesen Endpoint |
plan_not_eligible | 403 | Der Plan des Shops enthält keinen API-Zugang (in der Testphase: nur Test-Schlüssel funktionieren) |
product_not_found / order_not_found / variant_not_found / listing_not_found / action_not_found / operation_not_found / event_not_found / import_not_found / channel_account_not_found / channel_connection_not_found / ignored_listing_not_found / webhook_endpoint_not_found / redirect_url_not_found / promotion_not_found / discount_not_found / bundle_not_found / notification_not_found | 404 | Keine solche Ressource in diesem Shop. listing_not_found erscheint auch pro Eintrag in Batch-Ergebnissen für Angebote |
validation_failed | 422 | Siehe param und message |
invalid_json | 400 | Der Body ist kein gültiges JSON (ein fehlendes Anführungszeichen, Komma oder eine fehlende Klammer). Nichts wurde gelesen oder geändert |
payload_too_large | 413 | Der Body ist größer als 25 MB. Sende Bilder als URLs oder über POST /files, oder teile den Batch auf |
unsupported_encoding | 415 | Zeichensatz oder Kodierung des Bodys werden nicht unterstützt. Sende UTF-8-JSON (gzip ist in Ordnung) |
subscription_inactive | 402 | Das Nembol-Abo des Shops ist nicht aktiv: Kanäle können weder verbunden noch getrennt werden (POST /channel_connections, POST /channel_accounts/{id}/disconnect). Derselbe Code kann beim Öffnen des Links auch an return_url ankommen |
photo_required_for_channel | 422 | Ein Produkt ohne Bilder wird auf einem Kanal veröffentlicht, der Bilder verlangt |
billing_managed_by_nembol | 409 | Ein Abrechnungslink bei einem Shop, der direkt von Nembol abgerechnet wird (billing_source: "manual"): Änderungen laufen über billing@nembol.com |
no_items_applied | 422 | POST /inventory/batch und POST /products/batch: Kein Eintrag konnte angewendet werden (jede SKU unbekannt, mehrdeutig oder auf einem Produkt, das Aufmerksamkeit erfordert, oder ungültig). Gründe in error.details.rejected_items; nichts wurde geändert |
image_unreachable | 422 | Eine Bild-url konnte nicht heruntergeladen werden (der Host hat abgelehnt oder die URL ist falsch; param sagt, welches Bild). Verwende eine öffentliche URL oder sende die Datei als base64 |
channel_not_connected | 422 | Veröffentlichen/Delisten oder eine Aktion auf einem Kanal, den der Shop nicht verbunden hat |
not_supported_for_channel | 422 | Dieser Endpoint funktioniert nur für einige Kanäle. Die Meldung nennt sie |
setting_not_supported | 422 | Diese Einstellung gibt es bei diesem Kanalkonto nicht. Sein Array writable listet, was geändert werden kann |
trial_publish_limit | 403 | Das Veröffentlichungslimit der Testphase auf diesem Kanal ist erreicht. Auch pro Eintrag in Batch-Ergebnissen für Angebote. Schließe ein Abo ab, um mehr zu veröffentlichen |
sku_not_found / sku_ambiguous | 422 | Batch-Eintrag abgelehnt (/inventory/batch, /products/batch): unbekannte SKU oder eine SKU auf mehr als einer Variante (error.details.product_ids listet sie; nichts wurde geschrieben). Behebe das Duplikat oder aktualisiere per ID |
images_unsupported_on_batch_update | pro Eintrag | Der Batch-Eintrag passte zu einem bestehenden Produkt, hat aber images gesendet. Aktualisiere seine Bilder mit PATCH /products/{id} |
file_too_large / unsupported_file_type | 422 | Ein Bild (POST /files oder images[] als base64 oder url) ist größer als 10 MB oder kein JPEG, PNG, WebP oder GIF, z. B. eine URL, die eine HTML-Seite liefert. param sagt, welches Bild |
idempotency_key_reused | 409 | Derselbe Idempotency-Key mit einem anderen Payload |
idempotency_key_in_flight | 409 | Der erste Request mit diesem Idempotency-Key läuft noch. Versuche es gleich noch einmal |
precondition_failed | 412 | expected_updated_at stimmte nicht überein. Lies neu und versuche es erneut |
product_still_listed | 422 | Löschen abgelehnt: Das Produkt hat noch live geschaltete Angebote. Delist zuerst |
order_not_fulfillable | 422 | Die Bestellung ist storniert/erstattet und kann nicht als versendet markiert werden |
channel_notification_unsupported | 422 | Dieser Kanal kann keine Versandbenachrichtigungen empfangen. Versuche es erneut mit notify_channel: false |
overrides_not_supported | 422 | Bei einem Angebot können vorerst nur overrides.title / overrides.description gesetzt werden. Ein leerer Body synchronisiert neu |
listing_not_delistable | 422 | Importierte/verknüpfte Angebote gehören dem Kanal |
listing_operation_in_progress | 409 | Warte auf die laufende Operation und versuche es dann erneut |
not_started | pro Eintrag | Ergebnis einer Operation: Der Kanal-Job konnte nicht starten, weil eine andere Operation das Angebot übernommen hat. Versuche es erneut |
no_price / price_below_minimum | pro Eintrag | Ergebnis einer Preisanpassung: Das Produkt hat keine Varianten mit Preis, oder der neue Preis läge unter dem Minimum. Für dieses Produkt wurde nichts geändert |
channel_error | n/a | (in issues[] eines Angebots) Der Kanal hat den letzten Schreibvorgang abgelehnt. Die Meldung ist der Fehler des Kanals. Filtere mit error_contains |
import_not_supported | 422 | Von diesem Kanal können keine Produkte importiert werden |
import_already_running | 409 | Ein Import von diesem Kanalkonto oder ein CSV-Import ist bereits eingereiht oder läuft. Warte, bis er abgeschlossen ist |
import_still_running / import_already_undone | 409 | Import rückgängig machen: Der Import ist noch nicht abgeschlossen oder wurde bereits rückgängig gemacht |
promotion_reaches_nothing | 422 | Aktionen: Keines der Produkte ist auf den gewählten Kanälen gelistet, die Aktion würde also nichts rabattieren. Veröffentliche sie zuerst oder speichere die Aktion als Entwurf |
promotion_conflict | 409 | Einige Produkte sind bereits in einer anderen laufenden Aktion. Siehe error.details.product_ids und promotion_ids |
promotion_limit_reached | 403 | Basic (und eine kostenlose Testphase) führt jeweils eine Aktion gleichzeitig aus (aktiv oder geplant; Entwürfe zählen nicht); ab Pro gibt es kein Limit. Siehe limits.running_promotions in GET /billing. Beende die andere Aktion oder führe ein Upgrade durch |
unknown_channel | 422 | Aktionen: ein Kanal in channels, auf dem Aktionen nicht laufen. Die Meldung nennt ihn und listet die gültigen |
discount_exceeds_price | 422 | Aktionen: Ein fester Rabatt ist nicht niedriger als ein abgedeckter Preis. error.details nennt product_id, variant_id, channel und price |
promotion_running / promotion_not_running / promotion_reverting | 409 | Aktionen: Bearbeiten oder Löschen, während sie läuft (zuerst beenden); Beenden einer Aktion, die nicht läuft; Löschen, während die Kanalpreise noch wiederhergestellt werden (versuche es gleich noch einmal) |
plan_upgrade_required | 403 | Storefront: Der Plan des Shops enthält diese Funktion nicht |
code_exists | 409 | Storefront: Ein Rabatt mit diesem Code existiert bereits (param: code) |
transition_not_allowed | 409 | Storefront-Bestellung: Die Bestellung kann nicht von ihrem aktuellen Status in den gewünschten wechseln |
already_refunded / order_not_paid | 409 | Erstattung einer Storefront-Bestellung: Es gibt nichts mehr zu erstatten, oder die Bestellung wurde nie bezahlt. Wird vor jeder Bestätigung beantwortet |
stripe_refund_failed / paypal_refund_failed | 502 | Erstattung einer Storefront-Bestellung: Der Zahlungsanbieter hat sie abgelehnt; die Meldung nennt seinen Grund |
sku_required / title_required | pro Eintrag | Dem Batch-Eintrag fehlt die SKU zum Abgleichen / ein Titel zum Erstellen |
route_not_found | 404 | Kein solcher Endpoint. Sieh in der Referenz nach |
rate_limit_exceeded | 429 | Bucket leer. Beachte Retry-After |
write_quota_exceeded | 429 | Tägliches Kontingent für Schreibvorgänge auf Kanälen erreicht |
internal_error | 500 | Auf unserer Seite ist etwas schiefgelaufen. Versuche es mit Backoff erneut; nenne die request_id, wenn es anhält |
channel_unavailable | 502 | Der Kanal hat nicht geantwortet oder ist fehlgeschlagen. Versuche es später erneut |
confirmation_required | 409 | Unumkehrbare Aktion: Zeige confirmation.summary an und wiederhole dann denselben Request mit Nembol-Confirmation. Siehe Rückgängig und Bestätigungen |
confirmation_invalid | 409 | Das Bestätigungstoken ist verbraucht, abgelaufen oder gehört zu einem anderen Request. Ein neues steht in der Antwort |
undo_conflict | 409 | Nichts rückgängig gemacht: Jeder Wert wurde seitdem erneut geändert. Siehe error.details |
action_already_undone | 409 | Die Aktion wurde bereits rückgängig gemacht |
not_reversible | 422 | Die Aktion lässt sich nicht rückgängig machen; die Meldung sagt, was du stattdessen tun kannst |
undo_window_expired | 422 | Aktionen lassen sich 30 Tage lang rückgängig machen |
product_not_deleted | 409 | Wiederherstellung für ein Produkt aufgerufen, das nicht gelöscht ist |
product_requires_attention | 409 | Das Produkt ist to_verify: Kläre es (POST /products/{id}/resolve oder eine Zusammenführung), bevor du seine Angebote schreibst |
product_not_requiring_attention | 409 | Resolve für ein Produkt aufgerufen, das nicht to_verify ist |
resolution_not_applicable | 409 | Diese Lösung passt nicht zum requires_attention.reason des Produkts |
still_requires_attention | 409 | recheck: Die Kanaleinstellung ist noch nicht behoben. Siehe error.details.reason |
confirm_different | 409 | Zusammenführen: Die Produkte sehen sich nicht ähnlich. Prüfe error.details.product_ids und sende dann confirm_different: true |
same_channel_account | 422 | Zusammenführen: Zwei Produkte sind auf demselben Kanalkonto live. Siehe error.details.channels |
variants_differ | 422 | Zusammenführen: Die Varianten entsprechen sich nicht. Ordne sie mit variant_maps anhand von error.details.matching zu |
invalid_choices / too_few / too_many | 422 | Zusammenführen: Ein Eintrag in choices passt nicht, oder es sind nicht 2 bis 10 Produkte |
product_merged | 409 | Wiederherstellung abgelehnt: Das Produkt wurde zusammengeführt. Mach stattdessen die Zusammenführung rückgängig |
not_a_partner | 403 | Nembol-Account oder Partner-Endpoints, verwendet von einem Shop, der kein Partner ist |
not_on_a_sub_account | 400 | Du hast Nembol-Account an einen Partner-Endpoint (/accounts, /partner/*) gesendet. Diese arbeiten auf deinem eigenen Partnerkonto: Ruf sie ohne den Header auf |
sandbox_limit | 409 | Ein Sandbox-Partner hat sein Maximum an offenen Unternehmen erreicht. Schließe zuerst eines |
plan_too_small | 409 | Das Unternehmen hat mehr Produkte oder Kanalkonten, als der neue Plan erlaubt |
account_not_found | 404 | Kein Unternehmen mit dieser ID für deinen Partnerschlüssel |
billed_by_partner | 409 | /billing innerhalb eines Unternehmens aufgerufen: Unternehmen werden dem Partner in Rechnung gestellt |
billing_managed_elsewhere | 422 | Der Shop wird über Shopify, Wix oder WooCommerce.com abgerechnet. Ändere, kündige oder aktualisiere die Zahlung dort |
return_url_not_allowed | 422 | return_url muss mit einer für diesen Shop registrierten URL beginnen (POST /redirect_urls) |
plan_limits_exceeded | 422 | Planwechsel: Der Shop nutzt mehr, als der Zielplan erlaubt. Reduziere die Nutzung oder wähle einen größeren Plan |
no_payment_method_yet / no_subscription_yet | 422 | Der Shop hat noch keine Stripe-Abrechnung. Schließe zuerst ein Abo ab mit POST /billing/plan_change_link |
already_canceled / already_canceling / nothing_to_cancel | 422 | Kündigung: Das Abo ist bereits gekündigt, endet bereits zum Periodenende, oder es gibt nichts zu kündigen (Testphase, kein Stripe-Abo) |
trial_not_available | 422 | Der Shop kann keine Testphase neu starten |
billing_provider_error | 502 | Stripe oder PayPal hat keine Seite zurückgegeben. 409, wenn PayPal die Änderung ablehnt. Versuche es später erneut |
billing_links_unavailable | 503 | Abrechnungslinks sind noch nicht verfügbar. Verwalte das Abo im Nembol-Dashboard |
account_suspended / account_closed | 409 | Schreibvorgänge bei einem gesperrten (Partnerrechnung überfällig) oder geschlossenen Unternehmen |
product_limit_reached | 409 | Das Produktlimit im Plan des Unternehmens ist erreicht. Ändere seinen Plan oder lösche Produkte |
channel_slots_full | 422 | Für diesen Kanal ist kein Platz mehr frei. Trenne zuerst ein Konto |
plan_channel_not_included | 403 | Der Plan des Shops enthält diesen Kanal nicht. Führe ein Upgrade durch, um ihn zu verbinden |
channel_not_disconnectable | 422 | Der Shop bezahlt sein Nembol-Abo über dieses Konto, daher kann es nicht getrennt werden |
connection_not_awaiting_choice | 409 | choose bei einer Verbindung, die nicht needs_choice ist |
choice_expired | 410 | Seit der Anmeldung des Händlers ist mehr als eine Stunde vergangen. Erstelle einen neuen Link |
link_expired / link_already_used | n/a | (an return_url) Der Verbindungslink ist abgelaufen oder wurde bereits verwendet. Erstelle einen neuen |
different_channel_account | n/a | (in connection.error und an return_url) Der Händler hat sich bei einem anderen Shop angemeldet als dem, der neu verbunden wird (channel_account_id, oder ein getrenntes Konto, das zurückgeholt wird: reconnects_shop). Nichts wurde geändert. Melde dich bei diesem Shop an oder verbinde den neuen mit new_account: true (ohne channel_account_id) |
channel_login_failed | n/a | (an return_url und in connection.error) Die Anmeldung beim Kanal ist nicht gestartet oder wurde nicht abgeschlossen. Erstelle einen neuen Link |
channel_credentials_rejected | n/a | (in connection.error) Der Kanal hat die gesendeten Zugangsdaten abgelehnt |
plan_not_eligible / subscription_inactive / slot_no_longer_available | n/a | (an return_url, Verbindungsfehler) Der Shop kann diesen Kanal nicht mehr verbinden |
no_account_to_connect | n/a | (Verbindungsfehler) Das Kanalkonto des Händlers enthält nichts, was Nembol verbinden kann |
Mit der Zeit kommen neue Codes hinzu; behandle unbekannte Codes, indem du auf type zurückfällst.
Zuletzt aktualisiert am 21. Oktober 2026
Brauchst du Hilfe?
Schreib uns, und ein Mensch antwortet, meist innerhalb eines Werktags.