REKKI catalog API

The catalog API from REKKI — 12 operation(s) for catalog.

OpenAPI Specification

rekki-catalog-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: 'The base URL for all API endpoints is https://api.rekki.com/api


    Api key value consists of word Bearer together with api key that you can get from integrations@rekki.com

    '
  title: Rekki.com Supplier catalog API
  contact:
    email: integrations@rekki.com
  license:
    name: All rights reserved
  version: ''
host: api.rekki.com
basePath: /api
schemes:
- https
tags:
- name: catalog
paths:
  /integration/v1/catalog/items:
    get:
      security:
      - ApiKeyAuth: []
      description: 'Lists all your catalog items. Sorted by creation date, with the oldest appearing first.

        No input parameters. Options for pagination and sorting direction may be introduced later.

        Response is a JSON object with a data property that contains catalog items of the authenticated supplier.'
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Get catalog items for authenticated supplier
      operationId: GetCatalogItems
      deprecated: true
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/main.CatalogItems'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
    post:
      security:
      - ApiKeyAuth: []
      description: "### Parameters\n\n- **`id`**\nREKKI's ID to uniquely identify the catalog item (for REKKI internal reference).\nIf `id` is specified the item will be update, if not it will attempt to insert it.\n- **`product_code`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nProduct code for the item that maps to the supplier's catalog.\nSuppliers can modify the product code for future orders at https://supplier.rekki.com\n- **`name`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nItem name as would be defined on the customer's product list.\n- **`currency`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is GBP</span>\nCurrency code for the price. In [ISO 4217][] three-letter format.\n- **`units_prices`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nList of units and their prices that the item can be ordered in.\n- **`units_prices.unit`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nA unit that the item can be ordered in.\n- **`units_prices.price_cents`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is 0</span>\nThe order price in cents for the item per unit.\nFor example, a currency of GBP with unit 5L and price 850 means a 5L item can be ordered for £8.50.\n- **`units_prices.stock_count`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nThe number of items in stock for the related unit.\n- **`availability`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is \"in_stock\"</span>\nAvailability status of the item. Can be \"in_stock\" or \"out_of_stock\".\n- **`description`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nShort description of the item.\n- **`allergens`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of allergens for the item, if any.\n- **`allergens.type`**  <span style=\"font-size: 12px; font-weight: 500;\">required when allergens is given</span>\nType of allergy. For example \"contains peanuts\" or \"may contain peanuts\".\n- **`allergens.symptoms`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of symptoms for the allergy.\n- **`order_cutoff_times`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nCutt-off times are the minimum amount of time before delivery when the item can still be ordered.\n- **`order_cutoff_times.{mon,tue,wed,thu,fri,sat,sun}`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nMinimum amount of time, in hours, that an item needs to be ordered in advance of delivery for the given day.\n- **`replacement_products`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of product codes for alternative items when this item is not available.\n- **`seasonality`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of date ranges when the item is in-season.\n- **`seasonality.start_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n  The start date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n  - **`seasonality.end_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n    The end date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n"
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Creates or Updates an item on your catalog. If item with this product_code already exists, you can update this item. Item is looked up by product code
      operationId: UpdateCatalogItem
      deprecated: true
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/main.APISupplierCatalogItem'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/main.APISupplierCatalogItem'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/main.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v1/catalog/items/{id}:
    get:
      security:
      - ApiKeyAuth: []
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Lists all orders placed for the supplier that were placed through REKKI.
      operationId: GetCatalogItem
      deprecated: true
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - type: string
        description: ID of the item to retrieve. Item IDs are discoverable when listing items.
        name: id
        in: path
        required: true
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/main.APISupplierCatalogItem'
        '401':
          description: Unauthorized
          schema:
            type: string
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/main.GenericErrorResponse'
        '500':
          description: Internal Server Error
          schema:
            type: string
    delete:
      security:
      - ApiKeyAuth: []
      description: Delete an item from your catalog by its unique ID.
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Delete an item from catalog
      operationId: DeleteCatalogItem
      deprecated: true
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - type: string
        description: ID of the item to retrieve. Item IDs are discoverable when listing items.
        name: id
        in: path
        required: true
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/main.SuccessConfirmation'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v1/catalog/replace:
    post:
      security:
      - ApiKeyAuth: []
      description: "### Parameters\n\n- **`id`**\nREKKI's ID to uniquely identify the catalog item (for REKKI internal reference).\nIf `id` is specified the item will be update, if not it will attempt to insert it.\n- **`product_code`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nProduct code for the item that maps to the supplier's catalog.\nSuppliers can modify the product code for future orders at https://supplier.rekki.com\n- **`name`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nItem name as would be defined on the customer's product list.\n- **`currency`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is GBP</span>\nCurrency code for the price. In [ISO 4217][] three-letter format.\n- **`units_prices`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nList of units and their prices that the item can be ordered in.\n- **`units_prices.unit`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nA unit that the item can be ordered in.\n- **`units_prices.price_cents`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is 0</span>\nThe order price in cents for the item per unit.\nFor example, a currency of GBP with unit 5L and price 850 means a 5L item can be ordered for £8.50.\n- **`units_prices.stock_count`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nThe number of items in stock for the related unit.\n- **`availability`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is \"in_stock\"</span>\nAvailability status of the item. Can be \"in_stock\" or \"out_of_stock\".\n- **`description`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nShort description of the item.\n- **`allergens`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of allergens for the item, if any.\n- **`allergens.type`**  <span style=\"font-size: 12px; font-weight: 500;\">required when allergens is given</span>\nType of allergy. For example \"contains peanuts\" or \"may contain peanuts\".\n- **`allergens.symptoms`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of symptoms for the allergy.\n- **`order_cutoff_times`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nCutt-off times are the minimum amount of time before delivery when the item can still be ordered.\n- **`order_cutoff_times.{mon,tue,wed,thu,fri,sat,sun}`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nMinimum amount of time, in hours, that an item needs to be ordered in advance of delivery for the given day.\n- **`replacement_products`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of product codes for alternative items when this item is not available.\n- **`seasonality`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of date ranges when the item is in-season.\n- **`seasonality.start_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n  The start date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n  - **`seasonality.end_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n    The end date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n"
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Drop all existing items from the catalog and upload new ones
      operationId: ReplaceCatalog
      deprecated: true
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/main.ReplaceCatalogInput'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/main.SuccessConfirmation'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/main.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v2/catalog/items/availability:
    post:
      security:
      - ApiKeyAuth: []
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Update availability status for one of the items in the catalog
      operationId: UpdateCatalogItemAvailability
      deprecated: true
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/main.SetStockStatusInput'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/main.UpdateSuccess'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/main.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/inventory:
    post:
      security:
      - ApiKeyAuth: []
      description: '### This API endpoint allows to update stock availability for products in the catalog.


        By associating customer accounts with specific inventory locations, suppliers restrict customers to view products that are only available in the stock at the given location.


        Provided stock availability details will override previous values for the specified customer accounts.

        Additionally, if a customer account number that was previously associated with the given inventory location but is omitted from the `customer_account_numbers` list, this account will be unlinked from the inventory location.

        '
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Update catalog stock availability for the supplier
      operationId: UpdateCatalogInventory
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/v3.UpdateCatalogInventoryInput'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.UpdateInventoryCatalogOutput'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/v3.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/items:
    get:
      security:
      - ApiKeyAuth: []
      description: 'Lists all your catalog items. Sorted by creation date, with the oldest appearing first.

        No input parameters. Options for pagination and sorting direction may be introduced later.

        Response is a JSON object with a data property that contains catalog items of the authenticated supplier.'
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Get catalog items for authenticated supplier
      operationId: GetCatalogItemsV3
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.CatalogItems'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
    post:
      security:
      - ApiKeyAuth: []
      description: "### Parameters\n\n- **`id`**\nREKKI's ID to uniquely identify the catalog item (for REKKI internal reference).\nIf `id` is specified the item will be update, if not it will attempt to insert it.\n- **`product_code`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nProduct code for the item that maps to the supplier's catalog.\nSuppliers can modify the product code for future orders at https://supplier.rekki.com\n- **`name`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nItem name as would be defined on the customer's product list.\n- **`currency`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is GBP</span>\nCurrency code for the price. In [ISO 4217][] three-letter format.\n- **`units_prices`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nList of units and their prices that the item can be ordered in.\n- **`units_prices.unit`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nA unit that the item can be ordered in.\n- **`units_prices.price_cents`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is 0</span>\nThe order price in cents for the item per unit.\nFor example, a currency of GBP with unit 5L and price 850 means a 5L item can be ordered for £8.50.\n- **`units_prices.stock_count`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nThe number of items in stock for the related unit.\n- **`availability`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is \"in_stock\"</span>\nAvailability status of the item. Can be \"in_stock\" or \"out_of_stock\".\n- **`description`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nShort description of the item.\n- **`allergens`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of allergens for the item, if any.\n- **`allergens.type`**  <span style=\"font-size: 12px; font-weight: 500;\">required when allergens is given</span>\nType of allergy. For example \"contains peanuts\" or \"may contain peanuts\".\n- **`allergens.symptoms`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of symptoms for the allergy.\n- **`order_cutoff_times`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nCutt-off times are the minimum amount of time before delivery when the item can still be ordered.\n- **`order_cutoff_times.{mon,tue,wed,thu,fri,sat,sun}`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nMinimum amount of time, in hours, that an item needs to be ordered in advance of delivery for the given day.\n- **`replacement_products`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of product codes for alternative items when this item is not available.\n- **`seasonality`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of date ranges when the item is in-season.\n- **`seasonality.start_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n  The start date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n  - **`seasonality.end_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n    The end date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n"
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Creates or Updates multiple items on your catalog. If item with this product_code already exists, you can update this item. Item is looked up by product code
      operationId: UpdateCatalogItemsV3
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/v3.UpdateCatalogInput'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.CatalogItems'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/v3.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/items/availability:
    post:
      security:
      - ApiKeyAuth: []
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Update availability status for one of the items in the catalog
      operationId: UpdateCatalogItemAvailabilityV3
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/v3.SetStockStatusInput'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.UpdateSuccess'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/v3.AvailabilityErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/items/delete:
    post:
      security:
      - ApiKeyAuth: []
      description: Delete items from the catalog by its unique IDs.
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Delete items from catalog
      operationId: DeleteCatalogItemsV3
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/v3.DeleteCatalogItemsInput'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.SuccessConfirmation'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/items/photo:
    post:
      security:
      - ApiKeyAuth: []
      description: Upload a photo for an item in the supplier catalog
      consumes:
      - multipart/form-data
      produces:
      - application/json
      tags:
      - catalog
      operationId: UploadCatalogPhoto
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - type: string
        description: Product code of the item
        name: product_code
        in: query
        required: true
      - type: string
        description: Unit of the item
        name: product_unit
        in: query
        required: true
      - type: string
        description: Comma separated list of tags for the photo
        name: tags
        in: query
      - type: file
        description: Image file
        name: file
        in: formData
        required: true
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.UploadCatalogPhotoResponse'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/v3.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/items/{id}:
    get:
      security:
      - ApiKeyAuth: []
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Fetch a specific catalog item by its Id.
      operationId: GetCatalogItemV3
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - type: string
        description: ID of the item to retrieve. Item IDs are discoverable when listing items.
        name: id
        in: path
        required: true
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.APISupplierCatalogItem'
        '401':
          description: Unauthorized
          schema:
            type: string
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/v3.GenericErrorResponse'
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/pricelist:
    post:
      security:
      - ApiKeyAuth: []
      description: '### This API endpoint allows to update price lists for customers.


        Customer accounts can be linked to specific price lists, enabling products to be viewed and purchased at corresponding prices.


        Provided price list details will override previous values for the specified customer accounts.

        Additionally, if a customer account number that was previously associated with the given price list is omitted from the `customer_account_numbers` list, this account will be unlinked from the price list.

        '
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Update the price list for the supplier
      operationId: UpdatePriceList
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/v3.UpdatePriceListInput'
      responses:
        '200':
          description: OK
          schema:
            type: array
            items:
              $ref: '#/definitions/v3.UpdatePriceListOutput'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/v3.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
            type: string
        '500':
          description: Internal Server Error
          schema:
            type: string
  /integration/v3/catalog/replace:
    post:
      security:
      - ApiKeyAuth: []
      description: "### Parameters\n\n- **`id`**\nREKKI's ID to uniquely identify the catalog item (for REKKI internal reference).\nIf `id` is specified the item will be update, if not it will attempt to insert it.\n- **`product_code`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nProduct code for the item that maps to the supplier's catalog.\nSuppliers can modify the product code for future orders at https://supplier.rekki.com\n- **`name`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nItem name as would be defined on the customer's product list.\n- **`currency`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is GBP</span>\nCurrency code for the price. In [ISO 4217][] three-letter format.\n- **`units_prices`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nList of units and their prices that the item can be ordered in.\n- **`units_prices.unit`**  <span style=\"font-size: 12px; font-weight: 500;\">required</span>\nA unit that the item can be ordered in.\n- **`units_prices.price_cents`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is 0</span>\nThe order price in cents for the item per unit.\nFor example, a currency of GBP with unit 5L and price 850 means a 5L item can be ordered for £8.50.\n- **`units_prices.stock_count`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nThe number of items in stock for the related unit.\n- **`availability`**  <span style=\"font-size: 12px; font-weight: 500;\">optional, default is \"in_stock\"</span>\nAvailability status of the item. Can be \"in_stock\" or \"out_of_stock\".\n- **`description`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nShort description of the item.\n- **`allergens`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of allergens for the item, if any.\n- **`allergens.type`**  <span style=\"font-size: 12px; font-weight: 500;\">required when allergens is given</span>\nType of allergy. For example \"contains peanuts\" or \"may contain peanuts\".\n- **`allergens.symptoms`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of symptoms for the allergy.\n- **`order_cutoff_times`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nCutt-off times are the minimum amount of time before delivery when the item can still be ordered.\n- **`order_cutoff_times.{mon,tue,wed,thu,fri,sat,sun}`**  <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nMinimum amount of time, in hours, that an item needs to be ordered in advance of delivery for the given day.\n- **`replacement_products`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of product codes for alternative items when this item is not available.\n- **`seasonality`**   <span style=\"font-size: 12px; font-weight: 500;\">optional</span>\nList of date ranges when the item is in-season.\n- **`seasonality.start_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n  The start date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n  - **`seasonality.end_date`**  <span style=\"font-size: 12px; font-weight: 500;\">required when seasonality is given</span>\n    The end date when the item is in season. In [ISO 8601][] calendar date format `YYYY-MM-DD`.\n"
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - catalog
      summary: Drop all existing items from the catalog and upload new ones
      operationId: ReplaceCatalogV3
      parameters:
      - enum:
        - supplier_api_token
        type: string
        description: Required header
        name: X-REKKI-Authorization-Type
        in: header
        required: true
      - description: Payload
        name: input
        in: body
        required: true
        schema:
          $ref: '#/definitions/v3.ReplaceCatalogInput'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/v3.SuccessConfirmation'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/v3.GenericErrorResponse'
        '401':
          description: Unauthorized
          schema:
      

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rekki/refs/heads/main/openapi/rekki-catalog-api-openapi.yml