Manage catalogs
Integration summary
- Base URL:
https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services- Token: admin token, in the
Authorization: Bearer {{admin-token}}header (how to generate it)- Endpoints on this page:
POST /v1/catalog/{{waba_id}}: Create catalogGET /v1/catalog/{{waba_id}}: List catalogsPOST /v1/catalog/{{waba_id}}/{{catalog_id}}: Update catalogDELETE /v1/catalog/{{waba_id}}/{{catalog_id}}: Delete catalog
Create, list, update, and delete the catalogs of your WhatsApp Business Account (WABA). If the Request succeeds, every service returns HTTP 200.
Create catalog
Request
Create catalog request:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}} |
| Method | POST |
| Type | application/json |
Headers
Create catalog headers:
| Name | Description | Type | Requirements |
|---|---|---|---|
| Content-Type | application/json | String | Required |
| Authorization | Admin token. See Generate authentication token. | String | Required |
Parameters
Create catalog parameters:
| Name | Description | Type | Requirements |
|---|---|---|---|
| waba_id | WhatsApp Business Account ID. | String | Required |
Body
Create catalog body fields:
| Name | Description | Type | Requirements |
|---|---|---|---|
| name | Catalog name. | String |
|
| vertical | Catalog vertical (industry). Possible values:
commerce) are enforced downstream by Meta, not by this service. | String |
|
Example
Complete Create catalog example:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{admin-token}}' \--data '{"name": "Course catalog","vertical": "commerce"}'
Response
Create catalog response:
| Name | Description | Type |
|---|---|---|
| id | ID of the new catalog. | String |
{"id": "1234567890123456"}
List catalogs
Returns the active catalogs you created for the WABA with the Create catalog service.
Request
List catalogs request:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}} |
| Method | GET |
Headers
List catalogs headers:
| Name | Description | Type | Requirements |
|---|---|---|---|
| Authorization | Admin token. See Generate authentication token. | String | Required |
Parameters
List catalogs parameters:
| Name | Description | Type | Requirements |
|---|---|---|---|
| waba_id | WhatsApp Business Account ID. | String | Required |
Example
Complete List catalogs example:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}' \--header 'Authorization: Bearer {{admin-token}}'
Response
List catalogs response:
The service returns a list of catalogs.
| Name | Description | Type |
|---|---|---|
| id | Catalog ID. | String |
| name | Catalog name. | String |
| vertical | Catalog vertical. | String |
[{"id": "1234567890123456","name": "Course catalog","vertical": "commerce"},{"id": "6543210987654321","name": "Book catalog","vertical": "commerce"}]
Update catalog
Renames a catalog.
Request
Update catalog request:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}} |
| Method | POST |
| Type | application/json |
Headers
Update catalog headers:
| Name | Description | Type | Requirements |
|---|---|---|---|
| Content-Type | application/json | String | Required |
| Authorization | Admin token. See Generate authentication token. | String | Required |
Parameters
Update catalog parameters:
| Name | Description | Type | Requirements |
|---|---|---|---|
| waba_id | WhatsApp Business Account ID. | String | Required |
| catalog_id | Catalog ID. | String | Required |
Body
Update catalog body fields:
| Name | Description | Type | Requirements |
|---|---|---|---|
| name | New catalog name. | String |
|
Note: unknown fields in the request body are rejected. The DTO is strict (@JsonIgnoreProperties(ignoreUnknown = false)), so a typo in a field name or any extra property returns a 400 error.
Example
Complete Update catalog example:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{admin-token}}' \--data '{"name": "Course catalog 2026"}'
Response
Update catalog response:
| Name | Description | Type |
|---|---|---|
| success | Whether the operation succeeded. | Boolean |
{"success": true}
Delete catalog
Request
Delete catalog request:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}} |
| Method | DELETE |
Headers
Delete catalog headers:
| Name | Description | Type | Requirements |
|---|---|---|---|
| Authorization | Admin token. See Generate authentication token. | String | Required |
Parameters
Delete catalog parameters:
| Name | Description | Type | Requirements |
|---|---|---|---|
| waba_id | WhatsApp Business Account ID. | String | Required |
| catalog_id | ID of the catalog to delete. | String | Required |
| allowDeleteCatalogWithLiveProductSet | If the catalog has live product sets, the deletion is blocked. Send true to delete it anyway. Sent as a query parameter. | Boolean |
|
Example
Complete Delete catalog example:
curl --location --request DELETE 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}?allowDeleteCatalogWithLiveProductSet=true' \--header 'Authorization: Bearer {{admin-token}}'
Response
Delete catalog response:
| Name | Description | Type |
|---|---|---|
| success | Whether the operation succeeded. | Boolean |
{"success": true}
