Traduite de l'anglais. En cas de différence, la page en anglais fait foi. Lire en anglais
Connecter un canal
Permettez à un marchand de connecter eBay, Shopify, Etsy et d'autres canaux depuis votre application ou votre agent : liens OAuth, canaux à clé API, URL de retour et déconnexion.
POST /channel_connections exécute le même parcours de connexion que le
tableau de bord Nembol, sur le prochain emplacement libre de ce canal. Un
second compte eBay devient un second compte de canal. Votre clé a besoin du
scope channels:connect.
Canaux OAuth : envoyez un lien au marchand
eBay, Etsy, Shopify, WooCommerce, TikTok Shop, Temu, Amazon, Google Merchant Center, Facebook Catalog, Square, Squarespace, Faire, Wix, Facebook, Pinterest et Tumblr exigent que le marchand se connecte sur le canal et autorise Nembol. Vous obtenez un lien à usage unique, valable 1 heure :
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"
}Ouvrez connect_url dans le navigateur du marchand. Une fois terminé, il
arrive sur votre return_url avec le résultat ajouté à sa query string :
https://app.example.com/nembol/callback?user=42&connection_id=conn_66f0a1&status=connected&channel_account_id=chac_6aa12cabUn lien inutilisable revient aussi vers votre return_url : expiré
(status=expired&error=link_expired), déjà utilisé (le status actuel et
error=link_already_used) ou refusé (status=failed et le motif, par
exemple plan_not_eligible). Affichez votre propre message et créez un
nouveau lien si nécessaire. Le vendeur ne voit jamais de page d'erreur Nembol.
Ne vous fiez pas à la seule query string. Confirmez avec
GET /channel_connections/{id} (connected / failed / expired) ou le
webhook channel_account.connected.
Agents IA et scripts : omettez return_url. Le marchand arrive sur une
page Nembol qui lui indique qu'il peut fermer l'onglet, et l'agent interroge
la connexion.
Enregistrez d'abord vos URL de retour
return_url doit commencer par une URL enregistrée pour la boutique. Cela
empêche d'utiliser le parcours de connexion de Nembol pour envoyer des
personnes vers des sites arbitraires :
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"}'Même origine + un chemin commençant par celui enregistré : l'URL correspond ; toute query string est acceptée. Le marchand peut aussi gérer la liste dans Paramètres → Développeurs → URL de redirection.
Canaux à clé API : connexion immédiate
Kaufland, OnBuy, PrestaShop et Subito se connectent avec des identifiants, et
la réponse est déjà connected ou 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": "…"}}'Les clés sont transmises au canal et ne sont jamais stockées sur la connexion.
Canaux qui demandent quel compte connecter
Amazon, Google Merchant Center et Facebook Catalog se connectent avec un lien
comme les autres. Après la connexion, le vendeur peut avoir plusieurs comptes
au choix (plusieurs comptes Merchant Center, plusieurs entreprises). La
connexion passe alors en needs_choice, sa liste choices donne les options,
et vous la terminez avec POST /channel_connections/{id}/choose et la value
choisie. S'il n'y a qu'une option, Nembol la choisit et la connexion est
directement connected.
Déconnecter
curl -X POST https://api.nembol.com/rest/v1/channel_accounts/chac_6aa12cab/disconnect \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"La déconnexion arrête toute synchronisation avec ce compte et ne peut pas être annulée via l'API (la reconnexion exige une nouvelle connexion du marchand), elle demande donc d'abord une confirmation :
- La première requête répond
409 confirmation_requiredavec une description des conséquences et unconfirmation.token. - Montrez les conséquences au marchand. S'il est d'accord, répétez la même
requête avec l'en-tête
Nembol-Confirmation: <token>. Le jeton ne sert qu'une fois et expire au bout de 10 minutes.
Voir Confirmations et annulation.
Après la connexion : imports et options de synchronisation
Via l'API, une nouvelle connexion n'importe rien : votre application gère le catalogue. Demandez ce dont vous avez besoin en créant la connexion :
| Option | Par défaut | Effet |
|---|---|---|
import_products | false | Importe le catalogue du canal dans Nembol une fois connecté. L'import est une opération normale : son id est le import_operation_id de la connexion ; suivez-le avec GET /operations/{id} et annulez-le avec POST /imports/{id}/undo |
import_orders | false | Récupère aussi les commandes que la boutique avait déjà avant la connexion (une récupération unique) |
Les nouvelles commandes sont synchronisées dès que le compte est connecté,
quel que soit votre choix. (Le tableau de bord importe toujours les deux : le
vendeur veut voir sa boutique tout de suite.) Vous pouvez aussi importer plus
tard avec POST /imports.
Un compte nouvellement connecté a toutes ses options de synchronisation
désactivées : les modifications Nembol n'atteignent pas le canal et les
ventes du canal ne modifient pas le stock ailleurs, tant que vous ne les
activez pas avec PATCH /channel_accounts/{id}. Voir
Modifier un produit : ce qui atteint les canaux.
eBay : Business Policies
Pour publier sur eBay, le compte doit utiliser les Business Policies d'eBay (chaque annonce porte des politiques d'expédition, de paiement et de retour). La plupart des vendeurs les utilisent déjà. La connexion ne modifie jamais ce réglage, car l'adhésion modifie définitivement le compte eBay du vendeur. Si le compte n'y a pas adhéré, eBay refuse la première publication ; activez-les explicitement, avec l'accord du vendeur :
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)"L'appel demande la confirmation en deux étapes. La réponse est ready
(politiques en place, la publication fonctionne) ou pending (eBay migre le
compte : rappelez dans quelques minutes). Un compte qui a déjà adhéré répond
ready et rien ne change.
Déconnecter, puis reconnecter la même boutique
Un compte déconnecté garde sa place avec le nom de sa dernière boutique, pour
que ses annonces puissent le retrouver. Le prochain POST /channel_connections
pour ce canal le ramène : la réponse contient reconnects_shop (la boutique
qu'il avait), et le vendeur se connecte à cette même boutique.
- Pour connecter une autre boutique à la place, envoyez
"new_account": true: elle prend une nouvelle place. - Si le vendeur se connecte à une autre boutique sans
new_account, la connexion échoue avecdifferent_channel_accountet rien ne change.
Reconnecter une connexion expirée
La connexion à une marketplace peut expirer ou être révoquée (mot de passe modifié, application supprimée sur le canal). Le compte affiche alors des erreurs et cesse de se synchroniser. Pour corriger cela sans le tableau de bord, reconnectez ce même compte :
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"}'Cela fonctionne comme une nouvelle connexion (un connect_url pour le
vendeur, puis return_url), avec trois différences :
- Le compte garde son id (
chac_…) et toutes les annonces qui y sont liées ; aucun nouveau compte de canal n'est créé et aucun emplacement libre n'est nécessaire. - Si le vendeur se connecte à une boutique ou un compte différent de celui en
cours de reconnexion, rien ne change et la connexion échoue avec
different_channel_account. channelest facultatif ; s'il est envoyé, ce doit être le canal du compte.
Mêmes règles que le tableau de bord
L'API exécute le parcours de connexion du tableau de bord lui-même, donc toutes les règles de Nembol s'appliquent. Une intégration ne peut rien faire de plus que ce que le marchand pourrait faire dans Nembol :
- Un compte marketplace, une boutique Nembol. Un compte eBay (Etsy,
Shopify…) déjà connecté à une boutique Nembol ne peut pas être connecté à
nouveau ; la connexion se termine en
failedavec le message du canal. - Abonnement actif obligatoire, vérifié comme dans le tableau de bord (y
compris une vérification en direct auprès du prestataire de paiement) :
sinon
402 subscription_inactive. - Le compte par lequel la boutique paie Nembol (facturation Shopify,
WooCommerce ou Wix) ne peut pas être déconnecté :
422 channel_not_disconnectable. - Tout est revérifié à l'ouverture du lien. Si l'emplacement a été pris
entre-temps, si le forfait a changé ou si l'abonnement a expiré, le lien est
refusé et la connexion se termine en
failed.
Pièges à éviter
- Un lien, un usage. Un lien ouvert ou expiré ne peut pas être réutilisé. Créez une nouvelle connexion.
- Connexion expirée ou compte déconnecté. Un compte dont la connexion a
expiré existe toujours : reconnectez-le avec
channel_account_id(il garde son id). Un compte déconnecté revient avec la prochaine connexion de ce canal (même place et mêmes annonces, un nouvel idchac_: l'ancien id répond404 channel_account_not_foundet ses annonces portent désormais le nouvel id danschannel_account_id) ; voir plus haut. - Etsy, seconde boutique : le marchand doit être déconnecté de la première boutique sur etsy.com avant d'ouvrir le lien, sinon Etsy le reconnectera à la même boutique.
- Les emplacements se remplissent. Chaque canal a un nombre limité de
comptes par boutique :
422 channel_slots_fullsignifie qu'il faut d'abord en déconnecter un. - Les limites du forfait s'appliquent comme dans le tableau de bord :
403 plan_channel_not_includedquand le forfait n'inclut pas le canal. - Pas d'import automatique via l'API. Une connexion faite depuis le
tableau de bord lance le premier import habituel ; une connexion faite via
l'API n'importe que ce que demandent
import_products/import_orders.
Dernière mise à jour le 20 octobre 2026
Besoin d'aide ?
Écrivez-nous et une personne vous répond, généralement sous un jour ouvré.
Programme partenaires : gérer de nombreuses boutiques
Pour les éditeurs de logiciels (ERP, agences) qui utilisent Nembol pour leurs propres clients : une entreprise par client, une clé, une facture.
Règles et limites
Les comportements qu'une intégration doit connaître : variantes, textes par canal, images, commandes, expédition, délais. Chacun est appliqué par l'API avec une erreur claire.