---
title: "Update package"
method: POST
path: "/package/update"
tags: ["Package"]
---

# Update package

`POST /package/update`

## Request

- Base URL: `https://demo.onlinebillingform.com/api/v2`
- URL: `https://demo.onlinebillingform.com/api/v2/package/update`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/billingserv/apis/billingserv-api-v2/docs/package/update/post.ts> (a function with typed inputs; its response is checked against the schema)

Use this BillingServ API endpoint to update package. Review the response for the operation result or validation errors.

## Request body `multipart/form-data`

- object
  - `id` integer, required
  - `group_id` integer, required
  - `name` string, required
  - `description` string
  - `tax` number
  - `url` string
  - `prorate` 'Y' | 'N'
  - `trial` string
  - `options` string[]
  - `keep` string[]
  - `files` string[]: Optional digital download files. Submit each file using the `files[]` multipart field. Accepted types: JPEG, PNG, JPG, GIF, SVG, PDF, DOC, DOCX, and ZIP. Maximum size: 20 MB per file.
  - `product_images` string[]: Optional product images. Submit each image using the `product_images[]` multipart field. Accepted types: JPEG, PNG, JPG, GIF, and SVG. Maximum size: 2 MB per image.
  - `cycle.cycle` string[]
  - `cycle.price` string[]
  - `cycle.setup` string[]
  - `featured` '0' | '1'
  - `upgrade_paths` string[]
  - `cycle.id` string[]: Required to change cycles: pass an existing cycle id to update that cycle, or null to add a new one. Existing cycles whose id is not listed are deleted. Omit all cycle fields to leave cycles unchanged.
  - `upgrade_paths.*.target_package_id` integer: Target package id for upgrade path
  - `upgrade_paths.*.sort_order` string[]: Optional upgrade path sort order
  - `theme` 1 | 2: Order page theme: 1 = ecommerce view, 2 = simple. Defaults to 2 on create.
  - `qty` integer: Stock quantity
  - `is_outofstock` '0' | '1': Whether the package is marked out of stock
  - `digital_delivery` DigitalDeliverySettings: Digital download and software licensing configuration for the package. Omitted properties are normalized to their documented defaults.
    - `delivery_enabled` boolean
    - `download_policy` 'open' | 'cap_limited' | 'time_limited'
    - `max_downloads` integer, nullable: Used when `download_policy` is `cap_limited`.
    - `link_expiry_hours` integer, nullable: Hours after the first download; used when `download_policy` is `time_limited`.
    - `ip_locked` boolean: Always enabled by the server when digital downloads are enabled.
    - `watermark_pdfs` boolean
    - `licensing_enabled` boolean
    - `activation_limit` integer, nullable: Null permits unlimited installations.
    - `customer_license_management` boolean
    - `maximum_reissues` integer, nullable: Maximum customer-initiated reissues; null permits unlimited reissues.
    - `enforce_domain` boolean
    - `enforce_ip` boolean
    - `enforce_installation_path` boolean
    - `license_key_prefix` string
    - `license_key_length` integer
    - `offline_cache_minutes` integer

## Response `200`

OK

- ApiResponse
  - `success` boolean

## Other responses

- `401`: Missing or invalid API key
- `403`: Authenticated key does not have permission for this endpoint
- `404`: The requested resource was not found or is not available to this API account.
- `422`: Validation error

## Changes

- **2026-08-22** `6b9208b64456`: 7 info
  - added the non-success response with the status `404`
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `403` status
  - added the optional property `code` to the response with the `422` status
  - …3 more
- **2026-08-17** `3b316cb43804`: 2 breaking
  - the `files` request property type changed from `string` to `array`, and format from `binary` to no format
  - the `product_images` request property type changed from `string` to `array`, and format from `binary` to no format

[Operation history](https://skmtc.dev/billingserv/apis/billingserv-api-v2/changes/package/update/post.md)

---

[API](https://skmtc.dev/billingserv/apis/billingserv-api-v2.md) - [All operations](https://skmtc.dev/billingserv/apis/billingserv-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/billingserv/apis/billingserv-api-v2/revisions/232ab5ca8413?raw)
