# Create virtual currency package

Creates a virtual currency package.

Endpoint: POST /v2/project/{project_id}/admin/items/virtual_currency/package
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    Project ID. You can find this parameter in your Publisher Account next to the project name and in the browser address bar when working with a project. The URL has the following format: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `sku` (string, required)
    Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores.

  - `name` (object,null, required)
    Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the [documentation](/doc/shop-builder/references/supported-languages/).

  - `description` (object,null, required)
    Object with localizations for item’s description. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character locale codes (e.g., en-US).  While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the [documentation](/doc/shop-builder/references/supported-languages/).

  - `long_description` (object,null)
    Object with localizations for long description of item. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character locale codes (e.g., en-US).  While both formats are accepted as input, responses return two-letter lowercase language codes. When both variants for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the [documentation](/doc/shop-builder/references/supported-languages/).

  - `image_url` (string)
    Image URL. For the image to display correctly and load quickly on the payment UI, check our image and URL guidelines:Supported formats: WebP (recommended), PNG, JPG.File size: ≤ 50 KB (for WebP) or ≤ 150 KB (for PNG and JPG).Image size: 280 x 280 px.Color space: sRGB.Protocol: HTTPS with long-lived caching for versioned URLs.

  - `media_list` (array)
    Item's additional assets such as screenshots, gameplay video and so on.

  - `media_list.type` (string)
    Type of media: image/video.
    Enum: "image", "video"

  - `media_list.url` (string)
    Resource file.
    Example: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"

  - `groups` (array)
    List of [group external IDs](/api/catalog/item-groups-admin/admin-get-item-group-list/#!path=groups/external_id&t=response) the item belongs to.

Example: ["horror", "action"]

  - `attributes` (array)
    List of attributes.
Attention. You can't specify more than 20 attributes for the item. Any attempts to exceed the limit result in an error.

  - `attributes.external_id` (string, required)
    Unique attribute ID. The external_id may contain only lowercase and uppercase Latin alphanumeric characters, dashes, and underscores.

  - `attributes.name` (object)
    Object with localizations for attribute's name. Keys are specified in ISO 3166-1.

  - `attributes.values` (array, required)
    Attention. You can't create more than 6 values for each attribute. Any attempts to exceed the limit result in an error.
    Example: [{"external_id":"strategy","value":{"en":"Strategy","de":"Strategie"}},{"external_id":"action","value":{"en":"Action","de":"Aktion"}}]

  - `attributes.values.external_id` (string, required)
    Unique value ID for an attribute. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.
    Example: "value_external_id"

  - `attributes.values.value` (object, required)
    Object with localizations of the value's name. Keys are specified in ISO 3166-1.

  - `prices` (array)
    Example: [{"currency":"USD","amount":10.5,"is_default":true,"is_enabled":true,"country_iso":"US"}]

  - `prices.currency` (string, required)
    Item price currency. Three-letter code per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Check the documentation for detailed information about [currencies supported by Xsolla](https://developers.xsolla.com/doc/pay-station/references/supported-currencies/).
    Example: "USD"

  - `prices.amount` (number, required)
    Item price in real currency.
    Example: 10.5

  - `prices.is_default` (boolean)
    Whether it is the default price in real currency. Refer to our [documentation](https://developers.xsolla.com/items-catalog/catalog-features/pricing-policy/#pricing_policy_country_determination) for detailed information on price settings.
    Example: true

  - `prices.is_enabled` (boolean)
    Whether this price is used for displaying in the catalog and for purchasing the item. If false, the price is not used and another price is applied. Refer to our [documentation](https://developers.xsolla.com/items-catalog/catalog-features/pricing-policy/#pricing_policy_country_determination) for detailed information on price settings.
    Example: true

  - `prices.country_iso` (string,null)
    Country where this price is available. Two-letter code per [ISO 3166-1 alpha 2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
    Example: "US"

  - `vc_prices` (array,null)
    Array of virtual currency prices.
    Example: [{"sku":"com.xsolla.gold_1","amount":10,"is_default":true,"is_enabled":true}]

  - `vc_prices.sku` (string, required)
    Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores.
    Example: "com.xsolla.gold_1"

  - `vc_prices.amount` (integer, required)
    Item price in virtual currency.
    Example: 10

  - `vc_prices.is_default` (boolean, required)
    Whether it is the default price in virtual currency.
    Example: true

  - `vc_prices.is_enabled` (boolean, required)
    Whether this price is used for displaying in the catalog and for purchasing the item. If false, the price is not used.
    Example: true

  - `is_enabled` (boolean)
    Whether the item is available. If false, the item can't be purchased in the store or obtained as part of a bundle or within a marketing campaign. Refer to our [documentation](https://developers.xsolla.com/items-catalog/catalog-features/items-availability/) for detailed information about item availability.

  - `is_show_in_store` (boolean)
    Whether the item is displayed in the catalog. If false and is_enabled: true, the item is not visible in the catalog but can be obtained as part of a bundle or within marketing campaigns. Refer to our [documentation](https://developers.xsolla.com/items-catalog/catalog-features/items-availability/) for detailed information about item availability.

  - `is_free` (boolean)
    Whether the item is free.

  - `is_paid_randomized_reward` (boolean)
    Whether the item is a randomized paid reward, e.g., a loot box.

  - `order` (integer)
    Item display order in the catalog. The higher the value, the lower the item appears in the list.
If the values are the same, items are sorted by creation date, with newer items displayed higher.

  - `content` (array, required)
    Virtual currency package should contain only 1 position of virtual currency.

  - `content.sku` (string)
    Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores.

  - `content.quantity` (integer)

  - `regions` (array)
    Array of regions where the item is available. If the array is empty or not passed, the item is available in all regions.

  - `regions.id` (integer)
    Region ID within the project.

Refer to the [regional sale restriction documentation](https://developers.xsolla.com/items-catalog/catalog-features/regional-restrictions/) and [region management API calls](https://developers.xsolla.com/api/catalog/common-regions) for detailed information.
    Example: 1

  - `limits` (object)
    Item limits.

  - `limits.per_user` (any)
    Item limitation for a separate user.

  - `limits.per_item` (integer,null)
    Global item limitation.

  - `limits.recurrent_schedule` (object,null)
    Limit refresh period.

  - `limits.recurrent_schedule.per_user` (any)
    Reset of the purchase limit performed at the specified time interval in hours.

  - `periods` (array,null)
    Item sales period.

  - `periods.date_from` (string)
    Date when the specified item will be available for sale.
    Example: "2020-08-11T10:00:00+03:00"

  - `periods.date_until` (string,null)
    Date when the specified item will become unavailable for sale. Can be null.
    Example: "2020-08-11T20:00:00+03:00"

  - `custom_attributes` (object)
    A JSON object containing item attributes and values. Attributes allow you to add more info to items like the player's required level to use the item. Attributes enrich your game's internal logic and are accessible through dedicated GET methods and webhooks.

## Response 201 fields (application/json):

  - `sku` (string)
    Example: "com.xsolla.item_1"

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]: Unprocessable Entity. The property `property_name` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"

  - `errorMessageExtended` (array)


