marché des services API Marchands
Phase 1 : produits et réception

API Marchands : connectez vos SKU, vos préannonces d'achat et votre stock de Shenzhen à votre système

Pour les entreprises qui vendent sur Shopee, Coupang et momo. Envoyez par API les codes-barres produit créés lors de la mise en ligne et préannoncez les numéros de suivi et le contenu de vos achats ; dès l'arrivée à l'entrepôt de Shenzhen, un ordre de travail est créé automatiquement, chaque pièce est étiquetée, scannée et mise en stock, et le stock comme les écarts vous sont renvoyés en temps réel.

Entreprises

Public éligible (numéro fiscal taïwanais à 8 chiffres requis)

200

SKU maximum par requête groupée

WO-SK

Ordre d'étiquetage créé automatiquement à l'arrivée

60 / min

Limite de débit par défaut par clé

1 Présentation

La phase 1 couvre « produits et réception » : de la création d'un SKU jusqu'à la mise en stock des marchandises à l'entrepôt de Shenzhen.

Ce que vous pouvez faire dès maintenant

  • Créer ou mettre à jour des SKU en masse (identifiés par votre seller_sku), avec un code-barres produit distinct pour chaque couleur et chaque taille, et les lier aux références de variantes Shopee / Coupang / momo.
  • Vérifier automatiquement les exigences à l'importation à partir du code tarifaire à 11 chiffres et signaler les produits soumis à inspection, à autorisation ou interdits à l'importation.
  • Préannoncer les numéros de suivi et le contenu de chaque carton lors de l'achat ; à l'arrivée à l'entrepôt de Shenzhen, un ordre d'étiquetage WO-SK est créé automatiquement et l'entrepôt étiquette, scanne et met en stock chaque pièce.
  • Consulter le stock par entrepôt et le journal des mouvements de stock, et recevoir en temps réel par webhook les arrivées, les réceptions terminées, les écarts de quantité et les variations de stock.

Processus de réception

  1. Créer les SKU : envoyez les codes-barres produit, les variantes, les désignations déclarées et les codes tarifaires.
  2. Préannoncer la réception : envoyez les numéros de suivi et la quantité annoncée pour chaque SKU.
  3. Arrivée à l'entrepôt de Shenzhen : le scan du numéro de suivi crée et imprime automatiquement un ordre de travail WO-SK.
  4. Étiquetage et mise en stock : l'entrepôt imprime les codes-barres produit, étiquette chaque pièce et la scanne pour le comptage.
  5. Réception terminée : les quantités reçues entrent dans le stock de Shenzhen, les articles endommagés sont comptés à part et les écarts sont notifiés à votre système.
À propos de la réglementation à l'importation : le système détermine automatiquement les exigences à partir des codes d'exigences à l'importation figurant dans les données tarifaires de l'Administration des douanes de Taïwan, à titre indicatif uniquement. La nécessité réelle d'une inspection, d'une autorisation ou d'une déclaration en douane formelle est déterminée par la douane et par notre commissionnaire en douane partenaire. Le stock constitué par un marchand est destiné à la vente et ne bénéficie pas des exemptions prévues pour l'usage personnel.

Fonctionnalités prévues

Commandes d'expédition en masse, lots d'expédition regroupés automatiquement selon les règles de déclaration, ainsi que stock prépositionné, tri et étiquettes d'expédition des places de marché à l'entrepôt de Taoyuan. Leur mise en service sera annoncée sur cette page.

2 Accès et clés

L'API Marchands est réservée aux entreprises immatriculées ; chaque clé est liée à un compte marchand approuvé.

Étapes d'activation

  1. Dans l'espace membre, ajoutez un déclarant de type « entreprise » avec son numéro fiscal taïwanais à 8 chiffres.
  2. Contactez le service client HowBridge pour demander l'activation de l'API Marchands ; une clé vous est délivrée après validation.
  3. La clé ne s'affiche qu'une seule fois. Conservez-la dans une variable d'environnement côté serveur, jamais dans un navigateur ni dans une app.
  4. Pour utiliser les webhooks, configurez et vérifiez d'abord votre URL sur la page API de l'espace membre, puis abonnez-vous aux événements marchands.
Toutes les requêtes utilisent Authorization: Bearer <clé>. Les jetons générés lors d'une connexion membre à l'app ou au site web ne peuvent pas appeler l'API Marchands.
Authorization: Bearer 12|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept: application/json

