Sync Qiscus Shop Product with 3rd party system

AI Tools

The Sync API lets you onboard new products, update existing ones, or replace your catalog entirely — all programmatically, without going through the dashboard. It's built for connecting Qiscus Shop to an external system (like an inventory or ERP tool) that needs to keep your product catalog up to date automatically.

Getting Your API Key

  1. Log in to the Qiscus Shop Dashboard.

  2. Go to Integrations > API Token, then click Create New API Key to generate one, if you haven't already — follow the API key generation steps.

  3. Once created, copy the API Key right away. It won't be shown again after this.

Sending a Sync Request

Call POST /admin/api/v1/syncs with either a JSON body or Form Data — whichever fits your integration better. For the full request/response schema and to try it out directly, see the Create a Sync API reference.

curl --request POST \ --url https://shop.qiscus.com/admin/api/v1/syncs \ --header 'Accept: application/json' \ --header 'Authorization: Bearer qsk_EojvCzcf.8edqQ3Iy8SVbwFIj*******' \ --header 'Content-Type: application/json' \ --data '{ "scenario": "create_only", "data": [ { "variant_sku": "size-xl", "variant_name": "Size XL", "variant_price": 250000, "variant_stock": 99, "product_sku": "mills-football", "product_name": "Sepatu Bola Mills", "product_description": "Sepatu bola untuk kamu yang senang bermain dengan penuh gaya", "product_category": "footwear", "product_weight": 5, "product_pictures": [ "https://qiscus.com/images/sepatu-bola-image-1.png" ] }, { "variant_sku": "size-l", "variant_name": "Size L", "variant_price": 250000, "variant_stock": 99, "product_sku": "mills-football", "product_name": "Sepatu Bola Mills", "product_description": "Sepatu bola untuk kamu yang senang bermain dengan penuh gaya", "product_category": "footwear", "product_weight": 5, "product_pictures": [ "https://qiscus.com/images/sepatu-bola-image-1.png" ] } ] }'
curl --request POST \ --url https://shop.qiscus.com/admin/api/v1/syncs \ --header 'Accept: application/json' \ --header 'Authorization: Bearer qsk_EojvCzcf.8edqQ3Iy8SVbwFIjS*****' \ --header 'Content-Type: multipart/form-data' \ --form file= \ --form scenario=create_only

Whichever format you choose, the request needs:

  • file — required for Form Data uploads. Use the JSON File Template or CSV File Template as a starting point.

  • data — the product payload, if you're sending JSON directly instead of a file.

  • scenario — tells the API how to reconcile your data with what's already in Qiscus Shop. See below.

Choosing a Scenario

  • create_only: adds new products and variants only — existing ones are left untouched.

  • create_or_update: adds new products and variants, and updates existing ones matched by Product and Variant SKU.

  • replace: wipes all existing products and variants, then adds the new ones in their place.

  • sync_mirror: compares your incoming product list against what's currently in Qiscus Shop — matching products are updated, missing ones are removed, and new ones are added. The end result fully mirrors your latest list, just like replace, but without forcibly deleting and recreating everything (which helps avoid product IDs changing unnecessarily on each sync).

Tracking Your Sync

Sync History

Go to the Product page and click Sync History to see every sync you've run, along with its Status, Result, Action, and Creation time — searchable if you're looking for a specific one.


Sync Report

Click View Report on any sync to see a detailed breakdown of every product that was processed, along with any Error or Suggestion flagged along the way.



That's it — you're ready to sync your product catalog via the API whenever you need to.