# Models

## The ErrorMessage object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"ErrorMessage":{"title":"Error Message","description":"Schema for API-specific errors.","type":"object","properties":{"status":{"description":"Original HTTP error code. It should be consistent with the HTTP response code.","type":"integer"},"type":{"pattern":"[a-z]+[a-z_]*[a-z]+","description":"Classification of the error type.\n\n**Note:** The error type should be written in lowercase and include underscores, for example `validation_failure`.","type":"string"},"message":{"description":"Descriptive error message for debugging purposes.","type":"string"},"moreInfo":{"type":"string","description":"More information (such as a link to the documentation) for investigating further and getting support."},"details":{"description":"List of problems causing the error.","type":"array","items":{"title":"errorDetail","description":"Specific error cause.","type":"object","properties":{"field":{"description":"Element in request data which is causing the error, for example `category.name`.\n\nIf the violation was not field-specific, this field will be empty.","type":"string"},"type":{"pattern":"[a-z]+[a-z_]*[a-z]+","description":"Classification of the specific error cause. This value should always be interpreted within the context of the general error type.\n\n**Note:** The error type should be written in lowercase and include underscores, for example `missing_value`.","type":"string"},"message":{"description":"Descriptive error message for debugging purposes.","type":"string"},"moreInfo":{"type":"string","description":"More information (such as a link to the documentation) for investigating further and getting support."}}}}}}}}}
```

## The ItemFeeCreationResponse object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"ItemFeeCreationResponse":{"type":"object","properties":{"id":{"description":"unique identifier of the created resource","type":"string"},"yrn":{"description":"YRN of the created resource","type":"string"}},"required":["id"]}}}}
```

## The Localized object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"Localized":{"description":"The localized value in the form of map (language, value) or string.","oneOf":[{"type":"string","description":"string in the specified language."},{"type":"object","description":"Map of translations in form of language:translation pairs.\nThe keys (languages) should be ISO language codes.\nThe values (in specific languages) should be strings in specified language.","additionalProperties":{"type":"string"}}]}}}}
```

## The Fees object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"Fees":{"type":"array","items":{"$ref":"#/components/schemas/Fee"}},"Fee":{"type":"object","properties":{"id":{"description":"Unique identifier of the fee.","type":"string"},"name":{"description":"The localized fee name.","$ref":"#/components/schemas/Localized"},"description":{"description":"The localized fee description.","$ref":"#/components/schemas/Localized"},"code":{"maxLength":100,"description":"The code-name, unique for the tenant.","type":"string"},"feeType":{"description":"'PERCENT' for relative values, 'ABSOLUTE' for float values or 'ABSOLUTE_MULTIPLY_ITEMQUANTITY' for float values to be multiplied by the quantity of the item.","enum":["PERCENT","ABSOLUTE","ABSOLUTE_MULTIPLY_ITEMQUANTITY"],"type":"string"},"feePercentage":{"minimum":0,"description":"The fee rate in percentage. Required if feeType is 'PERCENT'.","type":"number"},"feeAbsolute":{"description":"The fee as an absolute amount. Required if type is 'ABSOLUTE'.","$ref":"#/components/schemas/monetaryAmount"},"itemType":{"description":"The itemtype the fee can belong to. It could be a product or\npaymenttype. ","enum":["PRODUCT","PAYMENTTYPE"],"type":"string"},"siteCode":{"description":"The SiteCode the fee belongs to.","type":"string"},"active":{"description":"Flag indicating whether the fee is currently active or not.","type":"boolean"},"taxable":{"description":"Flag indicating whether the fee is taxable or not.","type":"boolean"},"taxCode":{"description":"The tax code. When 'taxable' is set to true, the taxCode is mandatory","type":"string"},"activeTimespan":{"$ref":"#/components/schemas/timespan"},"yrn":{"$ref":"#/components/schemas/YRN"}},"required":["name","code","feeType","active","siteCode"]},"Localized":{"description":"The localized value in the form of map (language, value) or string.","oneOf":[{"type":"string","description":"string in the specified language."},{"type":"object","description":"Map of translations in form of language:translation pairs.\nThe keys (languages) should be ISO language codes.\nThe values (in specific languages) should be strings in specified language.","additionalProperties":{"type":"string"}}]},"monetaryAmount":{"title":"Monetary Amount","description":"Schema defining monetary amount in given currency.","type":"object","properties":{"amount":{"description":"The amount in the specified currency","type":"number"},"currency":{"pattern":"^[a-zA-Z]{3}$","description":"ISO 4217 currency code, e.g.: USD, EUR, CHF","type":"string"}},"required":["amount","currency"]},"timespan":{"description":"Restricts the active fees to be only applied in the specified\ntimespan.","title":"Timespan","type":"object","properties":{"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"}},"required":["startDate","endDate"]},"YRN":{"type":"string","title":"YRN","description":"A unique identifier of a global resource, which stores information about the resource, such as its type, ID or name of the tenant.","minLength":1}}}}
```

