v1

latestOpenAPI 3.0.1MIT2026-07-263151,3912.3 MB
Products

Update Products in Bulk

Update products in one asynchronous operation.

The request can include up to 10 MB of data.

The response returns a unique asynchronous action ID. Use this ID in the query paramater of the GET Async Action endpoint to check, e.g.:

  • The status of your request (in queue, in progress, done, or failed)

  • Resources that failed to be updated

  • The report file with details about the update

If a product object is not found, it is upserted. This is shown in the report file in the GET Async Action endpoint. The upserted resources have value false in the found column and true in the updated column.

This API request starts a process that affects Voucherify data in bulk. In the case of small jobs (like bulk update), the request is put into a queue and processed when every other bulk request placed in the queue prior to this request is finished.

post/v1/products/bulk/async

Request body

source_idstring required

Unique product source ID from your inventory system.

namestring

Unique user-defined product name.

priceinteger

Unit price. It is represented by a value multiplied by 100 to accurately reflect 2 decimal places, such as $100.00 being expressed as 10000.

attributesstring[]

A list of product attributes whose values you can customize for given SKUs: ["color","size","ranking"]. Each child SKU can have a unique value for a given attribute.

image_urlstring

The HTTPS URL pointing to the .png or .jpg file that will be used to render the product image.

metadataobject

The metadata object stores all custom attributes assigned to the product. A set of key/value pairs that you can attach to a product object. It can be useful for storing additional information about the product in a structured format.

Example request

[
  {
    "source_id": "test_prod_id_1",
    "name": "T-shirt",
    "image_url": "https://images.com/original.jpg"
  }
]

Response

Returns the ID of the scheduled asynchronous action. The response informs you that the request has been accepted and the resources will be updated in the repository asynchronously. To check the status and result, copy the async_action_id from the response and use it as a query parameter in the GET Async Action endpoint.

async_action_idstring required

The ID of the scheduled asynchronous action.

Example response

{
  "async_action_id": "aa_0a875d56c805df6601"
}