# Pricelist API **Base URL**: https://dev-cloud.acronis.com/api/price_sync/v1 ## Security ### OAuth 2.0 OAuth 2.0 security scheme definition for a user authorization. Supported grant types: * `password` * `client_credentials` * `authorization_code` * `urn:ietf:params:oauth:grant-type:jwt-bearer` Authorization URI example: `/api/2/idp/authorize` Access token URI example: `/api/2/idp/token` ### Request parameters #### Headers | Name | Description | |------|-------------| | `Authorization` | (Required) OAuth 2.0 access token.

**Type**: String
**Pattern**: `^Bearer [0-9a-zA-Z\-\._~+/]+={0,2}$` | ### Scopes * `urn:acronis.com::service_plans_manager:|cti.a.p.lic.service_plan.v1.0[type={plan type}]:writer` * `urn:acronis.com::service_plans_manager:|cti.a.p.lic.service_plan.v1.0[type={plan type}]:reader` * `urn:acronis.com::service_plans_manager::price_list_writer` * `urn:acronis.com::service_plans_manager::price_list_reader` ## Endpoints ### Fetch tenant's price lists (GET /effective_price_lists) Returns a tenant's price lists for one or more months. #### Security The endpoint supports the following authorization methods: `OAuth 2.0` For OAuth2 authorization method, one of the following scopes is required by the endpoint: * `urn:acronis.com::service_plans_manager::price_list_reader` #### Request parameters ##### Headers | Name | Description | |------|-------------| | `Authorization` | (Required) JWT authorization header

**Type**: String
**Pattern**: `^Bearer (.*)$` | ##### Query parameters | Name | Description | |------|-------------| | `tenant_id` | (Required) Tenant UUID to fetch prices for.

**Type**: String
**Pattern**: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` | | `months` | (Required) Array of months (format YYYY-MM) for which to retrieve price lists.

**Type**: String | #### Responses ##### `200` — Price lists have been successfully retrieved. **Media type**: `application/json` - `price_lists` — Collected price lists for the requested months.

**Type**: Array of Object
**Array type description:**
**Type**: Object **Example**: ```json { "price_lists": [ { "month": "", "currency": "", "commitment": "", "pricelist_code": "", "prices": [ { "sku": "", "effective_price": "", "list_price": "", "sku_discount": "", "pricelist_discount": "", "category": "", "sub_category": "", "name": "", "friendly_name": "" } ] } ] } ``` ##### `500` — Something unexpected has gone wrong on the server. **Media type**: `application/json` - `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field

**Type**: String - `context` — Error context dictionary

**Type**: Object - `code` — Error id or code, unique in the domain. Same as in 'reason' field

**Type**: String
**Allowed values**:
- `INTERNAL_SERVER_ERROR` - `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')

**Type**: String
**Allowed values**:
- `GENERAL` - `debug` — Error debug information (map type)

**Type**: Object - `kb_link` — Components for kblink

**Type**: Object - `message` — human-readable message, describing the error.

**Type**: String **Example**: ```json { "domain": "GENERAL", "code": "INTERNAL_SERVER_ERROR" } ``` ##### `400` — The request cannot be processed since it's malformed or contains invalid data. **Media type**: `application/json` - `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field

**Type**: String - `context` — Error context dictionary

**Type**: Object - `code` — Error id or code, unique in the domain. Same as in 'reason' field

**Type**: String
**Allowed values**:
- `BAD_REQUEST_ERROR` - `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')

**Type**: String
**Allowed values**:
- `GENERAL` - `debug` — Error debug information (map type)

**Type**: Object - `kb_link` — Components for kblink

**Type**: Object - `message` — human-readable message, describing the error.

**Type**: String **Example**: ```json { "domain": "GENERAL", "code": "BAD_REQUEST_ERROR" } ``` ##### `401` — Method required an authenticated user. **Media type**: `application/json` - `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field

**Type**: String - `context` — Error context dictionary

**Type**: Object - `code` — Error id or code, unique in the domain. Same as in 'reason' field

**Type**: String
**Allowed values**:
- `UNAUTHORIZED_REQUEST` - `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')

**Type**: String
**Allowed values**:
- `ACCESS` - `debug` — Error debug information (map type)

**Type**: Object - `kb_link` — Components for kblink

**Type**: Object - `message` — human-readable message, describing the error.

**Type**: String **Example**: ```json { "domain": "ACCESS", "code": "UNAUTHORIZED_REQUEST" } ``` ##### `403` — Current user has no permissions for this URL/method. **Media type**: `application/json` - `reason` — Obsolete. Error id or code, unique in the domain. Same as in 'code' field

**Type**: String - `context` — Error context dictionary

**Type**: Object - `code` — Error id or code, unique in the domain. Same as in 'reason' field

**Type**: String
**Allowed values**:
- `ACCESS_DENIED_ERROR` - `domain` — Error type or category. Can be ['Licensing','Access'] or name of service (for example 'PolicyManager' or 'VaultManager')

**Type**: String
**Allowed values**:
- `ACCESS` - `debug` — Error debug information (map type)

**Type**: Object - `kb_link` — Components for kblink

**Type**: Object - `message` — human-readable message, describing the error.

**Type**: String **Example**: ```json { "domain": "ACCESS", "code": "ACCESS_DENIED_ERROR", "context": { "scope": "urn:acronis.com:tenant-id:1234567890:company_admin" } } ```