## The Fee object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"Fee":{"type":"object","properties":{"id":{"description":"Unique identifier of the fee.","type":"string"},"name":{"description":"The localized fee name.","$ref":"#/components/schemas/Localized"},"description":{"description":"The localized fee description.","$ref":"#/components/schemas/Localized"},"code":{"maxLength":100,"description":"The code-name, unique for the tenant.","type":"string"},"feeType":{"description":"'PERCENT' for relative values, 'ABSOLUTE' for float values or 'ABSOLUTE_MULTIPLY_ITEMQUANTITY' for float values to be multiplied by the quantity of the item.","enum":["PERCENT","ABSOLUTE","ABSOLUTE_MULTIPLY_ITEMQUANTITY"],"type":"string"},"feePercentage":{"minimum":0,"description":"The fee rate in percentage. Required if feeType is 'PERCENT'.","type":"number"},"feeAbsolute":{"description":"The fee as an absolute amount. Required if type is 'ABSOLUTE'.","$ref":"#/components/schemas/monetaryAmount"},"itemType":{"description":"The itemtype the fee can belong to. It could be a product or\npaymenttype. ","enum":["PRODUCT","PAYMENTTYPE"],"type":"string"},"siteCode":{"description":"The SiteCode the fee belongs to.","type":"string"},"active":{"description":"Flag indicating whether the fee is currently active or not.","type":"boolean"},"taxable":{"description":"Flag indicating whether the fee is taxable or not.","type":"boolean"},"taxCode":{"description":"The tax code. When 'taxable' is set to true, the taxCode is mandatory","type":"string"},"activeTimespan":{"$ref":"#/components/schemas/timespan"},"yrn":{"$ref":"#/components/schemas/YRN"}},"required":["name","code","feeType","active","siteCode"]},"Localized":{"description":"The localized value in the form of map (language, value) or string.","oneOf":[{"type":"string","description":"string in the specified language."},{"type":"object","description":"Map of translations in form of language:translation pairs.\nThe keys (languages) should be ISO language codes.\nThe values (in specific languages) should be strings in specified language.","additionalProperties":{"type":"string"}}]},"monetaryAmount":{"title":"Monetary Amount","description":"Schema defining monetary amount in given currency.","type":"object","properties":{"amount":{"description":"The amount in the specified currency","type":"number"},"currency":{"pattern":"^[a-zA-Z]{3}$","description":"ISO 4217 currency code, e.g.: USD, EUR, CHF","type":"string"}},"required":["amount","currency"]},"timespan":{"description":"Restricts the active fees to be only applied in the specified\ntimespan.","title":"Timespan","type":"object","properties":{"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"}},"required":["startDate","endDate"]},"YRN":{"type":"string","title":"YRN","description":"A unique identifier of a global resource, which stores information about the resource, such as its type, ID or name of the tenant.","minLength":1}}}}
```

## The monetaryAmount object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"monetaryAmount":{"title":"Monetary Amount","description":"Schema defining monetary amount in given currency.","type":"object","properties":{"amount":{"description":"The amount in the specified currency","type":"number"},"currency":{"pattern":"^[a-zA-Z]{3}$","description":"ISO 4217 currency code, e.g.: USD, EUR, CHF","type":"string"}},"required":["amount","currency"]}}}}
```

