Catalog
List catalog items
Return the products and services in the catalog with their current prices.
Returns catalog items, most recently changed first, each with its type, price, any active discount and the price after discount, and branchIds: the branches an item is restricted to ([] means it applies to every branch). Use it to look up what can be sold and at what price before creating a payment. Read-only. Paginated: follow meta.pagination.nextCursor until hasMore is false.
query Parameters
limitRows to return, 1-100. Defaults to 25.
Rows to return, 1-100. Defaults to 25.
cursorThe meta.pagination.nextCursor value from the previous call. Omit it to read the first page.
The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.
typeOnly this type, one of GOODS, SERVICE.
Only this type, one of GOODS, SERVICE.
isActivetrue for items on sale, false for hidden ones.
true for items on sale, false for hidden ones.
qSearch the name and description, 2-100 characters.
Search the name and description, 2-100 characters.
List catalog items › Responses
The API key is missing, malformed, expired, or its owner is inactive.
successCreate a catalog item
Add a product or service, optionally with a discount.
Adds an item to the catalog. Prices are whole Indonesian rupiah (IDR), no decimals. This is the price payments are created from, so a wrong value here becomes a wrong amount a customer is asked to pay. Optionally include a discount object to price it down from the start, and branchIds to offer it only in conversations of those branches (omit it for every branch). Writes the item only; no customer is contacted. Check catalog.list first so you do not create a duplicate.
Create a catalog item › Request Body
typeGOODS (a physical product) or SERVICE.
nameItem name as customers see it.
basePriceIdrList price in whole rupiah.
descriptionLonger description. Null clears it.
isActivefalse takes the item off sale without deleting it. Defaults to true.
Upper price for a variable-priced item, in whole rupiah. Null means a single fixed price.
Optional discount applied to this item from creation.
branchIdsBranch ids from branches.list this applies to. Omit to leave the restriction unchanged; [] makes it apply to every branch; ids restrict it to those branches only, so the AI offers it only in conversations of those branches. Deactivated branches are refused.
Create a catalog item › Responses
The API key is missing, malformed, expired, or its owner is inactive.
successRead one catalog item
Fetch a catalog item with its price and discount.
Returns one catalog item with its type, price, discount configuration, the price in effect right now and branchIds (the branches it is restricted to; [] means every branch). Use it to confirm the amount before creating a payment. Read-only.
path Parameters
itemIdCatalog item id from catalog.list.
Catalog item id from catalog.list.
Read one catalog item › Responses
The API key is missing, malformed, expired, or its owner is inactive.
successDelete a catalog item
Permanently remove an item from the catalog.
Deletes the item and its discount. It cannot be undone from this API, and the item can no longer be priced for a payment. Prefer catalog.update with isActive=false to hide an item reversibly. Requires catalog:delete and is limited to 5 calls per minute.
path Parameters
itemIdCatalog item id from catalog.list.
Catalog item id from catalog.list.
Delete a catalog item › Responses
The API key is missing, malformed, expired, or its owner is inactive.
successUpdate a catalog item
Change the name, description, price or active flag of an item.
Changes only the fields you send. Prices are whole Indonesian rupiah (IDR), no decimals. This is the price payments are created from, so a wrong value here becomes a wrong amount a customer is asked to pay. Setting isActive to false hides the item without deleting it, which is usually what you want instead of catalog.delete. A discount object replaces the item's discount; removing a discount is a separate call, catalog.discountDelete. branchIds restricts the item to those branches ([] makes it apply to every branch; omit it to leave the restriction as it is) and may be sent alone. Writes the item; no customer is contacted.
path Parameters
itemIdCatalog item id from catalog.list.
Catalog item id from catalog.list.
Update a catalog item › Request Body optional
typeGOODS (a physical product) or SERVICE.
nameItem name as customers see it.
descriptionLonger description. Null clears it.
isActivefalse takes the item off sale without deleting it. Defaults to true.
basePriceIdrList price in whole rupiah.
Upper price for a variable-priced item, in whole rupiah. Null means a single fixed price.
Replace the item's discount with this one. To remove it use catalog.discountDelete.
branchIdsBranch ids from branches.list this applies to. Omit to leave the restriction unchanged; [] makes it apply to every branch; ids restrict it to those branches only, so the AI offers it only in conversations of those branches. Deactivated branches are refused.
Update a catalog item › Responses
The API key is missing, malformed, expired, or its owner is inactive.
successAdd a discount to an item
Give a catalog item a percentage or fixed-rupiah discount.
Creates the discount on an item. Prices are whole Indonesian rupiah (IDR), no decimals. This is the price payments are created from, so a wrong value here becomes a wrong amount a customer is asked to pay. The discounted price is what a payment for this item is created at while the discount is enabled and inside its dates. An item holds one discount: if it already has one, use catalog.discountUpdate instead. Writes only; no customer is contacted.
path Parameters
itemIdCatalog item id from catalog.list.
Catalog item id from catalog.list.
Add a discount to an item › Request Body
typePERCENTAGE (value is a percent, 1-100) or FIXED_IDR (value is rupiah off the price).
valueDiscount amount: percent for PERCENTAGE, whole rupiah for FIXED_IDR.
isEnabledWhether the discount applies. Defaults to true.
startsAtISO-8601 time the discount starts. Null or omitted means it has already started.
endsAtISO-8601 time the discount ends. Null or omitted means it never ends.
Add a discount to an item › Responses
The API key is missing, malformed, expired, or its owner is inactive.
successRemove an item discount
Delete the discount so the item returns to its list price.
Deletes the item's discount; the item itself stays. From then on payments for it are created at the full list price. Use catalog.discountUpdate with isEnabled=false to pause a discount reversibly. Requires catalog:delete and is limited to 5 calls per minute.
path Parameters
itemIdCatalog item id from catalog.list.
Catalog item id from catalog.list.
Remove an item discount › Responses
The API key is missing, malformed, expired, or its owner is inactive.
successChange an item discount
Edit, enable or disable an existing discount.
Changes only the discount fields you send. Prices are whole Indonesian rupiah (IDR), no decimals. This is the price payments are created from, so a wrong value here becomes a wrong amount a customer is asked to pay. Set isEnabled to false to switch a discount off without losing its configuration. Writes only; no customer is contacted.
path Parameters
itemIdCatalog item id from catalog.list.
Catalog item id from catalog.list.
Change an item discount › Request Body optional
typePERCENTAGE (value is a percent, 1-100) or FIXED_IDR (value is rupiah off the price).
valueDiscount amount: percent for PERCENTAGE, whole rupiah for FIXED_IDR.
isEnabledWhether the discount applies. Defaults to true.
startsAtISO-8601 time the discount starts. Null or omitted means it has already started.
endsAtISO-8601 time the discount ends. Null or omitted means it never ends.
Change an item discount › Responses
The API key is missing, malformed, expired, or its owner is inactive.
success