3 Conventions

Les règles suivantes s'appliquent à tous les endpoints.

Base URL

https://0523.tw/api/v1/merchant

Format et langue

Les requêtes et les réponses sont au format JSON. Les messages d'erreur sont en chinois traditionnel par défaut ; envoyez Accept-Language: en pour les recevoir en anglais. Dans votre code, basez toujours votre logique sur error.code, dont la valeur est toujours en anglais.

Structure des réponses

En cas de succès : {"success": true, "data": …, "meta": …} ; en cas d'échec : {"success": false, "error": {"code", "message", "errors", "context"}}, où errors détaille les erreurs champ par champ. Seule exception : une clé absente ou invalide renvoie HTTP 401 avec le corps {"message": "Unauthenticated."}.

{
  "success": false,
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "…",
    "errors": [
      { "code": "TRACKING_IN_USE", "field": "packages.0.tracking_no", "message": "…" }
    ]
  }
}

Limites de débit

60 requêtes par minute et 5 000 par jour par clé (300 par minute et 50 000 par jour avec l'offre haut volume) ; une requête groupée compte pour une seule. Pour des données en temps réel, abonnez-vous aux webhooks au lieu d'interroger l'API en boucle.

En-tête de réponseDescription
X-RateLimit-LimitLimite par minute
X-RateLimit-RemainingRequêtes restantes pour la minute en cours
X-RateLimit-Limit-Day
X-RateLimit-Remaining-Day
Limite quotidienne et requêtes restantes
Retry-AfterDélai en secondes avant de réessayer après dépassement de la limite

Idempotence (Idempotency-Key)

Les requêtes d'écriture acceptent l'en-tête Idempotency-Key (8 à 128 caractères : lettres, chiffres et _-:.). Après un délai d'attente réseau dépassé, renvoyer la requête avec la même clé d'idempotence et le même contenu renvoie la réponse initiale, avec l'en-tête Idempotent-Replayed: true ; la même clé avec un contenu différent renvoie 422. Les enregistrements sont conservés 24 heures.

Réponses groupées

Les endpoints groupés renvoient un résultat pour chaque élément : 200 si tout réussit, 207 en cas d'échec partiel, 422 si tout échoue. Chaque élément comporte index, status (created / updated / failed) et le motif d'échec.

Caractères des identifiants

seller_sku n'accepte que des lettres, des chiffres et ._- (1 à 64 caractères) ; les codes-barres produit acceptent en plus / et + (3 à 64 caractères). La casse n'est pas prise en compte.

4 SKU produits

Un SKU est identifié de manière unique par votre seller_sku : renvoyer le même seller_sku met à jour le SKU, et seuls les champs transmis sont modifiés.

Créer ou mettre à jour des SKU en masse

POST/api/v1/merchant/skus/batch

Jusqu'à 200 éléments par requête. Chaque élément est traité indépendamment : l'échec de l'un n'affecte pas les autres.

ChampTypeObligatoireDescription
seller_skustringObligatoireVotre référence SKU, par exemple la référence de variante sur Shopee.
product_namestringObligatoire à la créationNom du produit. Les SKU portant le même nom sont regroupés sous un même produit.
barcodestringFacultatifCode-barres produit : l'entrepôt imprime les étiquettes et scanne la mise en stock à partir de ce code. Chaque couleur et chaque taille doivent avoir un code différent. Sans code-barres, laissez le champ vide : le système génère un code-barres système. Au-delà de 16 caractères, l'étiquette porte le code-barres système.
gtinstringFacultatifCode-barres international GTIN (8 / 12 / 13 / 14 chiffres, clé de contrôle vérifiée). Pour l'option Shopee « produit sans GTIN », envoyez 00.
specobjectFacultatifVariante, par exemple {"color": "noir", "size": "M"}, 5 attributs maximum.
declared_name_zh
declared_name_en
stringFacultatifDésignation déclarée (en chinois / anglais) : indiquez la matière et l'usage, n'écrivez pas « échantillon » ni « cadeau ».
declared_unit_valuenumberFacultatifValeur unitaire déclarée : votre prix d'achat unitaire auprès du fournisseur, et non le prix de vente sur la place de marché.
declared_currencystringFacultatifCNY, TWD ou USD ; obligatoire si une valeur unitaire est renseignée.
hs_codestringFacultatifCode de classement tarifaire à 11 chiffres, utilisé par le système pour vérifier les exigences à l'importation.
origin_countrystringFacultatifCode ISO du pays d'origine, CN par défaut.
weight_gintegerFacultatifPoids unitaire (en grammes).
dimensions_cmarrayFacultatifLongueur, largeur et hauteur (en centimètres), par exemple [20, 15, 3].
battery_typestringFacultatifnone, contained (intégrée), packed (fournie avec l'article), standalone (batterie seule).
channelsarrayFacultatifCorrespondances avec les produits des places de marché, 20 maximum : platform (shopee / coupang / momo / other), shop_id, item_id, model_id, platform_sku.

Exemple de requête (POST JSON)

curl -X POST https://0523.tw/api/v1/merchant/skus/batch \
  -H "Authorization: Bearer $LUCKY_MERCHANT_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: sku-sync-20260917-001" \
  -d '{
  "items": [
    {
      "seller_sku": "TEE-RED-S",
      "barcode": "4710000000011",
      "product_name": "Cotton T-shirt",
      "spec": { "color": "red", "size": "S" },
      "declared_name_en": "Cotton knitted T-shirt",
      "declared_unit_value": 18.5,
      "declared_currency": "CNY",
      "hs_code": "61091000006",
      "weight_g": 160,
      "channels": [ { "platform": "shopee", "shop_id": "123456", "item_id": "2233", "model_id": "445566" } ]
    }
  ]
}'

Réponse 200

{
  "success": true,
  "data": [
    {
      "index": 0,
      "seller_sku": "TEE-RED-S",
      "status": "created",
      "sku": {
        "seller_sku": "TEE-RED-S",
        "barcode": "4710000000011",
        "system_barcode": null,
        "pick_code": "131999",
        "hs_code": "61091000006",
        "regulation": { "status": "ok", "import_codes": [], "reasons": [] },
        "channels": [ { "platform": "shopee", "shop_id": "123456", "item_id": "2233", "model_id": "445566", "platform_sku": null } ]
      }
    }
  ],
  "meta": { "summary": { "created": 1, "updated": 0, "failed": 0 } }
}

Vérification des exigences à l'importation (regulation.status)

okAucun code d'exigence à l'importation.
review_requiredL'exigence ne concerne qu'une partie des produits (par exemple C02 « certains produits de cette position sont soumis à inspection ») ; à confirmer selon l'usage réel du produit.
formal_requiredDes exigences à l'importation s'appliquent (inspection, quarantaine, autorisation, etc.) ; la déclaration simplifiée ne peut pas être utilisée.
blockedProduit de Chine continentale interdit à l'importation (MW0, originaire de Chine continentale) ; il ne peut pas faire l'objet d'une préannonce de réception.
unclassifiedAucun code tarifaire fourni pour le moment : vérification impossible.

Lister les SKU

GET/api/v1/merchant/skus

Filtrez par seller_sku, barcode, regulation_status ou updated_since (ISO 8601) ; paginez avec page / per_page (100 maximum).

Consulter un SKU

GET/api/v1/merchant/skus/{seller_sku}

Mettre à jour les correspondances avec les places de marché

PUT/api/v1/merchant/skus/{seller_sku}/channels

La liste envoyée remplace intégralement les correspondances existantes ; une même variante de place de marché ne peut pas être liée à deux SKU.

Télécharger les étiquettes code-barres

GET/api/v1/merchant/skus/{seller_sku}/label.pdf?qty=10

Renvoie un PDF d'étiquettes 40×30 mm ; qty correspond au nombre d'étiquettes (1 à 1000). L'entrepôt de Shenzhen imprime la même étiquette lors de l'étiquetage ; cet endpoint vous sert si vous souhaitez étiqueter vous-même avant l'expédition.

5 Préannonces de réception

Une fois vos achats expédiés, préannoncez les numéros de suivi et le contenu. Un ordre de réception peut comporter plusieurs numéros de suivi, chacun listant ses SKU et leurs quantités.

Créer un ordre de réception

POST/api/v1/merchant/inbound-orders

Validation globale : en cas d'erreur, rien n'est créé. Un numéro de suivi ne peut appartenir qu'à un seul ordre de réception en cours ; les SKU en double dans un même colis sont fusionnés et leurs quantités additionnées.

ChampTypeObligatoireDescription
reference_nostringObligatoireVotre numéro de commande d'achat ou d'ordre de réception, unique pour un même marchand (lettres, chiffres et ._-/).
supplier_order_nostringFacultatifNuméro de commande fournisseur, par exemple un numéro de commande 1688.
warehouse_codestringFacultatifEntrepôt de réception ; seul SZ (entrepôt de Shenzhen) est accepté pour le moment.
notesstringFacultatifRemarques (1 000 caractères maximum).
packagesarrayObligatoireListe des colis, 50 maximum.
packages[].tracking_nostringObligatoireNuméro de suivi d'un transporteur express chinois.
packages[].carrierstringFacultatifCode du transporteur, par exemple yto ou sf.
packages[].itemsarrayObligatoireContenu du colis : seller_sku et qty, 500 lignes maximum pour l'ensemble de l'ordre de réception.

Exemple de requête (POST JSON)

curl -X POST https://0523.tw/api/v1/merchant/inbound-orders \
  -H "Authorization: Bearer $LUCKY_MERCHANT_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: po-20260917-0001" \
  -d '{
  "reference_no": "PO-20260917-0001",
  "supplier_order_no": "1688-3312456789",
  "packages": [
    {
      "tracking_no": "YT1234567890123",
      "carrier": "yto",
      "items": [
        { "seller_sku": "TEE-RED-S", "qty": 40 },
        { "seller_sku": "TEE-RED-M", "qty": 60 }
      ]
    }
  ]
}'
Protection contre les doublons : créer à nouveau le même reference_no renvoie 409 INBOUND_REFERENCE_EXISTS, avec l'id de l'ordre de réception d'origine dans error.context.inbound_order_id. Pour réessayer sans risque, envoyez l'en-tête Idempotency-Key.

