Products

Update a product

Changed on

Updates a product using its ID.

Paddle does not upload product images to a CDN. For image_url, you should host images on an HTTPS server that's publicly accessible. We recommend using square images (1:1 ratio).

If successful, your response includes a copy of the updated product entity.

patch/products/{product_id}

Request

  • Base URL
    https://sandbox-api.paddle.com
  • Auth
    HTTP bearer

Path parameters

product_idstring required

Paddle ID of the product entity to work with.

Request body

namestring

Name of this product.

descriptionstring nullable

Short description for this product.

type'custom' | 'standard'

Type of item. Standard items are considered part of your catalog and are shown in the Paddle dashboard.

tax_category'digital-goods' | 'ebooks' | 'implementation-services' | 'professional-services' | 'saas' | 'software-programming-services' | 'standard' | 'training-services' | 'website-hosting'

Tax category for this product. Used for charging the correct rate of tax. Selected tax category must be enabled on your Paddle account.

custom_dataCustomData

Your own structured key-value data.

status'active' | 'archived'

Whether this entity can be used in Paddle.

Example request

{
  "custom_data": {
    "customer_reference_id": "abcd1234"
  }
}

Response

The request has succeeded.

Example response

{
  "data": {
    "id": "pro_01gsz97mq9pa4fkyy0wqenepkz",
    "custom_data": {
      "customer_reference_id": "abcd1234"
    },
    "import_meta": {
      "external_id": "9b95b0b8-e10f-441a-862e-1936a6d818ab",
      "imported_from": "paddle_classic"
    },
    "created_at": "2024-10-12T07:20:50.52Z",
    "updated_at": "2024-10-13T07:20:50.52Z"
  },
  "meta": {
    "request_id": "b15ec92e-8688-40d4-a04d-f44cbec93355"
  }
}

Changes

    • breaking

      added the new path request parameter product_id

    • breaking

      request body became required

    • breaking

      added to the request property allOf list

    • breaking

      the request property became not nullable

    • breaking

      removed the enum value custom of the request property

    • breaking

      removed the enum value standard of the request property

    • breaking

      removed subschema #2 from the request property oneOf list

    • breaking

      removed subschema #1 subschema #2 subschema #3 from the request property oneOf list

    • breaking

      added the pattern .*\S.* to the request property

    • breaking

      the request property type changed from string to no type

    • breaking

      response property data/description list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      the / response's property type changed from string to no type, and format from date-time to no format for status

    • breaking

      the / response's property type changed from string to no type for status

    • breaking

      the / response's property type changed from string to no type for status

    • breaking

      the / response's property type changed from string to no type for status

    • breaking

      the / response's property type changed from string to no type, and format from date-time to no format for status

    • breaking

      the response's property type changed from object to no type for status

    • breaking

      removed the required property / from the response with the status

    • breaking

      removed the required property / from the response with the status

    • breaking

      removed the required property / from the response with the status

    • breaking

      removed the required property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • info

      added subschema #2 to the request property anyOf list

    • info

      added subschema #2 to the request property anyOf list

    • info

      request property list-of-types was widened by adding types null to media type application/json

    • info

      the response optional property / became not read-only for the status

    • info

      added to the response property allOf list for the response status

    • info

      added to the / response property allOf list for the response status

    • info

      added to the / response property allOf list for the response status

    • info

      added to the / response property allOf list for the response status

    • info

      added to the / response property allOf list for the response status

    • info

      added to the / response property allOf list for the response status

    • info

      added subschema #2 to the / response property anyOf list for the response status

    • info

      added subschema #2 to the / response property anyOf list for the response status

    • info

      added subschema #2 to the / response property anyOf list for the response status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      removed the active enum value from the / response property for the response status

    • info

      removed the archived enum value from the / response property for the response status

    • info

      removed the custom enum value from the / response property for the response status

    • info

      removed the standard enum value from the / response property for the response status

    • info

      removed subschema #2 from the / response property oneOf list for the response status

    • info

      removed subschema #2 from the / response property oneOf list for the response status

    • info

      removed subschema #2 from the / response property oneOf list for the response status

    • info

      the / response's property pattern ^pro_[a-z\d]{26}$ was removed for the status

    • breaking

      the /// response property's maxLength was unset from 200 for the response status

    • breaking

      the /// response property's minLength was decreased from 1 to 0 for the response status

    • breaking

      added subschema #2 to the /// response property oneOf list for the response status

    • breaking

      added to the /// response property oneOf list for the response status

    • breaking

      the /// response's property type changed from string null to no type for status

    • info

      the response required property /// became read-only for the status