## The timespan object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"timespan":{"description":"Restricts the active fees to be only applied in the specified\ntimespan.","title":"Timespan","type":"object","properties":{"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"}},"required":["startDate","endDate"]}}}}
```

## The FeeWithItems object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"FeeWithItems":{"title":"FeeWithItems","type":"object","properties":{"fee":{"$ref":"#/components/schemas/Fee"},"itemYRNs":{"$ref":"#/components/schemas/ItemYRNs"}},"required":["fee"]},"Fee":{"type":"object","properties":{"id":{"description":"Unique identifier of the fee.","type":"string"},"name":{"description":"The localized fee name.","$ref":"#/components/schemas/Localized"},"description":{"description":"The localized fee description.","$ref":"#/components/schemas/Localized"},"code":{"maxLength":100,"description":"The code-name, unique for the tenant.","type":"string"},"feeType":{"description":"'PERCENT' for relative values, 'ABSOLUTE' for float values or 'ABSOLUTE_MULTIPLY_ITEMQUANTITY' for float values to be multiplied by the quantity of the item.","enum":["PERCENT","ABSOLUTE","ABSOLUTE_MULTIPLY_ITEMQUANTITY"],"type":"string"},"feePercentage":{"minimum":0,"description":"The fee rate in percentage. Required if feeType is 'PERCENT'.","type":"number"},"feeAbsolute":{"description":"The fee as an absolute amount. Required if type is 'ABSOLUTE'.","$ref":"#/components/schemas/monetaryAmount"},"itemType":{"description":"The itemtype the fee can belong to. It could be a product or\npaymenttype. ","enum":["PRODUCT","PAYMENTTYPE"],"type":"string"},"siteCode":{"description":"The SiteCode the fee belongs to.","type":"string"},"active":{"description":"Flag indicating whether the fee is currently active or not.","type":"boolean"},"taxable":{"description":"Flag indicating whether the fee is taxable or not.","type":"boolean"},"taxCode":{"description":"The tax code. When 'taxable' is set to true, the taxCode is mandatory","type":"string"},"activeTimespan":{"$ref":"#/components/schemas/timespan"},"yrn":{"$ref":"#/components/schemas/YRN"}},"required":["name","code","feeType","active","siteCode"]},"Localized":{"description":"The localized value in the form of map (language, value) or string.","oneOf":[{"type":"string","description":"string in the specified language."},{"type":"object","description":"Map of translations in form of language:translation pairs.\nThe keys (languages) should be ISO language codes.\nThe values (in specific languages) should be strings in specified language.","additionalProperties":{"type":"string"}}]},"monetaryAmount":{"title":"Monetary Amount","description":"Schema defining monetary amount in given currency.","type":"object","properties":{"amount":{"description":"The amount in the specified currency","type":"number"},"currency":{"pattern":"^[a-zA-Z]{3}$","description":"ISO 4217 currency code, e.g.: USD, EUR, CHF","type":"string"}},"required":["amount","currency"]},"timespan":{"description":"Restricts the active fees to be only applied in the specified\ntimespan.","title":"Timespan","type":"object","properties":{"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"}},"required":["startDate","endDate"]},"YRN":{"type":"string","title":"YRN","description":"A unique identifier of a global resource, which stores information about the resource, such as its type, ID or name of the tenant.","minLength":1},"ItemYRNs":{"description":"the itemYrns this fee is applied to","type":"object","properties":{"itemYrns":{"type":"array","items":{"type":"string"}},"siteCode":{"type":"string"}},"required":["itemYrns","siteCode"]}}}}
```

## The ItemYRNs object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"ItemYRNs":{"description":"the itemYrns this fee is applied to","type":"object","properties":{"itemYrns":{"type":"array","items":{"type":"string"}},"siteCode":{"type":"string"}},"required":["itemYrns","siteCode"]}}}}
```

## The ItemFee object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"ItemFee":{"type":"object","properties":{"id":{"description":"Unique identifier of the item fee.","type":"string"},"siteCode":{"description":"The SiteCode this fee belongs to.","type":"string"},"itemYrn":{"description":"YRN of the item to assign fees to.","type":"string"},"feeIds":{"description":"List of unique identifiers of fees to assign to the item.","type":"array","items":{"type":"string"}}},"required":["itemYrn","feeIds","siteCode"]}}}}
```

## The ItemFees object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"ItemFees":{"type":"array","items":{"$ref":"#/components/schemas/ItemFee"}},"ItemFee":{"type":"object","properties":{"id":{"description":"Unique identifier of the item fee.","type":"string"},"siteCode":{"description":"The SiteCode this fee belongs to.","type":"string"},"itemYrn":{"description":"YRN of the item to assign fees to.","type":"string"},"feeIds":{"description":"List of unique identifiers of fees to assign to the item.","type":"array","items":{"type":"string"}}},"required":["itemYrn","feeIds","siteCode"]}}}}
```

## The FeeIds object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"FeeIds":{"type":"array","items":{"type":"string"}}}}}
```

## The FeeIdsUpdate object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"FeeIdsUpdate":{"type":"object","properties":{"feeIds":{"type":"array","items":{"type":"string"}}},"required":["feeIds"]}}}}
```

## The YRN object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"YRN":{"type":"string","title":"YRN","description":"A unique identifier of a global resource, which stores information about the resource, such as its type, ID or name of the tenant.","minLength":1}}}}
```

## The SearchItemFee object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"SearchItemFee":{"type":"object","description":"Search ItemFee request body.","properties":{"productId":{"type":"string"},"siteCodes":{"type":"array","items":{"type":"string"}},"pageNumber":{"type":"integer","default":1},"pageSize":{"type":"integer","default":16}},"required":["productId","siteCodes"]}}}}
```

## The SearchItemsFee object

```json
{"openapi":"3.0.0","info":{"title":"Fee Service","version":"v1"},"components":{"schemas":{"SearchItemsFee":{"type":"object","description":"Search ItemsFee request body.","properties":{"productIds":{"type":"string"},"siteCode":{"type":"string"},"pageNumber":{"type":"integer","default":1},"pageSize":{"type":"integer","default":16}},"required":["productIds","siteCode"]}}}}
```
