---
title: "Add items"
method: POST
path: "/assistedSales/v1/opportunities/{opportunityId}/items"
tags: ["AppResellerOpportunities"]
---

# Add items

`POST /assistedSales/v1/opportunities/{opportunityId}/items`

## Request

- Base URL: `https://marketplace.appdirect.com/api`
- URL: `https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/items`
- Auth: none declared
- TypeScript: <https://skmtc.dev/appdirect/apis/companies/docs/assistedSales/v1/opportunities/:opportunityId/items/post.ts> (a function with typed inputs; its response is checked against the schema)

Add one or more items to an opportunity

Required: Accept-Language header with Locale format. For example: en-US

## Path parameters

- `opportunityId` string, required

## Request body

- OpportunityItem[]
  - `id` string: Item ID
  - `parentItemId` string: The parent product's Product ID. Only relevant to and required for add-on products.
  - `pricingPlanId` string: Pricing plan ID
  - `units` BillingConfiguration[]: List of units (quantity and type) associated with the item
    - `date` number: Custom billing activation date in UNIX Epoch milliseconds. This date is required when the billing strategy is CUSTOM. Do not set the date when the strategy is UPON_SERVICE_ACTIVATION or NEXT_BILLING_CYCLE.
    - `strategy` 'CUSTOM' | 'NEXT_BILLING_CYCLE' | 'UPON_SERVICE_ACTIVATION'
  - `productId` string: Product ID
  - `subscriptionCustomAttributes` object: Custom attributes related to the subscription
  - `vendorRequiredFields` object: Custom attributes related to vendor required fields for the subscription
  - `provisioningConfiguration` object: Custom service activation dates
    - `date` number: Custom service activation date in UNIX Epoch milliseconds. This date is required when the provisioning strategy is CUSTOM. Do not set the date when the strategy is IMMEDIATELY.
    - `strategy` 'CUSTOM' | 'IMMEDIATELY'
  - `billingConfiguration` object: Custom billing dates
    - `date` number: Custom billing activation date in UNIX Epoch milliseconds. This date is required when the billing strategy is CUSTOM. Do not set the date when the strategy is UPON_SERVICE_ACTIVATION or NEXT_BILLING_CYCLE.
    - `strategy` 'CUSTOM' | 'NEXT_BILLING_CYCLE' | 'UPON_SERVICE_ACTIVATION'

## Response `200`

Success

- OpportunityItem[]
  - `id` string: Item ID
  - `parentItemId` string: The parent product's Product ID. Only relevant to and required for add-on products.
  - `pricingPlanId` string: Pricing plan ID
  - `units` BillingConfiguration[]: List of units (quantity and type) associated with the item
    - `date` number: Custom billing activation date in UNIX Epoch milliseconds. This date is required when the billing strategy is CUSTOM. Do not set the date when the strategy is UPON_SERVICE_ACTIVATION or NEXT_BILLING_CYCLE.
    - `strategy` 'CUSTOM' | 'NEXT_BILLING_CYCLE' | 'UPON_SERVICE_ACTIVATION'
  - `productId` string: Product ID
  - `subscriptionCustomAttributes` object: Custom attributes related to the subscription
  - `vendorRequiredFields` object: Custom attributes related to vendor required fields for the subscription
  - `provisioningConfiguration` object: Custom service activation dates
    - `date` number: Custom service activation date in UNIX Epoch milliseconds. This date is required when the provisioning strategy is CUSTOM. Do not set the date when the strategy is IMMEDIATELY.
    - `strategy` 'CUSTOM' | 'IMMEDIATELY'
  - `billingConfiguration` object: Custom billing dates
    - `date` number: Custom billing activation date in UNIX Epoch milliseconds. This date is required when the billing strategy is CUSTOM. Do not set the date when the strategy is UPON_SERVICE_ACTIVATION or NEXT_BILLING_CYCLE.
    - `strategy` 'CUSTOM' | 'NEXT_BILLING_CYCLE' | 'UPON_SERVICE_ACTIVATION'

## Other responses

- `400`: Missing or invalid required parameter
- `401`: Unauthorized
- `403`: The user does not have access to the opportunity, or the user does not have permission to execute the action, or the opportunity status does not allow the action
- `404`: Invalid opportunity ID, or product or pricing plan not found
- `409`: Restrictions apply to one or more products

## Changes

- **2026-11-06** `1fc240f06971`: 7 breaking, 38 info
  - the `items/` request property type changed from no type to `object`
  - the response's body type changed from no type to `object` for status `400`
  - the response's body type changed from no type to `object` for status `401`
  - the response's body type changed from no type to `object` for status `403`
  - …41 more

[Operation history](https://skmtc.dev/appdirect/apis/companies/changes/assistedSales/v1/opportunities/:opportunityId/items/post.md)

---

[API](https://skmtc.dev/appdirect/apis/companies.md) - [All operations](https://skmtc.dev/appdirect/apis/companies/llms.txt) - [OpenAPI document](https://skmtc.dev/appdirect/apis/companies/revisions/1fc240f06971?raw)
