Skip to content

Product catalog

· 8 endpoints

Product catalogs of the Zalo Business account

GET/api/v1/accounts/{accountId}/zalo/catalogsScope: chat:read

Read from Zalo page by page. url = the catalog.zalo.me link for sending into a conversation (via the link-sending route).

Parameters

accountId
path · required
string
max 200
Account ID (accounts.zalo_id). Facebook uses the Facebook ID, Telegram uses the Telegram account ID.
page
query · optional
integer
≥ 0 · default 0
limit
query · optional
integer
≥ 1 · ≤ 50 · default 20

Example request

bash
curl "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs" \
  -H "Authorization: Bearer dpk_xxx"

Create a Zalo Business product catalog

POST/api/v1/accounts/{accountId}/zalo/catalogsScope: crm:write

Parameters

accountId
path · required
string
max 200
Account ID (accounts.zalo_id). Facebook uses the Facebook ID, Telegram uses the Telegram account ID.

Request body (JSON)

name
required
string
max 200

Example request

bash
curl -X POST "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs" \
  -H "Authorization: Bearer dpk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"string"}'

Products in a Zalo Business catalog

GET/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/productsScope: chat:read

Read from Zalo page by page. Each product has a url (catalog.zalo.me) for sending into a conversation.

Parameters

accountId
path · required
string
max 200
catalogId
path · required
string
max 200
Catalog ID
page
query · optional
integer
≥ 0 · default 0
limit
query · optional
integer
≥ 1 · ≤ 100 · default 100

Example request

bash
curl "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/products" \
  -H "Authorization: Bearer dpk_xxx"

Add a product to a Zalo Business catalog

POST/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/productsScope: crm:write

Photos: photos (links already on Zalo) and / or photo_files (new photos that Deplao uploads to Zalo first).

Parameters

accountId
path · required
string
max 200
catalogId
path · required
string
max 200
Catalog ID

Request body (JSON)

name
required
string
max 200
price
required
string
max 30
Price, digits only (VND), e.g. "150000"
description
optional
string
max 2000
photos
optional
string[]
max 5 items
URLs of photos already on Zalo (e.g. another product's photos), kept in order
photo_files
optional
object[]
max 5 items
New photos: each item has exactly one of upload_id, library_uuid, url. Deplao uploads them to Zalo first and places them after photos. At most 5 photos + photo_files in total
└upload_id
optional
stringID from POST /media/uploads
└library_uuid
optional
stringUUID of a photo in the media library
└url
optional
string (uri)Public http/https photo link; the server downloads it itself

Example request

bash
curl -X POST "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/products" \
  -H "Authorization: Bearer dpk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","price":"string","description":"string"}'

Delete products from a Zalo Business catalog

DELETE/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/productsScope: crm:write

Deleted on Zalo and cannot be undone: send confirm=true.

Parameters

accountId
path · required
string
max 200
catalogId
path · required
string
max 200
Catalog ID

Request body (JSON)

product_ids
required
string[]
max 100 items
confirm
optional
boolean
default false

Example request

bash
curl -X DELETE "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/products" \
  -H "Authorization: Bearer dpk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"product_ids":[],"confirm":false}'

Rename a Zalo Business product catalog

PATCH/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}Scope: crm:write

Parameters

accountId
path · required
string
max 200
catalogId
path · required
string
max 200
Catalog ID

Request body (JSON)

name
required
string
max 200

Example request

bash
curl -X PATCH "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}" \
  -H "Authorization: Bearer dpk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"string"}'

Delete a Zalo Business product catalog

DELETE/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}Scope: crm:write

Also deletes the products in the catalog on Zalo and cannot be undone: send confirm=true.

Parameters

accountId
path · required
string
max 200
catalogId
path · required
string
max 200
Catalog ID
confirm
query · optional
boolean
default false
Must be true

Example request

bash
curl -X DELETE "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}" \
  -H "Authorization: Bearer dpk_xxx"

Update a product in a Zalo Business catalog

PATCH/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/products/{productId}Scope: crm:write

Send the full name, price, description and photos (like the app's edit form) plus the product's created_at (from the product list). Photos to keep: photos; new photos: photo_files.

Parameters

accountId
path · required
string
max 200
catalogId
path · required
string
max 200
productId
path · required
string
max 200
Product ID

Request body (JSON)

name
required
string
max 200
price
required
string
max 30
Price, digits only (VND), e.g. "150000"
description
optional
string
max 2000
photos
optional
string[]
max 5 items
URLs of photos already on Zalo (e.g. another product's photos), kept in order
photo_files
optional
object[]
max 5 items
New photos: each item has exactly one of upload_id, library_uuid, url. Deplao uploads them to Zalo first and places them after photos. At most 5 photos + photo_files in total
└upload_id
optional
stringID from POST /media/uploads
└library_uuid
optional
stringUUID of a photo in the media library
└url
optional
string (uri)Public http/https photo link; the server downloads it itself
created_at
required
integer
≥ 0
The product's created_at (ms)

Example request

bash
curl -X PATCH "http://127.0.0.1:9900/api/v1/accounts/{accountId}/zalo/catalogs/{catalogId}/products/{productId}" \
  -H "Authorization: Bearer dpk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","price":"string","created_at":0}'