Statuts de l'ordre de réception

createdPréannoncé ; aucun colis n'est encore arrivé.
partially_arrivedUne partie des colis est arrivée à l'entrepôt de Shenzhen.
arrivedTous les colis sont arrivés ; étiquetage et mise en stock en cours.
completedMise en stock terminée, quantités conformes à la préannonce.
completed_with_discrepancyTerminé, mais avec des manquants, des excédents ou des articles endommagés.
cancelledAnnulé.

Statuts des colis

awaiting_arrivalEn attente d'arrivée.
labelingArrivé à l'entrepôt ; ordre de travail créé, étiquetage et mise en stock en cours.
receivedMise en stock terminée.
mismatchLe rattachement du colis constaté à son arrivée ne correspond pas à votre préannonce ; le service client vérifie.
cancelledAnnulé ou invalidé ; le numéro de suivi a été libéré.

Lister les ordres de réception

GET/api/v1/merchant/inbound-orders

GET/api/v1/merchant/inbound-orders/{id}

Filtrez par status, reference_no ou updated_since. Chaque colis renvoie les quantités annoncées, reçues et endommagées, ainsi que l'écart.

Annuler un ordre de réception

POST/api/v1/merchant/inbound-orders/{id}/cancel

L'annulation n'est possible que tant qu'aucun colis n'est arrivé ; après annulation, les numéros de suivi peuvent être préannoncés à nouveau.

