UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 38 kB
{"openapi":"3.0.1","servers":[{"description":"Production","url":"https://products.izettle.com","variables":{}}],"info":{"description":"The Product Library API is used for managing merchant's product information and product images.","title":"Product Library API","version":"1.0.0","x-apisguru-categories":["ecommerce"],"x-logo":{"url":"https://cdn.izettle.com/favicons/favicon-32x32.png"},"x-origin":[{"format":"openapi","url":"https://products.izettle.com/openapi.json","version":"3.0"}],"x-providerName":"izettle.com","x-serviceName":"products"},"paths":{"/organizations/{organizationUuid}/categories/v2":{"get":{"operationId":"getProductTypes","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryResponse"}}},"description":"List of all categories"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve all categories","tags":["categories"]},"post":{"operationId":"createCategories","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCategoriesRequest"}}},"required":true},"responses":{"201":{"description":"Category created"},"400":{"description":"Category already exists"},"404":{"description":"Organization not found"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Create a new category","tags":["categories"]}},"/organizations/{organizationUuid}/categories/v2/{categoryUuid}":{"delete":{"operationId":"deleteCategory","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"categoryUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Category deleted"},"404":{"description":"Organization not found"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Delete a category","tags":["categories"]},"patch":{"operationId":"renameCategory","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"categoryUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameCategoryRequest"}}},"required":true},"responses":{"204":{"description":"Category renamed"},"400":{"description":"Category already exists"},"404":{"description":"Organization not found"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Rename a category","tags":["categories"]}},"/organizations/{organizationUuid}/discounts":{"get":{"operationId":"getAllDiscounts","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DiscountResponse"},"type":"array"}}},"description":"List of all discounts"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve all discounts","tags":["discounts"]},"post":{"description":"Creates a single discount entity. The location of the newly created discount will be available in the successful response as a HttpHeaders.LOCATION header","operationId":"createDiscount","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscountRequest"}}}},"responses":{"201":{"description":"Discount created","headers":{"ETag":{"description":"ETag value","schema":{"type":"string"},"style":"simple"},"Location":{"description":"Location of newly created Discount","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Create a discount","tags":["discounts"]}},"/organizations/{organizationUuid}/discounts/{discountUuid}":{"delete":{"operationId":"deleteDiscount","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"discountUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Discount deleted"},"404":{"description":"Organization or Discount not found"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Delete a single discount ","tags":["discounts"]},"get":{"description":"Get the full discount with the provided UUID. The method supports conditional GET through providing a HttpHeaders.IF_NONE_MATCH header. If the conditional prerequisite is fullfilled, the full discount is returned: otherwise a 304 not modified will be returned with an empty body.","operationId":"getDiscount","parameters":[{"in":"header","name":"If-None-Match","schema":{"type":"string"}},{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"discountUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscountResponse"}}},"description":"Discount","headers":{"ETag":{"description":"ETag value","schema":{"type":"string"},"style":"simple"}}},"304":{"description":"Not modified"},"404":{"description":"Organization or Discount not found"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve a single discount","tags":["discounts"]},"put":{"description":"Updates a discount entity using JSON merge patch (https://tools.ietf.org/html/rfc7386). This means that only included fields will be changed: null values removes the field on the target entity, and other values updates the field. Conditional updates are supported through the HttpHeaders.IF_MATCH header. If the conditional prerequisite is fullfilled, the discount is updated: otherwise a 412 precondition failed will be returned with an empty body.","operationId":"updateDiscount","parameters":[{"in":"header","name":"If-Match","schema":{"type":"string"}},{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"discountUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscountRequest"}}},"required":true},"responses":{"204":{"description":"Discount updated","headers":{"ETag":{"description":"ETag value","schema":{"type":"string"},"style":"simple"},"Location":{"description":"Location of updated Discount","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"412":{"description":"Precondition failed: ETag did not match the expected value"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Update a single discount","tags":["discounts"]}},"/organizations/{organizationUuid}/images":{"get":{"description":"Retrieves all library items images used by the organization, sorted by updated date","operationId":"getAllImageUrls","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibraryImagesResponse"}}},"description":"List of all image urls"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve all library item images","tags":["images"]}},"/organizations/{organizationUuid}/import/status":{"get":{"operationId":"getLatestImportStatus","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportResponse"}}},"description":"Import status"},"404":{"description":"Organization or import not found"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Get status for latest import","tags":["import"]}},"/organizations/{organizationUuid}/import/status/{importUuid}":{"get":{"operationId":"getStatusByUuid","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"importUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportResponse"}}},"description":"Import status"},"404":{"description":"Organization or import not found"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Get status for an import","tags":["import"]}},"/organizations/{organizationUuid}/import/v2":{"post":{"operationId":"importLibraryV2","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkImportRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportResponse"}}},"description":"Import status"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Import library items","tags":["import"]}},"/organizations/{organizationUuid}/library":{"get":{"description":"Will return the entire library for the authenticated user. If size of the library exceeds server preferences (normally 500) or the value of the optional limit parameter, the result will be paginated. Paginated responses return a Link header, indicating the next URI to fetch. The resulting header value will look something like:\n\n<https://products.izettle.com/organizations/self/library?limit=X&offset=Y>; rel=\"next\"\n\nwhere limit is number of items in response, and offset is the current position in pagination. The rel-part in the header is the links relation to the data previously recieved. The idea is that as long as this header is present there are still items remaining to be fetched. When either the header is not present or it's value doesn't contain any \"next\" value, all items have been sent to the client.\n\nNote: The client should NOT try to extract query parameters from the URI, but rather use it as-is for the next request. Also, clients should be perpared that one Link header might contain multiple other IRIs that are not \"next\" (there will never be more than one \"next\" though). See more at:\n\n IETF: https://tools.ietf.org/html/rfc5988\n GitHub: https://developer.github.com/guides/traversing-with-pagination/\n\nIf eventLogUuid is provided, the response will only include events affecting the library since that event. Such responses are normally quite small and would be a preferred method for most fat clients after retrieving the initial full library.\n","operationId":"getLibrary","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"eventLogUuid","schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","schema":{"default":500,"format":"int32","maximum":500,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"type":"string"}},{"in":"query","name":"all","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibraryResponse"}}},"description":"List of library items","headers":{"Link":{"description":"If the response is paginated this header will contain the URI for the next page. See more at: https://tools.ietf.org/html/rfc5988","schema":{"type":"string"},"style":"simple"}}},"412":{"description":"Invalid event log uuid. If the eventLogUuid query parameter was provided a 412 response indicates that the number of changes in the product exceeds the limit since that particular event (currently 500 changes). \nWhen this happens, the client should remove the eventLogUuid query parameters and try again."}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve the entire library","tags":["library"]}},"/organizations/{organizationUuid}/products":{"delete":{"operationId":"deleteProducts","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"List of product UUIDs to be deleted","in":"query","name":"uuid","required":true,"schema":{"items":{"format":"uuid","type":"string"},"type":"array"}}],"responses":{"204":{"description":"Products deleted"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Delete a list of products","tags":["products"]},"get":{"operationId":"getAllProductsInPos","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductResponse"},"type":"array"}}},"description":"A list of products"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve all products visible in POS","tags":["products"]},"post":{"operationId":"createProduct","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"returnEntity","schema":{"default":false,"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreateRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductResponse"}}},"description":"Product created. It will include the Product in the response only if 'returnEntity' is true","headers":{"ETag":{"description":"ETag value","schema":{"type":"string"},"style":"simple"},"Location":{"description":"Location of newly created Product","schema":{"type":"string"},"style":"simple"}}}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Create a new product","tags":["products"]}},"/organizations/{organizationUuid}/products/online/slug":{"post":{"description":"Creates a unique slug (identifier) for a product. The slug is used to create a product URL","operationId":"createProductSlug","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSlugRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugResponse"}}},"description":"Product slug"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Create a product identifier","tags":["products/online"]}},"/organizations/{organizationUuid}/products/options":{"get":{"operationId":"getAllOptions","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/VariantOptionsResponse"},"type":"array"}}},"description":"List of Options"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve an aggregate of active Options in the library","tags":["products"]}},"/organizations/{organizationUuid}/products/v2":{"get":{"operationId":"getAllProductsV2","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"If true, sorts response by created date","in":"query","name":"sort","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductResponse"},"type":"array"}}},"description":"A list of products"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve all products visible in POS – v2","tags":["products"]}},"/organizations/{organizationUuid}/products/v2/count":{"get":{"operationId":"countAllProducts","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductCountResponse"},"type":"array"}}},"description":"Count of existing products"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve the count of existing products","tags":["products"]}},"/organizations/{organizationUuid}/products/v2/{productUuid}":{"put":{"description":"Updates a product entity using JSON merge patch (https://tools.ietf.org/html/rfc7386). This means that only included fields will be changed: null values removes the field on the target entity, and other values updates the field. Conditional updates are supported through the HttpHeaders.IF_MATCH header. If the conditional prerequisite is fullfilled, the product is updated: otherwise a 412 (precondition failed) will be returned with an empty body.","operationId":"updateProduct","parameters":[{"in":"header","name":"If-Match","schema":{"type":"string"}},{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"productUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FullProductUpdateRequest"}}},"required":true},"responses":{"204":{"description":"Product updated","headers":{"ETag":{"description":"ETag value","schema":{"type":"string"},"style":"simple"},"Location":{"description":"Location of updated product","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"412":{"description":"Precondition failed: ETag did not match the expected value"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Update a single product","tags":["products"]}},"/organizations/{organizationUuid}/products/{productUuid}":{"delete":{"operationId":"deleteProduct","parameters":[{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"productUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Product deleted"},"404":{"description":"Organization or Product not found"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Delete a single product","tags":["products"]},"get":{"description":"Get the full product with the provided UUID. The method supports conditional GET through providing a HttpHeaders.IF_NONE_MATCH header. If the conditional prerequisite is fullfilled, the full product is returned, otherwise a 304 not modified will be returned with an empty body.","operationId":"getProduct","parameters":[{"in":"header","name":"If-None-Match","schema":{"type":"string"}},{"in":"path","name":"organizationUuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"productUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductResponse"}}},"description":"Product","headers":{"ETag":{"description":"ETag value","schema":{"type":"string"},"style":"simple"}}},"304":{"description":"Not modified"},"400":{"description":"Malformed ETag"},"404":{"description":"Organization or Product not found"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Retrieve a single product","tags":["products"]}},"/v1/taxes":{"get":{"operationId":"getTaxRates","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TaxRatesResponse"},"type":"array"}}},"description":"List of tax rates"},"403":{"description":"Not a sales tax user"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Get all available tax rates","tags":["taxes"]},"post":{"operationId":"createTaxRates","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxRatesCreateRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxRatesResponse"}}},"description":"Tax rates created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"403":{"description":"Not a sales tax user"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Create new tax rates","tags":["taxes"]}},"/v1/taxes/count":{"get":{"operationId":"getProductCountForAllTaxes","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxRateProductCountResponse"}}},"description":"Count of products for each tax rate"},"403":{"description":"Not a sales tax user"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Get all tax rates and a count of products associated with each","tags":["taxes"]}},"/v1/taxes/settings":{"get":{"operationId":"getTaxSettings","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxSettingsResponse"}}},"description":"Tax settings"},"403":{"description":"Not a sales tax user"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Get the organization tax settings ","tags":["taxes"]},"put":{"operationId":"setTaxationMode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxSettingsUpdateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxSettingsResponse"}}},"description":"Updated tax settings"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"403":{"description":"Not a sales tax user"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Update the organization tax settings","tags":["taxes"]}},"/v1/taxes/{taxRateUuid}":{"delete":{"operationId":"deleteTaxRate","parameters":[{"in":"path","name":"taxRateUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Tax rate deleted"},"403":{"description":"Not a sales tax user"},"404":{"description":"Tax rate not found"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Delete a single tax rate","tags":["taxes"]},"get":{"operationId":"getTaxRate","parameters":[{"in":"path","name":"taxRateUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxRate"}}},"description":"Single tax rate"},"403":{"description":"Not a sales tax user"},"404":{"description":"Tax rate not found"}},"security":[{"ZettleOauth":["READ:PRODUCT"]}],"summary":"Get a single tax rate","tags":["taxes"]},"put":{"operationId":"updateTaxRate","parameters":[{"in":"path","name":"taxRateUuid","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxRateUpdateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxRate"}}},"description":"Updated tax rate"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid request body"},"403":{"description":"Not a sales tax user"},"404":{"description":"Tax rate not found"}},"security":[{"ZettleOauth":["WRITE:PRODUCT"]}],"summary":"Update a single tax rate","tags":["taxes"]}}},"components":{"schemas":{"BulkImportRequest":{"properties":{"products":{"items":{"$ref":"#/components/schemas/FullProductUpdateRequest"},"type":"array"}},"required":["products"],"type":"object"},"CategoryDTO":{"properties":{"name":{"maxLength":100,"minLength":0,"type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["name","uuid"],"type":"object"},"CategoryResponse":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/CategoryDTO"},"type":"array"}},"required":["categories"],"type":"object"},"ConstraintViolation":{"properties":{"constraintType":{"enum":["MUST_BE_FALSE","MUST_BE_TRUE","MUST_BE_LESS_THAN","MUST_BE_GREATER_THAN","DIGIT_OUT_OF_BOUNDS","DATE_MUST_BE_IN_THE_FUTURE","MUST_BE_LESS_OR_EQUAL_THAN","MUST_BE_GREATER_OR_EQUAL_TO","MUST_NOT_BE_NULL","MUST_BE_NULL","DATE_MUST_BE_IN_THE_PAST","MUST_MATCH_PATTERN","INVALID_SIZE","INVALID_EMAIL","MUST_NOT_BE_EMPTY","INVALID_RANGE","UNKNOWN"],"type":"string"},"developerMessage":{"type":"string"},"expected":{"type":"string"},"propertyName":{"type":"string"},"value":{"type":"string"}},"type":"object"},"CreateCategoriesRequest":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/CategoryDTO"},"type":"array"}},"required":["categories"],"type":"object"},"CreateSlugRequest":{"properties":{"productName":{"maxLength":256,"minLength":1,"type":"string"}},"required":["productName"],"type":"object"},"DiscountRequest":{"properties":{"amount":{"$ref":"#/components/schemas/Price"},"description":{"maxLength":128,"minLength":0,"type":"string"},"externalReference":{"maxLength":128,"minLength":0,"type":"string"},"imageLookupKeys":{"items":{"type":"string"},"type":"array","uniqueItems":true},"name":{"maxLength":64,"minLength":0,"type":"string"},"percentage":{"maximum":100,"minimum":0,"type":"number"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid"],"type":"object"},"DiscountResponse":{"properties":{"amount":{"$ref":"#/components/schemas/Price"},"created":{"format":"date-time","type":"string"},"description":{"type":"string"},"etag":{"type":"string"},"externalReference":{"type":"string"},"imageLookupKeys":{"items":{"type":"string"},"type":"array","uniqueItems":true},"name":{"type":"string"},"percentage":{"type":"number"},"updated":{"format":"date-time","type":"string"},"updatedBy":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["created","etag","name","updated","uuid"],"type":"object"},"ErrorResponse":{"properties":{"developerMessage":{"type":"string"},"errorType":{"type":"string"},"violations":{"items":{"$ref":"#/components/schemas/ConstraintViolation"},"type":"array","uniqueItems":true}},"type":"object"},"FullProductUpdateRequest":{"properties":{"categories":{"items":{"type":"string"},"maxItems":1,"minItems":0,"type":"array","uniqueItems":true},"category":{"$ref":"#/components/schemas/CategoryDTO"},"description":{"maxLength":1024,"minLength":0,"type":"string"},"externalReference":{"type":"string"},"imageLookupKeys":{"items":{"type":"string"},"type":"array","uniqueItems":true},"metadata":{"$ref":"#/components/schemas/MetadataDTO"},"name":{"maxLength":256,"minLength":1,"type":"string"},"online":{"$ref":"#/components/schemas/OnlineProperties"},"presentation":{"$ref":"#/components/schemas/PresentationDTO"},"taxCode":{"type":"string"},"taxExempt":{"type":"boolean"},"taxRates":{"items":{"format":"uuid","type":"string"},"type":"array","uniqueItems":true},"unitName":{"type":"string"},"uuid":{"format":"uuid","type":"string"},"variantOptionDefinitions":{"$ref":"#/components/schemas/VariantOptionDefinitions"},"variants":{"items":{"$ref":"#/components/schemas/VariantDTO"},"type":"array"},"vatPercentage":{"maximum":100,"minimum":0,"type":"number"}},"required":["name","uuid"],"type":"object"},"ImportResponse":{"properties":{"created":{"format":"date-time","type":"string"},"errorMessage":{"type":"string"},"finished":{"format":"date-time","type":"string"},"items":{"format":"int64","type":"integer"},"state":{"enum":["IMPORTING","FINISHED_SUCCESS","FINISHED_FAILED"],"type":"string"},"uuid":{"format":"uuid","type":"string"}},"type":"object"},"LibraryImagesResponse":{"properties":{"imageUrls":{"items":{"type":"string"},"type":"array"}},"type":"object"},"LibraryResponse":{"properties":{"deletedDiscounts":{"items":{"format":"uuid","type":"string"},"type":"array","uniqueItems":true},"deletedProducts":{"items":{"format":"uuid","type":"string"},"type":"array","uniqueItems":true},"discounts":{"items":{"$ref":"#/components/schemas/DiscountResponse"},"type":"array","uniqueItems":true},"fromEventLogUuid":{"format":"uuid","type":"string"},"products":{"items":{"$ref":"#/components/schemas/ProductResponse"},"type":"array","uniqueItems":true},"untilEventLogUuid":{"format":"uuid","type":"string"}},"type":"object"},"MetadataDTO":{"properties":{"inPos":{"type":"boolean"},"source":{"$ref":"#/components/schemas/SourceDTO"}},"required":["inPos"],"type":"object"},"OnlineProperties":{"properties":{"description":{"maxLength":3500,"minLength":0,"type":"string"},"presentation":{"$ref":"#/components/schemas/Presentation"},"seo":{"$ref":"#/components/schemas/SearchEngineOptimization"},"shipping":{"$ref":"#/components/schemas/Shipping"},"status":{"enum":["ACTIVE","HIDDEN"],"type":"string"},"title":{"maxLength":256,"minLength":0,"type":"string"}},"required":["status"],"type":"object"},"Option":{"properties":{"name":{"type":"string"},"values":{"items":{"type":"string"},"type":"array"}},"type":"object"},"Presentation":{"properties":{"additionalImageUrls":{"items":{"format":"url","type":"string"},"maxItems":25,"minItems":0,"type":"array"},"displayImageUrl":{"format":"url","type":"string"},"mediaUrls":{"items":{"format":"url","type":"string"},"maxItems":8,"minItems":0,"type":"array"}},"type":"object"},"PresentationDTO":{"properties":{"backgroundColor":{"type":"string"},"imageUrl":{"type":"string"},"textColor":{"type":"string"}},"type":"object"},"Price":{"properties":{"amount":{"format":"int64","minimum":0,"type":"integer"},"currencyId":{"enum":["AED","AFA","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZM","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CSD","CUC","CUP","CVE","CYP","CZK","DJF","DKK","DOP","DZD","EEK","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GGP","GHC","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","IMP","INR","IQD","IRR","ISK","JEP","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MTL","MUR","MVR","MWK","MXN","MYR","MZM","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDD","SDG","SEK","SGD","SHP","SIT","SKK","SLL","SOS","SPL","SRD","SSP","STD","SVC","SYP","SZL","THB","TJS","TMM","TMT","TND","TOP","TRL","TRY","TTD","TVD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VEB","VEF","VND","VUV","WST","XAF","XAG","XAU","XCD","XDR","XOF","XPD","XPF","XPT","YER","ZAR","ZMK","ZMW","ZWD","ZWL"],"type":"string"}},"required":["amount","currencyId"],"type":"object"},"ProductCountResponse":{"properties":{"productCount":{"format":"int32","type":"integer"}},"required":["productCount"],"type":"object"},"ProductCreateRequest":{"properties":{"categories":{"items":{"type":"string"},"type":"array","uniqueItems":true},"category":{"$ref":"#/components/schemas/CategoryDTO"},"createWithDefaultTax":{"type":"boolean"},"description":{"maxLength":1024,"minLength":0,"type":"string"},"externalReference":{"maxLength":128,"minLength":0,"type":"string"},"imageLookupKeys":{"items":{"type":"string"},"type":"array","uniqueItems":true},"metadata":{"$ref":"#/components/schemas/MetadataDTO"},"name":{"maxLength":256,"minLength":1,"type":"string"},"online":{"$ref":"#/components/schemas/OnlineProperties"},"presentation":{"$ref":"#/components/schemas/PresentationDTO"},"taxCode":{"type":"string"},"taxExempt":{"type":"boolean"},"taxRates":{"items":{"format":"uuid","type":"string"},"type":"array","uniqueItems":true},"unitName":{"maxLength":32,"minLength":0,"type":"string"},"uuid":{"format":"uuid","type":"string"},"variantOptionDefinitions":{"$ref":"#/components/schemas/VariantOptionDefinitions"},"variants":{"items":{"$ref":"#/components/schemas/VariantDTO"},"type":"array"},"vatPercentage":{"maximum":100,"minimum":0,"type":"number"}},"required":["name","uuid"],"type":"object"},"ProductResponse":{"properties":{"categories":{"items":{"type":"string"},"maxItems":1,"minItems":0,"type":"array","uniqueItems":true},"category":{"$ref":"#/components/schemas/CategoryDTO"},"created":{"format":"date-time","type":"string"},"description":{"type":"string"},"etag":{"type":"string"},"externalReference":{"type":"string"},"imageLookupKeys":{"items":{"type":"string"},"type":"array","uniqueItems":true},"metadata":{"$ref":"#/components/schemas/MetadataDTO"},"name":{"type":"string"},"online":{"$ref":"#/components/schemas/OnlineProperties"},"presentation":{"$ref":"#/components/schemas/PresentationDTO"},"taxCode":{"type":"string"},"taxExempt":{"type":"boolean"},"taxRates":{"items":{"format":"uuid","type":"string"},"type":"array","uniqueItems":true},"unitName":{"type":"string"},"updated":{"format":"date-time","type":"string"},"updatedBy":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"},"variantOptionDefinitions":{"$ref":"#/components/schemas/VariantOptionDefinitions"},"variants":{"items":{"$ref":"#/components/schemas/VariantDTO"},"maxItems":99,"minItems":1,"type":"array"},"vatPercentage":{"type":"number"}},"required":["created","etag","name","updated","uuid","variants"],"type":"object"},"RenameCategoryRequest":{"properties":{"name":{"maxLength":100,"minLength":1,"pattern":"\\S|\\S.*\\S","type":"string"}},"required":["name"],"type":"object"},"SearchEngineOptimization":{"properties":{"metaDescription":{"maxLength":320,"minLength":0,"type":"string"},"slug":{"maxLength":256,"minLength":1,"type":"string"},"title":{"maxLength":256,"minLength":0,"type":"string"}},"type":"object"},"Shipping":{"properties":{"shippingPricingModel":{"enum":["FREE","STANDARD"],"type":"string"},"weight":{"$ref":"#/components/schemas/Weight"},"weightInGrams":{"format":"int64","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"SlugResponse":{"properties":{"productName":{"type":"string"},"slug":{"type":"string"}},"type":"object"},"SourceDTO":{"properties":{"external":{"type":"boolean"},"name":{"type":"string"}},"type":"object"},"TaxRate":{"properties":{"default":{"type":"boolean"},"label":{"maxLength":512,"minLength":0,"type":"string"},"percentage":{"maximum":100,"type":"number"},"uuid":{"format":"uuid","type":"string"}},"required":["label","uuid"],"type":"object"},"TaxRateProductCount":{"properties":{"count":{"format":"int32","type":"integer"},"taxRateUuid":{"format":"uuid","type":"string"}},"type":"object"},"TaxRateProductCountResponse":{"properties":{"counts":{"items":{"$ref":"#/components/schemas/TaxRateProductCount"},"type":"array"}},"type":"object"},"TaxRateUpdateRequest":{"properties":{"default":{"type":"boolean"},"label":{"maxLength":512,"minLength":0,"type":"string"},"percentage":{"maximum":100,"type":"number"}},"type":"object"},"TaxRatesCreateRequest":{"properties":{"taxRates":{"items":{"$ref":"#/components/schemas/TaxRate"},"maxItems":15,"minItems":0,"type":"array"}},"required":["taxRates"],"type":"object"},"TaxRatesResponse":{"properties":{"taxRates":{"items":{"$ref":"#/components/schemas/TaxRate"},"type":"array"}},"type":"object"},"TaxSettingsResponse":{"properties":{"organizationUuid":{"format":"uuid","type":"string"},"taxationMode":{"enum":["EXCLUSIVE","INCLUSIVE"],"type":"string"},"taxationType":{"enum":["NONE","SALES_TAX","VAT"],"type":"string"}},"type":"object"},"TaxSettingsUpdateRequest":{"properties":{"taxationMode":{"enum":["EXCLUSIVE","INCLUSIVE"],"type":"string"}},"required":["taxationMode"],"type":"object"},"VariantDTO":{"properties":{"barcode":{"maxLength":128,"minLength":0,"type":"string"},"costPrice":{"$ref":"#/components/schemas/Price"},"description":{"maxLength":1024,"minLength":0,"type":"string"},"name":{"maxLength":256,"minLength":0,"type":"string"},"options":{"items":{"$ref":"#/components/schemas/VariantOption"},"maxItems":99,"minItems":1,"type":"array"},"presentation":{"$ref":"#/components/schemas/PresentationDTO"},"price":{"$ref":"#/components/schemas/Price"},"sku":{"maxLength":64,"minLength":0,"type":"string"},"uuid":{"format":"uuid","type":"string"},"vatPercentage":{"deprecated":true,"maximum":100,"minimum":0,"type":"number"}},"required":["uuid"],"type":"object"},"VariantOption":{"properties":{"name":{"maxLength":30,"minLength":1,"type":"string"},"value":{"maxLength":256,"minLength":1,"type":"string"}},"required":["name","value"],"type":"object"},"VariantOptionDefinition":{"properties":{"name":{"maxLength":30,"minLength":1,"type":"string"},"properties":{"items":{"$ref":"#/components/schemas/VariantOptionProperties"},"maxItems":99,"minItems":1,"type":"array"}},"required":["name","properties"],"type":"object"},"VariantOptionDefinitions":{"properties":{"definitions":{"items":{"$ref":"#/components/schemas/VariantOptionDefinition"},"maxItems":3,"minItems":1,"type":"array"}},"required":["definitions"],"type":"object"},"VariantOptionProperties":{"properties":{"imageUrl":{"maxLength":256,"minLength":1,"type":"string"},"value":{"maxLength":256,"minLength":1,"type":"string"}},"required":["value"],"type":"object"},"VariantOptionsResponse":{"properties":{"options":{"items":{"$ref":"#/components/schemas/Option"},"type":"array"}},"type":"object"},"Weight":{"properties":{"unit":{"enum":["kg","g","oz","lb"],"type":"string"},"weight":{"exclusiveMinimum":false,"minimum":0,"type":"number"}},"required":["unit","weight"],"type":"object"}},"securitySchemes":{"ZettleOauth":{"description":"For more information about authorization API visit: https://developer.zettle.com/docs/api/oauth/overview","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.zettle.com/authorize","scopes":{"READ:PRODUCT":"Access to read product library data","WRITE:PRODUCT":"Access to write product library data"},"tokenUrl":"https://oauth.zettle.com/token"}},"type":"oauth2"}}}}