{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Product",
"title": "Product",
"required": [
"ChargingMode",
"Classifications",
"ConsumptionMoment",
"CreatedUtc",
"ExternalNames",
"Id",
"IsActive",
"Names",
"Options",
"Ordering",
"PostingMode",
"Price",
"Pricing",
"Promotions",
"ServiceId",
"ShortNames",
"UpdatedUtc"
],
"type": "object",
"properties": {
"Id": {
"type": "string",
"description": "Unique identifier of the product.",
"format": "uuid"
},
"ServiceId": {
"type": "string",
"description": "Unique identifier of the [Service](https://mews-systems.gitbook.io/connector-api/operations/services/#service).",
"format": "uuid"
},
"CategoryId": {
"type": "string",
"description": "Unique identifier of the Product category.",
"format": "uuid",
"nullable": true
},
"AccountingCategoryId": {
"type": "string",
"description": "Unique identifier of [Accounting Category](https://mews-systems.gitbook.io/connector-api/operations/accountingcategories/#accounting-category).",
"format": "uuid",
"nullable": true
},
"IsActive": {
"type": "boolean",
"description": "Whether the product is still active."
},
"IsDefault": {
"type": "boolean",
"deprecated": true
},
"Name": {
"type": "string",
"description": "Name of the product. **Deprecated!** Please use Names",
"nullable": true,
"deprecated": true,
"x-deprecatedMessage": "Use `Names` instead."
},
"Names": {
"title": "Localized text",
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "All translations of the name.",
"x-schema-id": "LocalizedStrings"
},
"ExternalName": {
"type": "string",
"description": "Name of the product meant to be displayed to customer. **Deprecated!** Please use ExternalNames",
"nullable": true,
"deprecated": true,
"x-deprecatedMessage": "Use `ExternalNames` instead."
},
"ExternalNames": {
"title": "Localized text",
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "All translations of external name.",
"x-schema-id": "LocalizedStrings"
},
"ShortName": {
"type": "string",
"description": "Short name of the product. **Deprecated!** Please use ShortNames",
"nullable": true,
"deprecated": true,
"x-deprecatedMessage": "Use `ShortNames` instead."
},
"ShortNames": {
"title": "Localized text",
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "All translations of short name.",
"x-schema-id": "LocalizedStrings"
},
"Description": {
"type": "string",
"description": "Description of the product. **Deprecated!** Please use Descriptions",
"nullable": true,
"deprecated": true,
"x-deprecatedMessage": "Use `Descriptions` instead."
},
"Descriptions": {
"title": "Localized text",
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "All translations of descriptions.",
"nullable": true,
"x-schema-id": "LocalizedStrings"
},
"Charging": {
"title": "Product charging mode",
"allOf": [
{
"$ref": "#/components/schemas/ProductChargingModeEnum"
}
],
"description": "\n\nOnce\n\nPerTimeUnit\n\nPerPersonPerTimeUnit\n\nPerPerson",
"deprecated": true,
"x-enumNames": [
"Once",
"PerTimeUnit",
"PerPersonPerTimeUnit",
"PerPerson"
],
"x-enumDescriptions": [
"",
"",
"",
""
]
},
"ChargingMode": {
"title": "Product charging mode",
"allOf": [
{
"$ref": "#/components/schemas/ProductChargingModeEnum"
}
],
"description": "Charging mode of the product.\n\nOnce\n\nPerTimeUnit\n\nPerPersonPerTimeUnit\n\nPerPerson",
"x-enumNames": [
"Once",
"PerTimeUnit",
"PerPersonPerTimeUnit",
"PerPerson"
],
"x-enumDescriptions": [
"",
"",
"",
""
]
},
"Posting": {
"title": "Product posting",
"allOf": [
{
"$ref": "#/components/schemas/ProductPostingEnum"
}
],
"description": "\n\nOnce\n\nDaily",
"deprecated": true,
"x-enumNames": [
"Once",
"Daily"
],
"x-enumDescriptions": [
"",
""
]
},
"PostingMode": {
"title": "Product posting mode",
"allOf": [
{
"$ref": "#/components/schemas/ProductPostingModeEnum"
}
],
"description": "Charging mode of the product.\n\nOnce\n\nPerTimeUnit",
"x-enumNames": [
"Once",
"PerTimeUnit"
],
"x-enumDescriptions": [
"",
""
]
},
"Options": {
"title": "Product options",
"allOf": [
{
"$ref": "#/components/schemas/ProductOptions"
}
],
"description": "Options of the product."
},
"Promotions": {
"allOf": [
{
"$ref": "#/components/schemas/Promotions"
}
],
"description": "Promotions of the product."
},
"Classifications": {
"title": "Product classifications",
"allOf": [
{
"$ref": "#/components/schemas/ProductClassifications"
}
],
"description": "Classifications of the product."
},
"Price": {
"title": "Extended amount",
"allOf": [
{
"$ref": "#/components/schemas/ExtendedAmount"
}
],
"description": "Price representing price of the product."
},
"Pricing": {
"title": "Product pricing",
"type": "object",
"properties": {
"Discriminator": {
"$ref": "#/components/schemas/ProductPricing"
},
"Value": {
"oneOf": [
{
"$ref": "#/components/schemas/ExtendedAmount"
},
{
"$ref": "#/components/schemas/RelativeProductPrice"
}
]
}
},
"deprecated": true,
"x-coproduct": true,
"x-schema-id": "ProductPricingCoproductOfProductPricing",
"x-deprecatedMessage": "Use `Price` instead."
},
"ImageIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"description": "Unique identifier of the product image.",
"nullable": true
},
"Ordering": {
"type": "integer",
"description": "Order value for presentation purposes.",
"format": "int32"
},
"ExternalIdentifier": {
"maxLength": 255,
"type": "string",
"description": "Identifier of the product from external system.",
"nullable": true
},
"TaxExemptionReason": {
"allOf": [
{
"$ref": "#/components/schemas/TaxExemptionReasonTypeEnum"
}
],
"description": "Specifies the reason a product is exempt from tax.\n\nUnknown (Unknown tax exemption reason)\n\nIT_N1 (N1 - Escluse ex art.15)\n\nIT_N2_2 (N2.2 - Non soggette \u2013 altri casi)\n\nIT_N3_5 (N3.5 - Non imponibili \u2013 a seguito di dichiarazioni d\u2019intento)\n\nIT_N4 (N4 - Esenti)\n\nIT_N5 (N5 - Regime del margine / IVA non esposta in fattura)\n\nPL_ZW (ZW - Zwolniony)\n\nPL_NP (NP - Nie podlega)\n\nDE_NATO (NATO-ZAbk - Umsatzsteuerbefreiung gem\u00e4\u00df Artikel 67(3) NATO-Zusatzabkommen)",
"nullable": true
},
"TaxExemptionLegalReference": {
"type": "string",
"description": "Legal reference that states why this product is exempt from tax.",
"nullable": true
},
"CreatedUtc": {
"minLength": 1,
"type": "string",
"description": "Creation date and time of the product in UTC timezone in ISO 8601 format.",
"format": "date-time"
},
"UpdatedUtc": {
"minLength": 1,
"type": "string",
"description": "Last update date and time of the product in UTC timezone in ISO 8601 format.",
"format": "date-time"
},
"ConsumptionMoment": {
"title": "Product consumption moment",
"allOf": [
{
"$ref": "#/components/schemas/ProductConsumptionMomentEnum"
}
],
"description": "Consumption moment of the product.\n\nServiceOrderEnd\n\nServiceOrderStart\n\nPostingTimeUnit\n\nNextTimeUnit",
"x-enumNames": [
"ServiceOrderEnd",
"ServiceOrderStart",
"PostingTimeUnit",
"NextTimeUnit"
],
"x-enumDescriptions": [
"",
"",
"",
""
]
}
},
"additionalProperties": false,
"x-schema-id": "Product"
}