6 Stock

Le stock est tenu par entrepôt : SZ entrepôt de Shenzhen, TY entrepôt de Taoyuan (le stock de Taoyuan ouvrira avec les fonctionnalités d'expédition).

Consulter le stock

GET/api/v1/merchant/inventory?warehouse_code=SZ

Filtrez par warehouse_code et seller_sku[] (200 maximum).

on_handQuantité en stock.
reservedQuantité réservée par des commandes.
availableQuantité disponible = en stock − réservée.
damagedQuantité endommagée, non expédiable.

Réponse 200

{
  "success": true,
  "data": [
    { "seller_sku": "TEE-RED-S", "barcode": "4710000000011", "warehouse_code": "SZ",
      "on_hand": 38, "reserved": 0, "available": 38, "damaged": 2, "updated_at": "2026-09-17T15:20:11+08:00" }
  ],
  "meta": { "total": 1, "page": 1, "per_page": 100, "last_page": 1 }
}

Journal des mouvements de stock

GET/api/v1/merchant/inventory/movements?after_id=0&limit=200

Enregistrements de mouvements en ajout seul, jamais modifiés. Paginez vers l'avant avec le curseur after_id (500 enregistrements maximum par requête) et conservez le meta.next_after_id de la réponse pour reprendre le rapprochement.

7 Événements webhook

Les événements sont envoyés à votre URL dès qu'ils se produisent, sans interrogation en boucle.

Configuration

  1. Configurez l'URL du webhook sur la page API de l'espace membre (https uniquement) et effectuez la vérification de propriété : votre endpoint doit répondre HTTP 200 avec le corps {"challenge": "valeur reçue"}.
  2. Appelez PUT /api/v1/merchant/webhook/events pour vous abonner aux événements marchands. Modifier ensuite l'URL dans l'espace membre ne supprime pas ces abonnements.
curl -X PUT https://0523.tw/api/v1/merchant/webhook/events \
  -H "Authorization: Bearer $LUCKY_MERCHANT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"events": ["inbound.arrived", "inbound.received", "inbound.discrepancy", "inventory.changed"]}'

Liste des événements

sku.regulation_flaggedLa vérification des exigences à l'importation d'un SKU passe à « à confirmer », « déclaration en douane formelle requise » ou « importation interdite ».
inbound.arrivedUn colis est arrivé à l'entrepôt de Shenzhen et l'ordre de travail a été créé.
inbound.mismatchLe rattachement d'un colis constaté à son arrivée ne correspond pas à la préannonce ; le service client vérifie.
inbound.receivedMise en stock d'un colis terminée, avec les quantités annoncées, reçues et endommagées de chaque SKU.
inbound.discrepancyLes quantités mises en stock diffèrent de la préannonce ou incluent des articles endommagés (envoyé en même temps que inbound.received).
inventory.changedLe stock a changé ; inclut le stock à jour des SKU concernés.

inbound.received

{
  "event": "inbound.received",
  "delivery_id": "5b0f1c2e-8f3a-4d7e-9c21-0a6b2d4e8f10",
  "created_at": "2026-09-17T15:20:11+08:00",
  "data": {
    "inbound_order_id": 128,
    "reference_no": "PO-20260917-0001",
    "order_status": "completed_with_discrepancy",
    "tracking_no": "YT1234567890123",
    "work_order": "WO-SK-315",
    "warehouse_code": "SZ",
    "items": [
      { "seller_sku": "TEE-RED-S", "expected_qty": 40, "received_qty": 38, "damaged_qty": 2, "difference": 0 },
      { "seller_sku": "TEE-RED-M", "expected_qty": 60, "received_qty": 59, "damaged_qty": 0, "difference": -1 }
    ],
    "received_at": "2026-09-17T15:20:10+08:00"
  }
}

Vérifier la signature

Chaque envoi comporte X-Lucky-Event, X-Lucky-Delivery-Id et X-Lucky-Signature: t=horodatage,v1=signature. Calculez un HMAC-SHA256 avec votre secret webhook sur « horodatage + . + corps brut », comparez-le à v1 et rejetez les horodatages de plus de 5 minutes. Lors des nouvelles tentatives d'un même événement, delivery_id reste identique et peut servir à dédoublonner.

Toute réponse autre que 2xx entraîne une nouvelle tentative après 1 minute, 5 minutes, 30 minutes, 2 heures et 6 heures ; après 20 échecs consécutifs, le webhook est désactivé automatiquement et doit être reconfiguré dans l'espace membre.

// PHP
$body   = file_get_contents('php://input');
$header = $_SERVER['HTTP_X_LUCKY_SIGNATURE'] ?? '';
parse_str(str_replace(',', '&', $header), $sig);   // ['t' => '1789…', 'v1' => 'ab12…']

$expected = hash_hmac('sha256', ($sig['t'] ?? '') . '.' . $body, getenv('LUCKY_WEBHOOK_SECRET'));

if (! hash_equals($expected, $sig['v1'] ?? '') || abs(time() - (int) ($sig['t'] ?? 0)) > 300) {
    http_response_code(400);
    exit;
}
$event = json_decode($body, true);   // de-duplicate by $event['delivery_id']
http_response_code(200);

8 Codes d'erreur

error.code est toujours en anglais. Voici les erreurs courantes.

HTTPerror.codeDescription
401—Clé absente, invalide ou expirée (corps : {"message": "Unauthenticated."}).
403MERCHANT_TOKEN_REQUIREDCe jeton n'a pas accès à l'API Marchands (par exemple un jeton issu d'une connexion membre classique).
403MERCHANT_NOT_APPROVED
MERCHANT_SUSPENDED
Le compte n'est pas encore approuvé comme marchand, ou le marchand est suspendu.
403APP_SUSPENDED
APP_REVOKED
APP_NOT_FOUND
L'application API associée à cette clé est suspendue ou révoquée.
422VALIDATION_FAILED
PRODUCT_NAME_REQUIRED
Format de données invalide ; consultez le détail champ par champ dans error.errors.
422BATCH_TOO_LARGENombre d'éléments supérieur à la limite de la requête groupée.
207 / 409SKU_BARCODE_DUPLICATE
SKU_BARCODE_CONFLICT
Le code-barres produit est déjà utilisé par un autre SKU, ou identique au code-barres système ou au code de préparation d'un autre SKU.
207 / 422GTIN_INVALID
HS_CODE_NOT_FOUND
Clé de contrôle du GTIN erronée, ou code tarifaire inexistant.
404 / 422SKU_NOT_FOUND
SKU_IMPORT_BLOCKED
SKU introuvable, ou SKU interdit à l'importation qui ne peut pas être préannoncé.
409INBOUND_REFERENCE_EXISTSLe numéro de référence de l'ordre de réception existe déjà.
422TRACKING_IN_USE
TRACKING_FORECASTED_BY_OTHER
TRACKING_ALREADY_WAREHOUSED
TRACKING_NOT_AVAILABLE
Le numéro de suivi figure déjà sur un ordre de réception en cours, a déjà été préannoncé par un autre membre ou est déjà arrivé à l'entrepôt au nom d'un autre membre.
409INBOUND_NOT_CANCELLABLEUn colis est déjà arrivé : l'ordre de réception ne peut pas être annulé.
400 / 409 / 422IDEMPOTENCY_KEY_INVALID
IDEMPOTENCY_IN_PROGRESS
IDEMPOTENCY_KEY_REUSED
En-tête Idempotency-Key mal formé, réutilisé avec un contenu différent, ou requête précédente encore en cours de traitement.
409CONFLICT_RETRYLa même donnée est en cours de modification par une autre requête ; renvoyez la requête un peu plus tard.
429RATE_LIMIT_EXCEEDEDLimite de débit dépassée ; attendez la durée indiquée par Retry-After avant de réessayer.

9 Exemples de code

Exécutez les exemples ci-dessous côté serveur ; ne placez jamais votre clé dans du code front-end.

use Illuminate\Support\Facades\Http;
use Illuminate\Support\Str;

$api = Http::withToken(config('services.lucky.merchant_key'))
    ->acceptJson()
    ->baseUrl('https://0523.tw/api/v1/merchant')
    ->timeout(20);

// 1) Sync SKUs (up to 200 per request)
$res = $api->withHeaders(['Idempotency-Key' => (string) Str::uuid()])
    ->post('/skus/batch', ['items' => $items]);

foreach ($res->json('data') as $row) {
    if ($row['status'] === 'failed') {
        logger()->warning('SKU failed', $row['errors']);
    }
}

// 2) Forecast an inbound order
$order = $api->withHeaders(['Idempotency-Key' => 'po-' . $po->id])
    ->post('/inbound-orders', [
        'reference_no' => $po->number,
        'packages'     => [[
            'tracking_no' => $po->tracking_no,
            'items'       => [['seller_sku' => 'TEE-RED-S', 'qty' => 40]],
        ]],
    ])->throw()->json('data');

// 3) Read Shenzhen stock
$stock = $api->get('/inventory', ['warehouse_code' => 'SZ'])->json('data');

10 Assistance technique

En cas de problème lors de l'intégration, indiquez-nous l'heure de la requête, l'endpoint et le error.code afin que nous puissions vous aider à investiguer.

Compte officiel LINE @0523tw

E-mail technique howyunqisoftware@gmail.com

Version v1, phase 1 (2026-09-17) : SKU produits, préannonces de réception, étiquetage et mise en stock à Shenzhen, consultation du stock, webhooks.

Demander l'activation au support