---
title: "Creates a recurring payment"
method: POST
path: "/recurringpayment"
tags: ["RecurringPayment - Experimental"]
---

# Creates a recurring payment

`POST /recurringpayment`

## Request

- Base URL: `https://api.c1st.com/api`
- URL: `https://api.c1st.com/api/recurringpayment`
- Auth: HTTP bearer

## Request body

- RecurringPaymentRequest: List of stores
  - `content` RecurringPayment
    - `id` integer, nullable
    - `startdate` string, nullable: Date of when the recurring payment has started
    - `expectedenddate` string, nullable: Date of when the recurring payment has started
    - `termamount` number, nullable: Amount the customer has to pay pr. term which is calculated from amountleft and terms
    - `termamountwithoutvat` number, nullable
    - `termvatamount` number, nullable
    - `vat` number, nullable
    - `nextamount` number, nullable: The exact amount of the next payment.
    - `amountleft` number: The amount the customer has to pay
    - `customerid` integer
    - `customer` Customer: The representation of a customer.
      - `id` integer: A unique customer ID
      - `storeid` integer: ID for the store for which the customer is associated
      - `createddate` string, nullable
      - `name` string, nullable: The name of the customer.
      - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
      - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
      - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
      - `email` string, nullable: The email of the customer.
      - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
      - `address` string, nullable: The address of the customer.
      - `city` string, nullable: The city of the customer.
      - `zipcode` string, nullable: The zip code of the customer.
      - `addr_country` string, nullable: The country of the customers address.
      - `lat` number, double, nullable: The latitude of the customer.
      - `lng` number, double, nullable: The longitude of the customer.
      - `birthdate` string, nullable
      - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
      - `vat` string, nullable: The VAT/CVR number associated with the customer.
      - `customerno` string, nullable: The customer-number associated with the customer.
      - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
      - `balance` number, nullable: The customer's balance
      - `note` string, nullable: A note about the customer.
      - `draft` integer: Whether or not the customer is in draft mode
      - `deleted` integer: Whether or not the customer is deleted
      - `tags` CustomerTag[], nullable: Tags associated with the customer.
        - `title` string, required: The title of the tag
        - `id` integer, nullable: The id of the tag
        - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. This value cannot be changed once set.
        - `color` string, nullable: The color used when displaying the tag in the app
      - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
      - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
      - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
      - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
      - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
      - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
      - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
      - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
        - `id` integer: Store id
        - `title` string: Store title
    - `paymentno` integer, nullable: The number of the recurring payment
    - `terms` integer: Amount of terms the customer has to pay
    - `termspaid` integer, nullable: The amount of terms that has been paid
    - `interval` 'month' | 'year': Interval of when the next term is, you can either choose "month" or "year" as interval.
    - `recurringpaymentproductdepreciations` RecurringPaymentProductDepreciation[], nullable
      - `id` integer, nullable
      - `productid` integer
      - `product` Product: The representation of a product.
        - `id` integer, nullable: A unique product ID
        - `title` string: Product name
        - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
        - `barcode` string, nullable: A unique barcode
        - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
        - `serieno` string, nullable
        - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
        - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
        - `costprice` number, double, nullable: Cost price of the product excl. VAT
        - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
        - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
        - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
        - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
        - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
        - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
        - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
        - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
          - `id` integer, nullable: A unique id for a supplier
          - `name` string: The name of a supplier
          - `email` string, nullable: The mail of a supplier
          - `customerno` string, nullable: Customer number for the supplier
          - `address` string, nullable: Address of the supplier
          - `city` string, nullable: Which city the supplier is from
          - `zipcode` string, nullable: Zipcode of the supplier
          - `note` string, nullable
          - `handle` string, nullable: Slug for the supplier based on the name
          - `accountnumber` number, nullable: Accountnumber for the supplier, used to cross reference this supplier to a supplier in e-conomic
          - `auto_create_orderlist` boolean, nullable: If true, an orderlist will be created automatically for this supplier
          - `auto_create_orderlist_frequency` 'daily' | 'weekly' | 'monthly' | 'yearly' | 'null', nullable: The frequency of the orderlist creation
          - `auto_create_orderlist_day_of_week` integer[], nullable: The day of the week the orderlist should be created
          - `auto_create_orderlist_months` integer[], nullable: The months the orderlist should be created
          - `auto_create_orderlist_day_of_month` integer[], nullable: The day of the month the orderlist should be created
          - `auto_create_orderlist_minimum_costprice` number, nullable: The minimum costprice required to trigger the automatic creation of the order list
          - `external_supplier` string, nullable: The external supplier used for integrations, if given (e.g. "ponbike", etc)
          - `external_supplier_active` boolean, nullable: Whether the external supplier integration (e.g. "ponbike"/Gazelle) is currently authorized and active. Null when the supplier has no external_supplier.
          - `partner_store_id` integer, nullable: OBSOLETE - The store id from the available partner store
          - `verified_supplier_id` integer, nullable: Id of the verified supplier this supplier is linked to
          - `verified_supplier` VerifiedSupplierSummary
            - `id` integer, required
            - `name` string, required
            - `email` string, required
            - `image_url` string, nullable, required
        - `color` string, nullable
        - `styleno` string, nullable
        - `size` string, nullable
        - `brand` string, nullable
        - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
        - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
        - `vat_type` VatType
          - `id` integer
          - `name` string
          - `rate` number
          - `revenue_account_no` string, nullable: Revenue account number for the revenue incl amount
          - `is_ticket_override` boolean: When true, this VAT type can be used to seed override VAT on new repair tickets.
          - `vat_account_no` string, nullable: VAT account number for the revenue vat part
        - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
        - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
          - `title` string: The title of the tag
          - `id` integer, nullable: The ID of the tag
          - `accountno` integer, nullable: The accountno used for book keeping
          - `promotionfilter` PromotionTagFilter, nullable
            - `amount` integer, nullable: minimum amount of products in order to apply promotion
            - `date` object, nullable: date of when the promotion should be applied
              - …
          - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. The handle is write once, and can not be changed after the tag is created.
          - `position` number, nullable: Number used to determine order of product tags.
          - `positionafterid` number, nullable: If this is set, the position of this product tag will be between positionafterid and the tag below if it exists.
          - `positionbeforeid` number, nullable: If this is set, the position of this product tag will be between positionbeforeid and the tag above if it exists.
        - `customfield1` string, nullable: Field for custom product data
        - `customfield2` string, nullable
        - `customfield3` string, nullable
        - `customfield4` string, nullable
        - `created` string, nullable
        - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
        - `totalstock` integer, nullable: The sum of serial products in stock
        - `totalavailablestock` integer, nullable: The sum of serial products available
        - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
        - `onshoppinglist` integer, nullable: Number of items already on shopping list.
        - `ordered` integer, nullable: Number of items currently in order
        - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
        - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
        - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
        - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
        - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
        - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
        - `storeid` integer, nullable: The owner storeid
        - `image` ProductImage: A Product's image
          - `blurhash` string, nullable
          - `preview_url` string
          - `full_url` string
        - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
        - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
        - `deleted_at` string, nullable: Deleted date, if product is soft deleted
      - `customerarticleid` integer, nullable: Id for the customerarticle attached to the recurring payment product
      - `customerarticle` CustomerArticle
        - `id` integer, nullable: A unique CustomerArticle ID
        - `dateadded` string, nullable: The date the customertarticle was created
        - `customerid` integer: The ID of the customer the customerarticle belongs to
        - `customer` Customer: The representation of a customer.
          - `id` integer: A unique customer ID
          - `storeid` integer: ID for the store for which the customer is associated
          - `createddate` string, nullable
          - `name` string, nullable: The name of the customer.
          - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
          - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
          - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
          - `email` string, nullable: The email of the customer.
          - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
          - `address` string, nullable: The address of the customer.
          - `city` string, nullable: The city of the customer.
          - `zipcode` string, nullable: The zip code of the customer.
          - `addr_country` string, nullable: The country of the customers address.
          - `lat` number, double, nullable: The latitude of the customer.
          - `lng` number, double, nullable: The longitude of the customer.
          - `birthdate` string, nullable
          - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
          - `vat` string, nullable: The VAT/CVR number associated with the customer.
          - `customerno` string, nullable: The customer-number associated with the customer.
          - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
          - `balance` number, nullable: The customer's balance
          - `note` string, nullable: A note about the customer.
          - `draft` integer: Whether or not the customer is in draft mode
          - `deleted` integer: Whether or not the customer is deleted
          - `tags` CustomerTag[], nullable: Tags associated with the customer.
            - `title` string, required: The title of the tag
            - `id` integer, nullable: The id of the tag
            - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. This value cannot be changed once set.
            - `color` string, nullable: The color used when displaying the tag in the app
          - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
          - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
          - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
          - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
          - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
          - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
            - `id` integer: Store id
            - `title` string: Store title
        - `title` string
        - `serieno` string, nullable
        - `color` string, nullable
        - `size` string, nullable
        - `customfield1` string, nullable
        - `customfield2` string, nullable
        - `customfield3` string, nullable
        - `customfield4` string, nullable
        - `storeid` integer: ID of the owning store
        - `servicesubscription` ServiceSubscription
          - `id` integer, nullable: A unique service id
          - `customerarticleid` integer: Which customer article that has been assigned to this subcription
          - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
          - `serviceplan` ServicePlan
            - `id` integer, nullable: A unique service id
            - `title` string: title for service
            - `handle` string, nullable: Unique handle for service. Will be set automatically if not set
            - `servicecallgroupid` integer, nullable: Which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroupids` integer[], nullable: An array of which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroup` ServiceNotificationTemplateGroup: A group of service notification templates
              - …
            - `servicecallgroups` ServiceNotificationTemplateGroup[], nullable
              - …
            - `producttagidsrestriction` integer[], nullable: Array of producttag ids where this service can be applied to. If tagid 1 and 2 is set as restriction, the product have to at least one of them in order to be included in the search
            - `producttaghandlesrestriction` string[], nullable: Array of producttag handles where this service can be applied to. If handle bike and mountainbike is set as restriction, the product have to at least one of them in order to be included in the search.
            - `producttagsrestriction` ProductTag[], nullable: Array of producttags where this service can be applied to.
              - …
            - `visibility` 'all' | 'secondhandvat' | 'normalvat': Determines what types of products this plan is visible for. All makes the plan visible for products with normalvat and secondhandvat
            - `price` number, nullable: If set, when adding a serviceplan to a serial product, it will create a material with the given price, and set the type of the material as "serivceplan"
            - `terms` integer, nullable: If set, when adding a serviceplan, an enddate is set to be x months from startdate for a subscription
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was soft deleted
            - `followproductno` string, nullable: When adding a service to a customerarticle, the product with the given followproductno will added as an additional material.
          - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
          - `updated_at` string, date-time, nullable: When the service was last updated
          - `created_at` string, date-time, nullable: When the service was created
          - `deleted_at` string, date-time, nullable: When the service was deleted
          - `startdate` string, nullable: When the service has started
          - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
          - `price` number, nullable: The price of the serviceplan when the service was activated
          - `permission` Permission
            - `read` boolean
            - `write` boolean
          - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
        - `hasservicenotices` boolean: Whether or not the customer article has any service notices, check servicenotices_count instead
        - `servicenotices_count` integer: Amount of service notices
        - `permission` 'none' | 'readonly' | 'full'
        - `deleted` integer, nullable: If 1 this means that the customerarticle is deleted, 0 is not deleted.
        - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
        - `last_sold_at` string, nullable: Timestamp of when the customerarticle was last sold on a payment (this does not include return payments)
      - `scrapvalue` number
      - `initialcostprice` number, nullable: The initialcostprice is set from the products costprice
      - `currentcostprice` number, nullable: The costprice slowly depreciate, this is what the costprice has been depreciated to
      - `recurringpaymentid` integer, nullable
      - `scrapdate` string, nullable: The date when the products costprice degrades to scrapvalue (it degrades every payment)
      - `created_at` string, nullable
    - `recurring_payment_materials` RecurringPaymentMaterial[], nullable
      - `id` integer, nullable
      - `recurring_payment_id` integer, nullable: Id for the recurring payment this material is attached to
      - `pos_payment_material_id` integer: Id for the payment article attached to the recurring payment material
      - `pos_payment_material` PaymentArticle: The representation of a POS article To issue/sell giftcards If you want to issue a gift card, sell a article with productno either 'giftcard', 'voucher', or 'deposit' and provide a unique giftcard number as value of giftcardno. Quantity must be 1 If you want to return a giftcard set `giftcardid` and quantity to -1. Price must be positive If you want to use a giftcard set `giftcardid` and quantity to 1. Price must be be negative any other value for quantiy and price for giftcards will fail.
        - `id` integer, nullable: A unique ID generated automatically
        - `title` string: The title of the article sold
        - `price` number, double: Price of the article. By default price includes VAT but can be changed in the store config "prices_include_vat".
        - `costprice` number, double, nullable: The cost price of the article sold
        - `quantity` number: Number of articles sold.
        - `vat` number, double: VAT percentage.
        - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
        - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
        - `vatamount` number, double, nullable: The calculated VAT for the price field.
        - `giftcardno` string, nullable: Provide this if you want to issue a giftcard with the payment. The amount on the giftcard will be the value of price.
        - `usedGiftcardId` integer, nullable: Provide this if you want use a giftcard as means of payment. The value of price will be deducted from the giftcard balance
        - `usedGiftcard` Giftcard: A giftcard
          - `id` integer: A unique ID
          - `giftcardno` string: a unique string to identify giftcards.
          - `amount` number, double: The inital amount on the giftcard. Can only be set when the gift is created
          - `amountspent` number, double: The amount spent of the giftcard. Balance of the giftcard can be calculcated by `amount - amountspent`.
          - `paymentid` integer, nullable: If the giftcard was issued by a payment.
          - `type` 'giftcard' | 'voucher' | 'deposit'
          - `store` Store: Store object
            - `id` integer
            - `title` string, required
            - `cityname` string, nullable
            - `zipcode` string, nullable
            - `streetname` string, nullable
            - `streetno` string, nullable
            - `phone` string, nullable
            - `email` string, nullable
            - `website` string, nullable
            - `created` string
            - `countrydata` CountryData
              - …
          - `customer` Customer: The representation of a customer.
            - `id` integer: A unique customer ID
            - `storeid` integer: ID for the store for which the customer is associated
            - `createddate` string, nullable
            - `name` string, nullable: The name of the customer.
            - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
            - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
            - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
            - `email` string, nullable: The email of the customer.
            - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
            - `address` string, nullable: The address of the customer.
            - `city` string, nullable: The city of the customer.
            - `zipcode` string, nullable: The zip code of the customer.
            - `addr_country` string, nullable: The country of the customers address.
            - `lat` number, double, nullable: The latitude of the customer.
            - `lng` number, double, nullable: The longitude of the customer.
            - `birthdate` string, nullable
            - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
            - `vat` string, nullable: The VAT/CVR number associated with the customer.
            - `customerno` string, nullable: The customer-number associated with the customer.
            - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
            - `balance` number, nullable: The customer's balance
            - `note` string, nullable: A note about the customer.
            - `draft` integer: Whether or not the customer is in draft mode
            - `deleted` integer: Whether or not the customer is deleted
            - `tags` CustomerTag[], nullable: Tags associated with the customer.
              - …
            - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
            - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
            - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
            - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
              - …
          - `customerid` integer, nullable: The unique customer ID of the currently registered customer of the giftcard, or null if none
          - `vat` number, nullable: The VAT percentage of the payment that issued the giftcard
          - `productid` integer, nullable: To be removed
          - `productno` string, nullable: To be removed
          - `external_id` number, nullable: The external id to Shopify etc.
          - `createddate` string: When the giftcard was created.
          - `expirationdate` string: When the giftcard expires. Defaults to the createddate + the value of the storeconfig "giftcard_expiration_years".
          - `draft` integer: Whether the giftcard is a draft (1) or finalized (0). Draft giftcards are created during discount-to-voucher conversion and finalized on payment completion.
          - `expired` boolean: If the giftcard has expired based on expirationdate.
          - `active` boolean, nullable: The giftcard is active if its not expired and amountspent is less than amount.
          - `deleted_at` string, nullable: When the giftcard was deleted.
          - `deleted` boolean: If the giftcard has been deleted based on deleted_at.
        - `giftcardid` integer, nullable: Id of issued giftcard
        - `giftcard` Giftcard: A giftcard
          - `id` integer: A unique ID
          - `giftcardno` string: a unique string to identify giftcards.
          - `amount` number, double: The inital amount on the giftcard. Can only be set when the gift is created
          - `amountspent` number, double: The amount spent of the giftcard. Balance of the giftcard can be calculcated by `amount - amountspent`.
          - `paymentid` integer, nullable: If the giftcard was issued by a payment.
          - `type` 'giftcard' | 'voucher' | 'deposit'
          - `store` Store: Store object
            - `id` integer
            - `title` string, required
            - `cityname` string, nullable
            - `zipcode` string, nullable
            - `streetname` string, nullable
            - `streetno` string, nullable
            - `phone` string, nullable
            - `email` string, nullable
            - `website` string, nullable
            - `created` string
            - `countrydata` CountryData
              - …
          - `customer` Customer: The representation of a customer.
            - `id` integer: A unique customer ID
            - `storeid` integer: ID for the store for which the customer is associated
            - `createddate` string, nullable
            - `name` string, nullable: The name of the customer.
            - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
            - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
            - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
            - `email` string, nullable: The email of the customer.
            - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
            - `address` string, nullable: The address of the customer.
            - `city` string, nullable: The city of the customer.
            - `zipcode` string, nullable: The zip code of the customer.
            - `addr_country` string, nullable: The country of the customers address.
            - `lat` number, double, nullable: The latitude of the customer.
            - `lng` number, double, nullable: The longitude of the customer.
            - `birthdate` string, nullable
            - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
            - `vat` string, nullable: The VAT/CVR number associated with the customer.
            - `customerno` string, nullable: The customer-number associated with the customer.
            - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
            - `balance` number, nullable: The customer's balance
            - `note` string, nullable: A note about the customer.
            - `draft` integer: Whether or not the customer is in draft mode
            - `deleted` integer: Whether or not the customer is deleted
            - `tags` CustomerTag[], nullable: Tags associated with the customer.
              - …
            - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
            - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
            - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
            - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
              - …
          - `customerid` integer, nullable: The unique customer ID of the currently registered customer of the giftcard, or null if none
          - `vat` number, nullable: The VAT percentage of the payment that issued the giftcard
          - `productid` integer, nullable: To be removed
          - `productno` string, nullable: To be removed
          - `external_id` number, nullable: The external id to Shopify etc.
          - `createddate` string: When the giftcard was created.
          - `expirationdate` string: When the giftcard expires. Defaults to the createddate + the value of the storeconfig "giftcard_expiration_years".
          - `draft` integer: Whether the giftcard is a draft (1) or finalized (0). Draft giftcards are created during discount-to-voucher conversion and finalized on payment completion.
          - `expired` boolean: If the giftcard has expired based on expirationdate.
          - `active` boolean, nullable: The giftcard is active if its not expired and amountspent is less than amount.
          - `deleted_at` string, nullable: When the giftcard was deleted.
          - `deleted` boolean: If the giftcard has been deleted based on deleted_at.
        - `customerarticleid` integer, nullable: Id of the attached customerarticle
        - `productno` string, nullable: For legacy support, instead refer to product.productno. This is only used for voucher and deposit
        - `productid` integer, nullable: < The the id of the product you want to sell. Stock will be deducted from the product after succesful payment. Deleted products are allowed. This is useful for return sales and payments of tickets with deleted products.
        - `product` Product: The representation of a product.
          - `id` integer, nullable: A unique product ID
          - `title` string: Product name
          - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
          - `barcode` string, nullable: A unique barcode
          - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
          - `serieno` string, nullable
          - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
          - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
          - `costprice` number, double, nullable: Cost price of the product excl. VAT
          - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
          - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
          - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
          - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
          - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
          - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
          - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
          - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
            - `id` integer, nullable: A unique id for a supplier
            - `name` string: The name of a supplier
            - `email` string, nullable: The mail of a supplier
            - `customerno` string, nullable: Customer number for the supplier
            - `address` string, nullable: Address of the supplier
            - `city` string, nullable: Which city the supplier is from
            - `zipcode` string, nullable: Zipcode of the supplier
            - `note` string, nullable
            - `handle` string, nullable: Slug for the supplier based on the name
            - `accountnumber` number, nullable: Accountnumber for the supplier, used to cross reference this supplier to a supplier in e-conomic
            - `auto_create_orderlist` boolean, nullable: If true, an orderlist will be created automatically for this supplier
            - `auto_create_orderlist_frequency` 'daily' | 'weekly' | 'monthly' | 'yearly' | 'null', nullable: The frequency of the orderlist creation
            - `auto_create_orderlist_day_of_week` integer[], nullable: The day of the week the orderlist should be created
            - `auto_create_orderlist_months` integer[], nullable: The months the orderlist should be created
            - `auto_create_orderlist_day_of_month` integer[], nullable: The day of the month the orderlist should be created
            - `auto_create_orderlist_minimum_costprice` number, nullable: The minimum costprice required to trigger the automatic creation of the order list
            - `external_supplier` string, nullable: The external supplier used for integrations, if given (e.g. "ponbike", etc)
            - `external_supplier_active` boolean, nullable: Whether the external supplier integration (e.g. "ponbike"/Gazelle) is currently authorized and active. Null when the supplier has no external_supplier.
            - `partner_store_id` integer, nullable: OBSOLETE - The store id from the available partner store
            - `verified_supplier_id` integer, nullable: Id of the verified supplier this supplier is linked to
            - `verified_supplier` VerifiedSupplierSummary
              - …
          - `color` string, nullable
          - `styleno` string, nullable
          - `size` string, nullable
          - `brand` string, nullable
          - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
          - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
          - `vat_type` VatType
            - `id` integer
            - `name` string
            - `rate` number
            - `revenue_account_no` string, nullable: Revenue account number for the revenue incl amount
            - `is_ticket_override` boolean: When true, this VAT type can be used to seed override VAT on new repair tickets.
            - `vat_account_no` string, nullable: VAT account number for the revenue vat part
          - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
          - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
            - `title` string: The title of the tag
            - `id` integer, nullable: The ID of the tag
            - `accountno` integer, nullable: The accountno used for book keeping
            - `promotionfilter` PromotionTagFilter, nullable
              - …
            - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. The handle is write once, and can not be changed after the tag is created.
            - `position` number, nullable: Number used to determine order of product tags.
            - `positionafterid` number, nullable: If this is set, the position of this product tag will be between positionafterid and the tag below if it exists.
            - `positionbeforeid` number, nullable: If this is set, the position of this product tag will be between positionbeforeid and the tag above if it exists.
          - `customfield1` string, nullable: Field for custom product data
          - `customfield2` string, nullable
          - `customfield3` string, nullable
          - `customfield4` string, nullable
          - `created` string, nullable
          - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
          - `totalstock` integer, nullable: The sum of serial products in stock
          - `totalavailablestock` integer, nullable: The sum of serial products available
          - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
          - `onshoppinglist` integer, nullable: Number of items already on shopping list.
          - `ordered` integer, nullable: Number of items currently in order
          - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
          - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
          - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
          - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
          - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `storeid` integer, nullable: The owner storeid
          - `image` ProductImage: A Product's image
            - `blurhash` string, nullable
            - `preview_url` string
            - `full_url` string
          - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
          - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
          - `deleted_at` string, nullable: Deleted date, if product is soft deleted
        - `taskmaterialid` integer, nullable: Relate the payment article to a taskmaterial. Use this to keep track of the payment status of task.
        - `discount_ppm_id` number, nullable: If the article has a discount. This will be a reference to the discount article. This will be autofilled by matching the value of discountToken and discountedToken
        - `discountToken` number
        - `discountedToken` number, nullable
        - `paymentid` integer, nullable
        - `deletedpromotion` integer, nullable: If a promotion is deleted from an article, this is set to 1, thus no further promotions will be applied to it
        - `discounttagid` integer, nullable
        - `discounttag` DiscountTag
          - `id` integer, nullable: A unique discount tag id
          - `label` string: Label for the discount
          - `handle` string, nullable: Unique handle for discounttag. Will be set automatically if not set
        - `promotionid` integer, nullable
        - `taskmaterial` TicketMaterial
          - `id` integer, nullable: A unique TicketMaterial ID
          - `taskid` integer, required
          - `title` string, required
          - `amount` number, required
          - `customerarticleid` integer, nullable
          - `customerarticle` CustomerArticle
            - `id` integer, nullable: A unique CustomerArticle ID
            - `dateadded` string, nullable: The date the customertarticle was created
            - `customerid` integer: The ID of the customer the customerarticle belongs to
            - `customer` Customer: The representation of a customer.
              - …
            - `title` string
            - `serieno` string, nullable
            - `color` string, nullable
            - `size` string, nullable
            - `customfield1` string, nullable
            - `customfield2` string, nullable
            - `customfield3` string, nullable
            - `customfield4` string, nullable
            - `storeid` integer: ID of the owning store
            - `servicesubscription` ServiceSubscription
              - …
            - `hasservicenotices` boolean: Whether or not the customer article has any service notices, check servicenotices_count instead
            - `servicenotices_count` integer: Amount of service notices
            - `permission` 'none' | 'readonly' | 'full'
            - `deleted` integer, nullable: If 1 this means that the customerarticle is deleted, 0 is not deleted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `last_sold_at` string, nullable: Timestamp of when the customerarticle was last sold on a payment (this does not include return payments)
          - `price` number, double, nullable, required: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
          - `costprice` number, double, nullable: Cost price of the product.
          - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat". See `total_ex_vat` for the total price excluding VAT.
          - `calculatedvat` number, double, nullable: The calculated VAT for the product's price field. See `total_vat` for the total VAT amount.
          - `productid` integer, nullable
          - `product` Product: The representation of a product.
            - `id` integer, nullable: A unique product ID
            - `title` string: Product name
            - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
            - `barcode` string, nullable: A unique barcode
            - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
            - `serieno` string, nullable
            - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
            - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
            - `costprice` number, double, nullable: Cost price of the product excl. VAT
            - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
            - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
            - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
            - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
            - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
            - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
            - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
            - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
              - …
            - `color` string, nullable
            - `styleno` string, nullable
            - `size` string, nullable
            - `brand` string, nullable
            - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
            - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
            - `vat_type` VatType
              - …
            - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
            - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
              - …
            - `customfield1` string, nullable: Field for custom product data
            - `customfield2` string, nullable
            - `customfield3` string, nullable
            - `customfield4` string, nullable
            - `created` string, nullable
            - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
            - `totalstock` integer, nullable: The sum of serial products in stock
            - `totalavailablestock` integer, nullable: The sum of serial products available
            - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
            - `onshoppinglist` integer, nullable: Number of items already on shopping list.
            - `ordered` integer, nullable: Number of items currently in order
            - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
            - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
            - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
            - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
            - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `storeid` integer, nullable: The owner storeid
            - `image` ProductImage: A Product's image
              - …
            - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
            - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
            - `deleted_at` string, nullable: Deleted date, if product is soft deleted
          - `productno` string, nullable
          - `discount_tm_id` integer, nullable
          - `usedGiftcardid` integer, nullable: If set, the material represents the use of giftcard for paying for the tasks
          - `usedGiftcard` Giftcard: A giftcard
            - `id` integer: A unique ID
            - `giftcardno` string: a unique string to identify giftcards.
            - `amount` number, double: The inital amount on the giftcard. Can only be set when the gift is created
            - `amountspent` number, double: The amount spent of the giftcard. Balance of the giftcard can be calculcated by `amount - amountspent`.
            - `paymentid` integer, nullable: If the giftcard was issued by a payment.
            - `type` 'giftcard' | 'voucher' | 'deposit'
            - `store` Store: Store object
              - …
            - `customer` Customer: The representation of a customer.
              - …
            - `customerid` integer, nullable: The unique customer ID of the currently registered customer of the giftcard, or null if none
            - `vat` number, nullable: The VAT percentage of the payment that issued the giftcard
            - `productid` integer, nullable: To be removed
            - `productno` string, nullable: To be removed
            - `external_id` number, nullable: The external id to Shopify etc.
            - `createddate` string: When the giftcard was created.
            - `expirationdate` string: When the giftcard expires. Defaults to the createddate + the value of the storeconfig "giftcard_expiration_years".
            - `draft` integer: Whether the giftcard is a draft (1) or finalized (0). Draft giftcards are created during discount-to-voucher conversion and finalized on payment completion.
            - `expired` boolean: If the giftcard has expired based on expirationdate.
            - `active` boolean, nullable: The giftcard is active if its not expired and amountspent is less than amount.
            - `deleted_at` string, nullable: When the giftcard was deleted.
            - `deleted` boolean: If the giftcard has been deleted based on deleted_at.
          - `promotionid` integer, nullable: The promotion id of the that triggered the discount
          - `deletedpromotion` integer, nullable: If a promotion is deleted from a taskmaterial, then this value is set to 1, meaning every promotion on the material will not be applied
          - `expecteddeliveries` string[]: List of dates, when the material is expected to be delivered from ongoing orders
          - `position` number: Number used to determin the order of the materials
          - `discounttagid` integer, nullable: Which discount tag it is attached to
          - `discountid` number, nullable: ID of the discount applied to the material. This will be null if the material has multiple discounts or if no discount is attached.
          - `discounttaglabel` string, nullable: Label of the discount tag
          - `bundleid` integer, nullable
          - `type` string, nullable: Can currently only be "newservicesubscription"
          - `servicesubscriptionid` integer, nullable: The id of the servicesubscription to be activated when payment completed
          - `servicesubscription` ServiceSubscription
            - `id` integer, nullable: A unique service id
            - `customerarticleid` integer: Which customer article that has been assigned to this subcription
            - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
            - `serviceplan` ServicePlan
              - …
            - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was deleted
            - `startdate` string, nullable: When the service has started
            - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
            - `price` number, nullable: The price of the serviceplan when the service was activated
            - `permission` Permission
              - …
            - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
          - `availablestock` integer, nullable: Number of non-reserved products in stock, ignoring the amount reserved by the material itself. Is null, if the material doesn't have a product, or stock keeping is disabled for the product.
          - `availablestockexceeded` boolean: Is true, if the amount exceeds the available stock count otherwise false. Will always be false, if the material doesn't have a product, or stock keeping is disabled for the product.
          - `amountpaid` number, nullable: Amount of the material that is paid (sum of quantities on completed payments). Only included when requested with `withamountpaid` on the list endpoint.
          - `addonparentmaterialid` integer, nullable: The id of the parent material. If set, this paymentmaterial is considered to be an addon
          - `total_vat` number, double, nullable: Total vat amount
          - `total_ex_vat` number, double, nullable: Total price excluding VAT
          - `total_incl_vat` number, double, nullable: Total price including VAT
        - `bundleid` integer, nullable
        - `type` string, nullable: Can either be "recurringpaymentterm", "newservicesubscription" or "newrecurringpayment"
        - `recurringpaymentid` integer, nullable: The id of the recurring payment
        - `servicesubscriptionid` integer, nullable: The id of the servicesubscription to be activated when payment completed
        - `servicesubscription` ServiceSubscription
          - `id` integer, nullable: A unique service id
          - `customerarticleid` integer: Which customer article that has been assigned to this subcription
          - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
          - `serviceplan` ServicePlan
            - `id` integer, nullable: A unique service id
            - `title` string: title for service
            - `handle` string, nullable: Unique handle for service. Will be set automatically if not set
            - `servicecallgroupid` integer, nullable: Which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroupids` integer[], nullable: An array of which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroup` ServiceNotificationTemplateGroup: A group of service notification templates
              - …
            - `servicecallgroups` ServiceNotificationTemplateGroup[], nullable
              - …
            - `producttagidsrestriction` integer[], nullable: Array of producttag ids where this service can be applied to. If tagid 1 and 2 is set as restriction, the product have to at least one of them in order to be included in the search
            - `producttaghandlesrestriction` string[], nullable: Array of producttag handles where this service can be applied to. If handle bike and mountainbike is set as restriction, the product have to at least one of them in order to be included in the search.
            - `producttagsrestriction` ProductTag[], nullable: Array of producttags where this service can be applied to.
              - …
            - `visibility` 'all' | 'secondhandvat' | 'normalvat': Determines what types of products this plan is visible for. All makes the plan visible for products with normalvat and secondhandvat
            - `price` number, nullable: If set, when adding a serviceplan to a serial product, it will create a material with the given price, and set the type of the material as "serivceplan"
            - `terms` integer, nullable: If set, when adding a serviceplan, an enddate is set to be x months from startdate for a subscription
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was soft deleted
            - `followproductno` string, nullable: When adding a service to a customerarticle, the product with the given followproductno will added as an additional material.
          - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
          - `updated_at` string, date-time, nullable: When the service was last updated
          - `created_at` string, date-time, nullable: When the service was created
          - `deleted_at` string, date-time, nullable: When the service was deleted
          - `startdate` string, nullable: When the service has started
          - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
          - `price` number, nullable: The price of the serviceplan when the service was activated
          - `permission` Permission
            - `read` boolean
            - `write` boolean
          - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
        - `loyaltypoints` number, nullable: The amount of desired loyalty points to be credited by this paymentmaterial.
        - `loyaltypoints_transactioned` number, nullable: The transactioned changed of loyalty points when payment is completed.
        - `addonparentmaterialid` integer, nullable: The id of the parent material. If set, this paymentmaterial is considered to be an addon
        - `date` string, nullable
        - `salesorder_fulfillment` boolean, nullable
        - `discountid` integer, nullable: The id of the discount added to the paymentmaterial
        - `returnmaterialid` number, nullable: An id referencing the paymentmaterial being returned
        - `returntagid` number, nullable: An id referencing the return tag (reason) of the paymentmaterial being returned
        - `total_vat` number, double, nullable: Total vat amount
        - `total_ex_vat` number, double, nullable: Total price excluding VAT
        - `total_incl_vat` number, double, nullable: Total price including VAT
        - `total_discount_incl_vat` number, double, nullable: Total discount including VAT for this line item (negative number; 0 when no discount)
        - `vat_type_id` integer, nullable: The id of the vat type from the product at the time it was created.
      - `recurring_payment_product_depreciation` RecurringPaymentProductDepreciation
        - `id` integer, nullable
        - `productid` integer
        - `product` Product: The representation of a product.
          - `id` integer, nullable: A unique product ID
          - `title` string: Product name
          - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
          - `barcode` string, nullable: A unique barcode
          - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
          - `serieno` string, nullable
          - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
          - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
          - `costprice` number, double, nullable: Cost price of the product excl. VAT
          - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
          - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
          - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
          - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
          - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
          - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
          - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
          - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
            - `id` integer, nullable: A unique id for a supplier
            - `name` string: The name of a supplier
            - `email` string, nullable: The mail of a supplier
            - `customerno` string, nullable: Customer number for the supplier
            - `address` string, nullable: Address of the supplier
            - `city` string, nullable: Which city the supplier is from
            - `zipcode` string, nullable: Zipcode of the supplier
            - `note` string, nullable
            - `handle` string, nullable: Slug for the supplier based on the name
            - `accountnumber` number, nullable: Accountnumber for the supplier, used to cross reference this supplier to a supplier in e-conomic
            - `auto_create_orderlist` boolean, nullable: If true, an orderlist will be created automatically for this supplier
            - `auto_create_orderlist_frequency` 'daily' | 'weekly' | 'monthly' | 'yearly' | 'null', nullable: The frequency of the orderlist creation
            - `auto_create_orderlist_day_of_week` integer[], nullable: The day of the week the orderlist should be created
            - `auto_create_orderlist_months` integer[], nullable: The months the orderlist should be created
            - `auto_create_orderlist_day_of_month` integer[], nullable: The day of the month the orderlist should be created
            - `auto_create_orderlist_minimum_costprice` number, nullable: The minimum costprice required to trigger the automatic creation of the order list
            - `external_supplier` string, nullable: The external supplier used for integrations, if given (e.g. "ponbike", etc)
            - `external_supplier_active` boolean, nullable: Whether the external supplier integration (e.g. "ponbike"/Gazelle) is currently authorized and active. Null when the supplier has no external_supplier.
            - `partner_store_id` integer, nullable: OBSOLETE - The store id from the available partner store
            - `verified_supplier_id` integer, nullable: Id of the verified supplier this supplier is linked to
            - `verified_supplier` VerifiedSupplierSummary
              - …
          - `color` string, nullable
          - `styleno` string, nullable
          - `size` string, nullable
          - `brand` string, nullable
          - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
          - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
          - `vat_type` VatType
            - `id` integer
            - `name` string
            - `rate` number
            - `revenue_account_no` string, nullable: Revenue account number for the revenue incl amount
            - `is_ticket_override` boolean: When true, this VAT type can be used to seed override VAT on new repair tickets.
            - `vat_account_no` string, nullable: VAT account number for the revenue vat part
          - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
          - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
            - `title` string: The title of the tag
            - `id` integer, nullable: The ID of the tag
            - `accountno` integer, nullable: The accountno used for book keeping
            - `promotionfilter` PromotionTagFilter, nullable
              - …
            - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. The handle is write once, and can not be changed after the tag is created.
            - `position` number, nullable: Number used to determine order of product tags.
            - `positionafterid` number, nullable: If this is set, the position of this product tag will be between positionafterid and the tag below if it exists.
            - `positionbeforeid` number, nullable: If this is set, the position of this product tag will be between positionbeforeid and the tag above if it exists.
          - `customfield1` string, nullable: Field for custom product data
          - `customfield2` string, nullable
          - `customfield3` string, nullable
          - `customfield4` string, nullable
          - `created` string, nullable
          - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
          - `totalstock` integer, nullable: The sum of serial products in stock
          - `totalavailablestock` integer, nullable: The sum of serial products available
          - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
          - `onshoppinglist` integer, nullable: Number of items already on shopping list.
          - `ordered` integer, nullable: Number of items currently in order
          - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
          - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
          - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
          - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
          - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `storeid` integer, nullable: The owner storeid
          - `image` ProductImage: A Product's image
            - `blurhash` string, nullable
            - `preview_url` string
            - `full_url` string
          - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
          - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
          - `deleted_at` string, nullable: Deleted date, if product is soft deleted
        - `customerarticleid` integer, nullable: Id for the customerarticle attached to the recurring payment product
        - `customerarticle` CustomerArticle
          - `id` integer, nullable: A unique CustomerArticle ID
          - `dateadded` string, nullable: The date the customertarticle was created
          - `customerid` integer: The ID of the customer the customerarticle belongs to
          - `customer` Customer: The representation of a customer.
            - `id` integer: A unique customer ID
            - `storeid` integer: ID for the store for which the customer is associated
            - `createddate` string, nullable
            - `name` string, nullable: The name of the customer.
            - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
            - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
            - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
            - `email` string, nullable: The email of the customer.
            - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
            - `address` string, nullable: The address of the customer.
            - `city` string, nullable: The city of the customer.
            - `zipcode` string, nullable: The zip code of the customer.
            - `addr_country` string, nullable: The country of the customers address.
            - `lat` number, double, nullable: The latitude of the customer.
            - `lng` number, double, nullable: The longitude of the customer.
            - `birthdate` string, nullable
            - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
            - `vat` string, nullable: The VAT/CVR number associated with the customer.
            - `customerno` string, nullable: The customer-number associated with the customer.
            - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
            - `balance` number, nullable: The customer's balance
            - `note` string, nullable: A note about the customer.
            - `draft` integer: Whether or not the customer is in draft mode
            - `deleted` integer: Whether or not the customer is deleted
            - `tags` CustomerTag[], nullable: Tags associated with the customer.
              - …
            - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
            - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
            - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
            - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
              - …
          - `title` string
          - `serieno` string, nullable
          - `color` string, nullable
          - `size` string, nullable
          - `customfield1` string, nullable
          - `customfield2` string, nullable
          - `customfield3` string, nullable
          - `customfield4` string, nullable
          - `storeid` integer: ID of the owning store
          - `servicesubscription` ServiceSubscription
            - `id` integer, nullable: A unique service id
            - `customerarticleid` integer: Which customer article that has been assigned to this subcription
            - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
            - `serviceplan` ServicePlan
              - …
            - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was deleted
            - `startdate` string, nullable: When the service has started
            - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
            - `price` number, nullable: The price of the serviceplan when the service was activated
            - `permission` Permission
              - …
            - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
          - `hasservicenotices` boolean: Whether or not the customer article has any service notices, check servicenotices_count instead
          - `servicenotices_count` integer: Amount of service notices
          - `permission` 'none' | 'readonly' | 'full'
          - `deleted` integer, nullable: If 1 this means that the customerarticle is deleted, 0 is not deleted.
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `last_sold_at` string, nullable: Timestamp of when the customerarticle was last sold on a payment (this does not include return payments)
        - `scrapvalue` number
        - `initialcostprice` number, nullable: The initialcostprice is set from the products costprice
        - `currentcostprice` number, nullable: The costprice slowly depreciate, this is what the costprice has been depreciated to
        - `recurringpaymentid` integer, nullable
        - `scrapdate` string, nullable: The date when the products costprice degrades to scrapvalue (it degrades every payment)
        - `created_at` string, nullable
      - `created_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable
    - `nextduedate` string, nullable: Date of when the next payment is due to.
    - `overdue` boolean, nullable: If the payment is overdue.
    - `status` 'active' | 'cancelled' | 'paidwaitingreturn' | 'completed'
    - `userid` integer, nullable
    - `user` object, nullable: User that create the recurring payment
      - `name` string
      - `id` number

## Response `200`

Ok

- RecurringPaymentResponse
  - `content` RecurringPayment
    - `id` integer, nullable
    - `startdate` string, nullable: Date of when the recurring payment has started
    - `expectedenddate` string, nullable: Date of when the recurring payment has started
    - `termamount` number, nullable: Amount the customer has to pay pr. term which is calculated from amountleft and terms
    - `termamountwithoutvat` number, nullable
    - `termvatamount` number, nullable
    - `vat` number, nullable
    - `nextamount` number, nullable: The exact amount of the next payment.
    - `amountleft` number: The amount the customer has to pay
    - `customerid` integer
    - `customer` Customer: The representation of a customer.
      - `id` integer: A unique customer ID
      - `storeid` integer: ID for the store for which the customer is associated
      - `createddate` string, nullable
      - `name` string, nullable: The name of the customer.
      - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
      - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
      - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
      - `email` string, nullable: The email of the customer.
      - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
      - `address` string, nullable: The address of the customer.
      - `city` string, nullable: The city of the customer.
      - `zipcode` string, nullable: The zip code of the customer.
      - `addr_country` string, nullable: The country of the customers address.
      - `lat` number, double, nullable: The latitude of the customer.
      - `lng` number, double, nullable: The longitude of the customer.
      - `birthdate` string, nullable
      - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
      - `vat` string, nullable: The VAT/CVR number associated with the customer.
      - `customerno` string, nullable: The customer-number associated with the customer.
      - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
      - `balance` number, nullable: The customer's balance
      - `note` string, nullable: A note about the customer.
      - `draft` integer: Whether or not the customer is in draft mode
      - `deleted` integer: Whether or not the customer is deleted
      - `tags` CustomerTag[], nullable: Tags associated with the customer.
        - `title` string, required: The title of the tag
        - `id` integer, nullable: The id of the tag
        - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. This value cannot be changed once set.
        - `color` string, nullable: The color used when displaying the tag in the app
      - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
      - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
      - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
      - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
      - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
      - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
      - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
      - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
        - `id` integer: Store id
        - `title` string: Store title
    - `paymentno` integer, nullable: The number of the recurring payment
    - `terms` integer: Amount of terms the customer has to pay
    - `termspaid` integer, nullable: The amount of terms that has been paid
    - `interval` 'month' | 'year': Interval of when the next term is, you can either choose "month" or "year" as interval.
    - `recurringpaymentproductdepreciations` RecurringPaymentProductDepreciation[], nullable
      - `id` integer, nullable
      - `productid` integer
      - `product` Product: The representation of a product.
        - `id` integer, nullable: A unique product ID
        - `title` string: Product name
        - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
        - `barcode` string, nullable: A unique barcode
        - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
        - `serieno` string, nullable
        - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
        - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
        - `costprice` number, double, nullable: Cost price of the product excl. VAT
        - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
        - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
        - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
        - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
        - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
        - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
        - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
        - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
          - `id` integer, nullable: A unique id for a supplier
          - `name` string: The name of a supplier
          - `email` string, nullable: The mail of a supplier
          - `customerno` string, nullable: Customer number for the supplier
          - `address` string, nullable: Address of the supplier
          - `city` string, nullable: Which city the supplier is from
          - `zipcode` string, nullable: Zipcode of the supplier
          - `note` string, nullable
          - `handle` string, nullable: Slug for the supplier based on the name
          - `accountnumber` number, nullable: Accountnumber for the supplier, used to cross reference this supplier to a supplier in e-conomic
          - `auto_create_orderlist` boolean, nullable: If true, an orderlist will be created automatically for this supplier
          - `auto_create_orderlist_frequency` 'daily' | 'weekly' | 'monthly' | 'yearly' | 'null', nullable: The frequency of the orderlist creation
          - `auto_create_orderlist_day_of_week` integer[], nullable: The day of the week the orderlist should be created
          - `auto_create_orderlist_months` integer[], nullable: The months the orderlist should be created
          - `auto_create_orderlist_day_of_month` integer[], nullable: The day of the month the orderlist should be created
          - `auto_create_orderlist_minimum_costprice` number, nullable: The minimum costprice required to trigger the automatic creation of the order list
          - `external_supplier` string, nullable: The external supplier used for integrations, if given (e.g. "ponbike", etc)
          - `external_supplier_active` boolean, nullable: Whether the external supplier integration (e.g. "ponbike"/Gazelle) is currently authorized and active. Null when the supplier has no external_supplier.
          - `partner_store_id` integer, nullable: OBSOLETE - The store id from the available partner store
          - `verified_supplier_id` integer, nullable: Id of the verified supplier this supplier is linked to
          - `verified_supplier` VerifiedSupplierSummary
            - `id` integer, required
            - `name` string, required
            - `email` string, required
            - `image_url` string, nullable, required
        - `color` string, nullable
        - `styleno` string, nullable
        - `size` string, nullable
        - `brand` string, nullable
        - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
        - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
        - `vat_type` VatType
          - `id` integer
          - `name` string
          - `rate` number
          - `revenue_account_no` string, nullable: Revenue account number for the revenue incl amount
          - `is_ticket_override` boolean: When true, this VAT type can be used to seed override VAT on new repair tickets.
          - `vat_account_no` string, nullable: VAT account number for the revenue vat part
        - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
        - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
          - `title` string: The title of the tag
          - `id` integer, nullable: The ID of the tag
          - `accountno` integer, nullable: The accountno used for book keeping
          - `promotionfilter` PromotionTagFilter, nullable
            - `amount` integer, nullable: minimum amount of products in order to apply promotion
            - `date` object, nullable: date of when the promotion should be applied
              - …
          - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. The handle is write once, and can not be changed after the tag is created.
          - `position` number, nullable: Number used to determine order of product tags.
          - `positionafterid` number, nullable: If this is set, the position of this product tag will be between positionafterid and the tag below if it exists.
          - `positionbeforeid` number, nullable: If this is set, the position of this product tag will be between positionbeforeid and the tag above if it exists.
        - `customfield1` string, nullable: Field for custom product data
        - `customfield2` string, nullable
        - `customfield3` string, nullable
        - `customfield4` string, nullable
        - `created` string, nullable
        - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
        - `totalstock` integer, nullable: The sum of serial products in stock
        - `totalavailablestock` integer, nullable: The sum of serial products available
        - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
        - `onshoppinglist` integer, nullable: Number of items already on shopping list.
        - `ordered` integer, nullable: Number of items currently in order
        - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
        - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
        - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
        - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
        - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
        - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
        - `storeid` integer, nullable: The owner storeid
        - `image` ProductImage: A Product's image
          - `blurhash` string, nullable
          - `preview_url` string
          - `full_url` string
        - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
        - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
        - `deleted_at` string, nullable: Deleted date, if product is soft deleted
      - `customerarticleid` integer, nullable: Id for the customerarticle attached to the recurring payment product
      - `customerarticle` CustomerArticle
        - `id` integer, nullable: A unique CustomerArticle ID
        - `dateadded` string, nullable: The date the customertarticle was created
        - `customerid` integer: The ID of the customer the customerarticle belongs to
        - `customer` Customer: The representation of a customer.
          - `id` integer: A unique customer ID
          - `storeid` integer: ID for the store for which the customer is associated
          - `createddate` string, nullable
          - `name` string, nullable: The name of the customer.
          - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
          - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
          - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
          - `email` string, nullable: The email of the customer.
          - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
          - `address` string, nullable: The address of the customer.
          - `city` string, nullable: The city of the customer.
          - `zipcode` string, nullable: The zip code of the customer.
          - `addr_country` string, nullable: The country of the customers address.
          - `lat` number, double, nullable: The latitude of the customer.
          - `lng` number, double, nullable: The longitude of the customer.
          - `birthdate` string, nullable
          - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
          - `vat` string, nullable: The VAT/CVR number associated with the customer.
          - `customerno` string, nullable: The customer-number associated with the customer.
          - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
          - `balance` number, nullable: The customer's balance
          - `note` string, nullable: A note about the customer.
          - `draft` integer: Whether or not the customer is in draft mode
          - `deleted` integer: Whether or not the customer is deleted
          - `tags` CustomerTag[], nullable: Tags associated with the customer.
            - `title` string, required: The title of the tag
            - `id` integer, nullable: The id of the tag
            - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. This value cannot be changed once set.
            - `color` string, nullable: The color used when displaying the tag in the app
          - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
          - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
          - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
          - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
          - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
          - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
            - `id` integer: Store id
            - `title` string: Store title
        - `title` string
        - `serieno` string, nullable
        - `color` string, nullable
        - `size` string, nullable
        - `customfield1` string, nullable
        - `customfield2` string, nullable
        - `customfield3` string, nullable
        - `customfield4` string, nullable
        - `storeid` integer: ID of the owning store
        - `servicesubscription` ServiceSubscription
          - `id` integer, nullable: A unique service id
          - `customerarticleid` integer: Which customer article that has been assigned to this subcription
          - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
          - `serviceplan` ServicePlan
            - `id` integer, nullable: A unique service id
            - `title` string: title for service
            - `handle` string, nullable: Unique handle for service. Will be set automatically if not set
            - `servicecallgroupid` integer, nullable: Which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroupids` integer[], nullable: An array of which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroup` ServiceNotificationTemplateGroup: A group of service notification templates
              - …
            - `servicecallgroups` ServiceNotificationTemplateGroup[], nullable
              - …
            - `producttagidsrestriction` integer[], nullable: Array of producttag ids where this service can be applied to. If tagid 1 and 2 is set as restriction, the product have to at least one of them in order to be included in the search
            - `producttaghandlesrestriction` string[], nullable: Array of producttag handles where this service can be applied to. If handle bike and mountainbike is set as restriction, the product have to at least one of them in order to be included in the search.
            - `producttagsrestriction` ProductTag[], nullable: Array of producttags where this service can be applied to.
              - …
            - `visibility` 'all' | 'secondhandvat' | 'normalvat': Determines what types of products this plan is visible for. All makes the plan visible for products with normalvat and secondhandvat
            - `price` number, nullable: If set, when adding a serviceplan to a serial product, it will create a material with the given price, and set the type of the material as "serivceplan"
            - `terms` integer, nullable: If set, when adding a serviceplan, an enddate is set to be x months from startdate for a subscription
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was soft deleted
            - `followproductno` string, nullable: When adding a service to a customerarticle, the product with the given followproductno will added as an additional material.
          - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
          - `updated_at` string, date-time, nullable: When the service was last updated
          - `created_at` string, date-time, nullable: When the service was created
          - `deleted_at` string, date-time, nullable: When the service was deleted
          - `startdate` string, nullable: When the service has started
          - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
          - `price` number, nullable: The price of the serviceplan when the service was activated
          - `permission` Permission
            - `read` boolean
            - `write` boolean
          - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
        - `hasservicenotices` boolean: Whether or not the customer article has any service notices, check servicenotices_count instead
        - `servicenotices_count` integer: Amount of service notices
        - `permission` 'none' | 'readonly' | 'full'
        - `deleted` integer, nullable: If 1 this means that the customerarticle is deleted, 0 is not deleted.
        - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
        - `last_sold_at` string, nullable: Timestamp of when the customerarticle was last sold on a payment (this does not include return payments)
      - `scrapvalue` number
      - `initialcostprice` number, nullable: The initialcostprice is set from the products costprice
      - `currentcostprice` number, nullable: The costprice slowly depreciate, this is what the costprice has been depreciated to
      - `recurringpaymentid` integer, nullable
      - `scrapdate` string, nullable: The date when the products costprice degrades to scrapvalue (it degrades every payment)
      - `created_at` string, nullable
    - `recurring_payment_materials` RecurringPaymentMaterial[], nullable
      - `id` integer, nullable
      - `recurring_payment_id` integer, nullable: Id for the recurring payment this material is attached to
      - `pos_payment_material_id` integer: Id for the payment article attached to the recurring payment material
      - `pos_payment_material` PaymentArticle: The representation of a POS article To issue/sell giftcards If you want to issue a gift card, sell a article with productno either 'giftcard', 'voucher', or 'deposit' and provide a unique giftcard number as value of giftcardno. Quantity must be 1 If you want to return a giftcard set `giftcardid` and quantity to -1. Price must be positive If you want to use a giftcard set `giftcardid` and quantity to 1. Price must be be negative any other value for quantiy and price for giftcards will fail.
        - `id` integer, nullable: A unique ID generated automatically
        - `title` string: The title of the article sold
        - `price` number, double: Price of the article. By default price includes VAT but can be changed in the store config "prices_include_vat".
        - `costprice` number, double, nullable: The cost price of the article sold
        - `quantity` number: Number of articles sold.
        - `vat` number, double: VAT percentage.
        - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
        - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
        - `vatamount` number, double, nullable: The calculated VAT for the price field.
        - `giftcardno` string, nullable: Provide this if you want to issue a giftcard with the payment. The amount on the giftcard will be the value of price.
        - `usedGiftcardId` integer, nullable: Provide this if you want use a giftcard as means of payment. The value of price will be deducted from the giftcard balance
        - `usedGiftcard` Giftcard: A giftcard
          - `id` integer: A unique ID
          - `giftcardno` string: a unique string to identify giftcards.
          - `amount` number, double: The inital amount on the giftcard. Can only be set when the gift is created
          - `amountspent` number, double: The amount spent of the giftcard. Balance of the giftcard can be calculcated by `amount - amountspent`.
          - `paymentid` integer, nullable: If the giftcard was issued by a payment.
          - `type` 'giftcard' | 'voucher' | 'deposit'
          - `store` Store: Store object
            - `id` integer
            - `title` string, required
            - `cityname` string, nullable
            - `zipcode` string, nullable
            - `streetname` string, nullable
            - `streetno` string, nullable
            - `phone` string, nullable
            - `email` string, nullable
            - `website` string, nullable
            - `created` string
            - `countrydata` CountryData
              - …
          - `customer` Customer: The representation of a customer.
            - `id` integer: A unique customer ID
            - `storeid` integer: ID for the store for which the customer is associated
            - `createddate` string, nullable
            - `name` string, nullable: The name of the customer.
            - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
            - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
            - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
            - `email` string, nullable: The email of the customer.
            - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
            - `address` string, nullable: The address of the customer.
            - `city` string, nullable: The city of the customer.
            - `zipcode` string, nullable: The zip code of the customer.
            - `addr_country` string, nullable: The country of the customers address.
            - `lat` number, double, nullable: The latitude of the customer.
            - `lng` number, double, nullable: The longitude of the customer.
            - `birthdate` string, nullable
            - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
            - `vat` string, nullable: The VAT/CVR number associated with the customer.
            - `customerno` string, nullable: The customer-number associated with the customer.
            - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
            - `balance` number, nullable: The customer's balance
            - `note` string, nullable: A note about the customer.
            - `draft` integer: Whether or not the customer is in draft mode
            - `deleted` integer: Whether or not the customer is deleted
            - `tags` CustomerTag[], nullable: Tags associated with the customer.
              - …
            - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
            - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
            - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
            - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
              - …
          - `customerid` integer, nullable: The unique customer ID of the currently registered customer of the giftcard, or null if none
          - `vat` number, nullable: The VAT percentage of the payment that issued the giftcard
          - `productid` integer, nullable: To be removed
          - `productno` string, nullable: To be removed
          - `external_id` number, nullable: The external id to Shopify etc.
          - `createddate` string: When the giftcard was created.
          - `expirationdate` string: When the giftcard expires. Defaults to the createddate + the value of the storeconfig "giftcard_expiration_years".
          - `draft` integer: Whether the giftcard is a draft (1) or finalized (0). Draft giftcards are created during discount-to-voucher conversion and finalized on payment completion.
          - `expired` boolean: If the giftcard has expired based on expirationdate.
          - `active` boolean, nullable: The giftcard is active if its not expired and amountspent is less than amount.
          - `deleted_at` string, nullable: When the giftcard was deleted.
          - `deleted` boolean: If the giftcard has been deleted based on deleted_at.
        - `giftcardid` integer, nullable: Id of issued giftcard
        - `giftcard` Giftcard: A giftcard
          - `id` integer: A unique ID
          - `giftcardno` string: a unique string to identify giftcards.
          - `amount` number, double: The inital amount on the giftcard. Can only be set when the gift is created
          - `amountspent` number, double: The amount spent of the giftcard. Balance of the giftcard can be calculcated by `amount - amountspent`.
          - `paymentid` integer, nullable: If the giftcard was issued by a payment.
          - `type` 'giftcard' | 'voucher' | 'deposit'
          - `store` Store: Store object
            - `id` integer
            - `title` string, required
            - `cityname` string, nullable
            - `zipcode` string, nullable
            - `streetname` string, nullable
            - `streetno` string, nullable
            - `phone` string, nullable
            - `email` string, nullable
            - `website` string, nullable
            - `created` string
            - `countrydata` CountryData
              - …
          - `customer` Customer: The representation of a customer.
            - `id` integer: A unique customer ID
            - `storeid` integer: ID for the store for which the customer is associated
            - `createddate` string, nullable
            - `name` string, nullable: The name of the customer.
            - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
            - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
            - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
            - `email` string, nullable: The email of the customer.
            - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
            - `address` string, nullable: The address of the customer.
            - `city` string, nullable: The city of the customer.
            - `zipcode` string, nullable: The zip code of the customer.
            - `addr_country` string, nullable: The country of the customers address.
            - `lat` number, double, nullable: The latitude of the customer.
            - `lng` number, double, nullable: The longitude of the customer.
            - `birthdate` string, nullable
            - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
            - `vat` string, nullable: The VAT/CVR number associated with the customer.
            - `customerno` string, nullable: The customer-number associated with the customer.
            - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
            - `balance` number, nullable: The customer's balance
            - `note` string, nullable: A note about the customer.
            - `draft` integer: Whether or not the customer is in draft mode
            - `deleted` integer: Whether or not the customer is deleted
            - `tags` CustomerTag[], nullable: Tags associated with the customer.
              - …
            - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
            - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
            - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
            - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
              - …
          - `customerid` integer, nullable: The unique customer ID of the currently registered customer of the giftcard, or null if none
          - `vat` number, nullable: The VAT percentage of the payment that issued the giftcard
          - `productid` integer, nullable: To be removed
          - `productno` string, nullable: To be removed
          - `external_id` number, nullable: The external id to Shopify etc.
          - `createddate` string: When the giftcard was created.
          - `expirationdate` string: When the giftcard expires. Defaults to the createddate + the value of the storeconfig "giftcard_expiration_years".
          - `draft` integer: Whether the giftcard is a draft (1) or finalized (0). Draft giftcards are created during discount-to-voucher conversion and finalized on payment completion.
          - `expired` boolean: If the giftcard has expired based on expirationdate.
          - `active` boolean, nullable: The giftcard is active if its not expired and amountspent is less than amount.
          - `deleted_at` string, nullable: When the giftcard was deleted.
          - `deleted` boolean: If the giftcard has been deleted based on deleted_at.
        - `customerarticleid` integer, nullable: Id of the attached customerarticle
        - `productno` string, nullable: For legacy support, instead refer to product.productno. This is only used for voucher and deposit
        - `productid` integer, nullable: < The the id of the product you want to sell. Stock will be deducted from the product after succesful payment. Deleted products are allowed. This is useful for return sales and payments of tickets with deleted products.
        - `product` Product: The representation of a product.
          - `id` integer, nullable: A unique product ID
          - `title` string: Product name
          - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
          - `barcode` string, nullable: A unique barcode
          - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
          - `serieno` string, nullable
          - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
          - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
          - `costprice` number, double, nullable: Cost price of the product excl. VAT
          - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
          - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
          - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
          - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
          - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
          - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
          - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
          - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
            - `id` integer, nullable: A unique id for a supplier
            - `name` string: The name of a supplier
            - `email` string, nullable: The mail of a supplier
            - `customerno` string, nullable: Customer number for the supplier
            - `address` string, nullable: Address of the supplier
            - `city` string, nullable: Which city the supplier is from
            - `zipcode` string, nullable: Zipcode of the supplier
            - `note` string, nullable
            - `handle` string, nullable: Slug for the supplier based on the name
            - `accountnumber` number, nullable: Accountnumber for the supplier, used to cross reference this supplier to a supplier in e-conomic
            - `auto_create_orderlist` boolean, nullable: If true, an orderlist will be created automatically for this supplier
            - `auto_create_orderlist_frequency` 'daily' | 'weekly' | 'monthly' | 'yearly' | 'null', nullable: The frequency of the orderlist creation
            - `auto_create_orderlist_day_of_week` integer[], nullable: The day of the week the orderlist should be created
            - `auto_create_orderlist_months` integer[], nullable: The months the orderlist should be created
            - `auto_create_orderlist_day_of_month` integer[], nullable: The day of the month the orderlist should be created
            - `auto_create_orderlist_minimum_costprice` number, nullable: The minimum costprice required to trigger the automatic creation of the order list
            - `external_supplier` string, nullable: The external supplier used for integrations, if given (e.g. "ponbike", etc)
            - `external_supplier_active` boolean, nullable: Whether the external supplier integration (e.g. "ponbike"/Gazelle) is currently authorized and active. Null when the supplier has no external_supplier.
            - `partner_store_id` integer, nullable: OBSOLETE - The store id from the available partner store
            - `verified_supplier_id` integer, nullable: Id of the verified supplier this supplier is linked to
            - `verified_supplier` VerifiedSupplierSummary
              - …
          - `color` string, nullable
          - `styleno` string, nullable
          - `size` string, nullable
          - `brand` string, nullable
          - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
          - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
          - `vat_type` VatType
            - `id` integer
            - `name` string
            - `rate` number
            - `revenue_account_no` string, nullable: Revenue account number for the revenue incl amount
            - `is_ticket_override` boolean: When true, this VAT type can be used to seed override VAT on new repair tickets.
            - `vat_account_no` string, nullable: VAT account number for the revenue vat part
          - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
          - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
            - `title` string: The title of the tag
            - `id` integer, nullable: The ID of the tag
            - `accountno` integer, nullable: The accountno used for book keeping
            - `promotionfilter` PromotionTagFilter, nullable
              - …
            - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. The handle is write once, and can not be changed after the tag is created.
            - `position` number, nullable: Number used to determine order of product tags.
            - `positionafterid` number, nullable: If this is set, the position of this product tag will be between positionafterid and the tag below if it exists.
            - `positionbeforeid` number, nullable: If this is set, the position of this product tag will be between positionbeforeid and the tag above if it exists.
          - `customfield1` string, nullable: Field for custom product data
          - `customfield2` string, nullable
          - `customfield3` string, nullable
          - `customfield4` string, nullable
          - `created` string, nullable
          - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
          - `totalstock` integer, nullable: The sum of serial products in stock
          - `totalavailablestock` integer, nullable: The sum of serial products available
          - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
          - `onshoppinglist` integer, nullable: Number of items already on shopping list.
          - `ordered` integer, nullable: Number of items currently in order
          - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
          - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
          - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
          - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
          - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `storeid` integer, nullable: The owner storeid
          - `image` ProductImage: A Product's image
            - `blurhash` string, nullable
            - `preview_url` string
            - `full_url` string
          - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
          - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
          - `deleted_at` string, nullable: Deleted date, if product is soft deleted
        - `taskmaterialid` integer, nullable: Relate the payment article to a taskmaterial. Use this to keep track of the payment status of task.
        - `discount_ppm_id` number, nullable: If the article has a discount. This will be a reference to the discount article. This will be autofilled by matching the value of discountToken and discountedToken
        - `discountToken` number
        - `discountedToken` number, nullable
        - `paymentid` integer, nullable
        - `deletedpromotion` integer, nullable: If a promotion is deleted from an article, this is set to 1, thus no further promotions will be applied to it
        - `discounttagid` integer, nullable
        - `discounttag` DiscountTag
          - `id` integer, nullable: A unique discount tag id
          - `label` string: Label for the discount
          - `handle` string, nullable: Unique handle for discounttag. Will be set automatically if not set
        - `promotionid` integer, nullable
        - `taskmaterial` TicketMaterial
          - `id` integer, nullable: A unique TicketMaterial ID
          - `taskid` integer, required
          - `title` string, required
          - `amount` number, required
          - `customerarticleid` integer, nullable
          - `customerarticle` CustomerArticle
            - `id` integer, nullable: A unique CustomerArticle ID
            - `dateadded` string, nullable: The date the customertarticle was created
            - `customerid` integer: The ID of the customer the customerarticle belongs to
            - `customer` Customer: The representation of a customer.
              - …
            - `title` string
            - `serieno` string, nullable
            - `color` string, nullable
            - `size` string, nullable
            - `customfield1` string, nullable
            - `customfield2` string, nullable
            - `customfield3` string, nullable
            - `customfield4` string, nullable
            - `storeid` integer: ID of the owning store
            - `servicesubscription` ServiceSubscription
              - …
            - `hasservicenotices` boolean: Whether or not the customer article has any service notices, check servicenotices_count instead
            - `servicenotices_count` integer: Amount of service notices
            - `permission` 'none' | 'readonly' | 'full'
            - `deleted` integer, nullable: If 1 this means that the customerarticle is deleted, 0 is not deleted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `last_sold_at` string, nullable: Timestamp of when the customerarticle was last sold on a payment (this does not include return payments)
          - `price` number, double, nullable, required: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
          - `costprice` number, double, nullable: Cost price of the product.
          - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat". See `total_ex_vat` for the total price excluding VAT.
          - `calculatedvat` number, double, nullable: The calculated VAT for the product's price field. See `total_vat` for the total VAT amount.
          - `productid` integer, nullable
          - `product` Product: The representation of a product.
            - `id` integer, nullable: A unique product ID
            - `title` string: Product name
            - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
            - `barcode` string, nullable: A unique barcode
            - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
            - `serieno` string, nullable
            - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
            - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
            - `costprice` number, double, nullable: Cost price of the product excl. VAT
            - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
            - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
            - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
            - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
            - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
            - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
            - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
            - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
              - …
            - `color` string, nullable
            - `styleno` string, nullable
            - `size` string, nullable
            - `brand` string, nullable
            - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
            - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
            - `vat_type` VatType
              - …
            - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
            - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
              - …
            - `customfield1` string, nullable: Field for custom product data
            - `customfield2` string, nullable
            - `customfield3` string, nullable
            - `customfield4` string, nullable
            - `created` string, nullable
            - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
            - `totalstock` integer, nullable: The sum of serial products in stock
            - `totalavailablestock` integer, nullable: The sum of serial products available
            - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
            - `onshoppinglist` integer, nullable: Number of items already on shopping list.
            - `ordered` integer, nullable: Number of items currently in order
            - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
            - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
            - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
            - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
            - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `storeid` integer, nullable: The owner storeid
            - `image` ProductImage: A Product's image
              - …
            - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
            - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
            - `deleted_at` string, nullable: Deleted date, if product is soft deleted
          - `productno` string, nullable
          - `discount_tm_id` integer, nullable
          - `usedGiftcardid` integer, nullable: If set, the material represents the use of giftcard for paying for the tasks
          - `usedGiftcard` Giftcard: A giftcard
            - `id` integer: A unique ID
            - `giftcardno` string: a unique string to identify giftcards.
            - `amount` number, double: The inital amount on the giftcard. Can only be set when the gift is created
            - `amountspent` number, double: The amount spent of the giftcard. Balance of the giftcard can be calculcated by `amount - amountspent`.
            - `paymentid` integer, nullable: If the giftcard was issued by a payment.
            - `type` 'giftcard' | 'voucher' | 'deposit'
            - `store` Store: Store object
              - …
            - `customer` Customer: The representation of a customer.
              - …
            - `customerid` integer, nullable: The unique customer ID of the currently registered customer of the giftcard, or null if none
            - `vat` number, nullable: The VAT percentage of the payment that issued the giftcard
            - `productid` integer, nullable: To be removed
            - `productno` string, nullable: To be removed
            - `external_id` number, nullable: The external id to Shopify etc.
            - `createddate` string: When the giftcard was created.
            - `expirationdate` string: When the giftcard expires. Defaults to the createddate + the value of the storeconfig "giftcard_expiration_years".
            - `draft` integer: Whether the giftcard is a draft (1) or finalized (0). Draft giftcards are created during discount-to-voucher conversion and finalized on payment completion.
            - `expired` boolean: If the giftcard has expired based on expirationdate.
            - `active` boolean, nullable: The giftcard is active if its not expired and amountspent is less than amount.
            - `deleted_at` string, nullable: When the giftcard was deleted.
            - `deleted` boolean: If the giftcard has been deleted based on deleted_at.
          - `promotionid` integer, nullable: The promotion id of the that triggered the discount
          - `deletedpromotion` integer, nullable: If a promotion is deleted from a taskmaterial, then this value is set to 1, meaning every promotion on the material will not be applied
          - `expecteddeliveries` string[]: List of dates, when the material is expected to be delivered from ongoing orders
          - `position` number: Number used to determin the order of the materials
          - `discounttagid` integer, nullable: Which discount tag it is attached to
          - `discountid` number, nullable: ID of the discount applied to the material. This will be null if the material has multiple discounts or if no discount is attached.
          - `discounttaglabel` string, nullable: Label of the discount tag
          - `bundleid` integer, nullable
          - `type` string, nullable: Can currently only be "newservicesubscription"
          - `servicesubscriptionid` integer, nullable: The id of the servicesubscription to be activated when payment completed
          - `servicesubscription` ServiceSubscription
            - `id` integer, nullable: A unique service id
            - `customerarticleid` integer: Which customer article that has been assigned to this subcription
            - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
            - `serviceplan` ServicePlan
              - …
            - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was deleted
            - `startdate` string, nullable: When the service has started
            - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
            - `price` number, nullable: The price of the serviceplan when the service was activated
            - `permission` Permission
              - …
            - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
          - `availablestock` integer, nullable: Number of non-reserved products in stock, ignoring the amount reserved by the material itself. Is null, if the material doesn't have a product, or stock keeping is disabled for the product.
          - `availablestockexceeded` boolean: Is true, if the amount exceeds the available stock count otherwise false. Will always be false, if the material doesn't have a product, or stock keeping is disabled for the product.
          - `amountpaid` number, nullable: Amount of the material that is paid (sum of quantities on completed payments). Only included when requested with `withamountpaid` on the list endpoint.
          - `addonparentmaterialid` integer, nullable: The id of the parent material. If set, this paymentmaterial is considered to be an addon
          - `total_vat` number, double, nullable: Total vat amount
          - `total_ex_vat` number, double, nullable: Total price excluding VAT
          - `total_incl_vat` number, double, nullable: Total price including VAT
        - `bundleid` integer, nullable
        - `type` string, nullable: Can either be "recurringpaymentterm", "newservicesubscription" or "newrecurringpayment"
        - `recurringpaymentid` integer, nullable: The id of the recurring payment
        - `servicesubscriptionid` integer, nullable: The id of the servicesubscription to be activated when payment completed
        - `servicesubscription` ServiceSubscription
          - `id` integer, nullable: A unique service id
          - `customerarticleid` integer: Which customer article that has been assigned to this subcription
          - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
          - `serviceplan` ServicePlan
            - `id` integer, nullable: A unique service id
            - `title` string: title for service
            - `handle` string, nullable: Unique handle for service. Will be set automatically if not set
            - `servicecallgroupid` integer, nullable: Which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroupids` integer[], nullable: An array of which servicegroup should automatically be selected, if the service is on a customerarticle
            - `servicecallgroup` ServiceNotificationTemplateGroup: A group of service notification templates
              - …
            - `servicecallgroups` ServiceNotificationTemplateGroup[], nullable
              - …
            - `producttagidsrestriction` integer[], nullable: Array of producttag ids where this service can be applied to. If tagid 1 and 2 is set as restriction, the product have to at least one of them in order to be included in the search
            - `producttaghandlesrestriction` string[], nullable: Array of producttag handles where this service can be applied to. If handle bike and mountainbike is set as restriction, the product have to at least one of them in order to be included in the search.
            - `producttagsrestriction` ProductTag[], nullable: Array of producttags where this service can be applied to.
              - …
            - `visibility` 'all' | 'secondhandvat' | 'normalvat': Determines what types of products this plan is visible for. All makes the plan visible for products with normalvat and secondhandvat
            - `price` number, nullable: If set, when adding a serviceplan to a serial product, it will create a material with the given price, and set the type of the material as "serivceplan"
            - `terms` integer, nullable: If set, when adding a serviceplan, an enddate is set to be x months from startdate for a subscription
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was soft deleted
            - `followproductno` string, nullable: When adding a service to a customerarticle, the product with the given followproductno will added as an additional material.
          - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
          - `updated_at` string, date-time, nullable: When the service was last updated
          - `created_at` string, date-time, nullable: When the service was created
          - `deleted_at` string, date-time, nullable: When the service was deleted
          - `startdate` string, nullable: When the service has started
          - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
          - `price` number, nullable: The price of the serviceplan when the service was activated
          - `permission` Permission
            - `read` boolean
            - `write` boolean
          - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
        - `loyaltypoints` number, nullable: The amount of desired loyalty points to be credited by this paymentmaterial.
        - `loyaltypoints_transactioned` number, nullable: The transactioned changed of loyalty points when payment is completed.
        - `addonparentmaterialid` integer, nullable: The id of the parent material. If set, this paymentmaterial is considered to be an addon
        - `date` string, nullable
        - `salesorder_fulfillment` boolean, nullable
        - `discountid` integer, nullable: The id of the discount added to the paymentmaterial
        - `returnmaterialid` number, nullable: An id referencing the paymentmaterial being returned
        - `returntagid` number, nullable: An id referencing the return tag (reason) of the paymentmaterial being returned
        - `total_vat` number, double, nullable: Total vat amount
        - `total_ex_vat` number, double, nullable: Total price excluding VAT
        - `total_incl_vat` number, double, nullable: Total price including VAT
        - `total_discount_incl_vat` number, double, nullable: Total discount including VAT for this line item (negative number; 0 when no discount)
        - `vat_type_id` integer, nullable: The id of the vat type from the product at the time it was created.
      - `recurring_payment_product_depreciation` RecurringPaymentProductDepreciation
        - `id` integer, nullable
        - `productid` integer
        - `product` Product: The representation of a product.
          - `id` integer, nullable: A unique product ID
          - `title` string: Product name
          - `productno` string: The product no. This must be unique. If serieno is set we allow multiple products to have the same product no. For new products this value must be at most 25 chars
          - `barcode` string, nullable: A unique barcode
          - `alternativebarcode` string, nullable: This will be used when searching for a barcode, if it could not find the product, it will search for alternative barcodes for the product. You can include multiple barcodes by separating it with spaces. It will not be used in print, for example price label/sign, instead "barcode" is used.
          - `serieno` string, nullable
          - `price` number, double, nullable: Price of the product. By default price includes VAT but can be changed in the store config "prices_include_vat".
          - `pricewithoutvat` number, double, nullable: Consistently give the calculcated price without VAT. Regardless of the value of store config "prices_include_vat"
          - `costprice` number, double, nullable: Cost price of the product excl. VAT
          - `recommendedretailprice` number, double, nullable: Recommended retail price of the product
          - `stockno` integer, nullable: Number of items in stock. Set to null to disable stock keeping. Change this value if you want to overwrite the stock number. This will trigger a stock transaction rest hook If you want update stock number relative, add a stock transaction and use addtostock.
          - `previousstockno` integer, nullable: Deprecated. Use stock transactions. Previous stockno value. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 0
          - `stocknochangetype` 'absolute' | 'relative', nullable: Deprecated. Use stock transactions. Type of stockno change. Only set in RestHook events; in product.updated if stockno has changed; and always in product.created with a value of 'absolute'. When relative it indicates adding or removing (e.g. selling) items from inventory. When absolute it indicates taking inventory, e.g. setting an initial value or correcting an errornous value. See also stocknochangeisrelative in SetProduct.
          - `stockmin` integer, nullable: The minimum number of items that must be in stock before the product is in the state of needs ordering
          - `stockmax` integer, nullable: Used to suggest the number of items to be ordered when the product is added to the ordering list.
          - `suppliername` string, nullable: This field is obsolete and therefore can't add a supplier using this field. If you want to add a supplier use the "suppliers" field instead
          - `suppliers` Supplier[], nullable: List of suppliers attached to the product. If you leave supplier id empty, any suppliername that does not exits will be created.
            - `id` integer, nullable: A unique id for a supplier
            - `name` string: The name of a supplier
            - `email` string, nullable: The mail of a supplier
            - `customerno` string, nullable: Customer number for the supplier
            - `address` string, nullable: Address of the supplier
            - `city` string, nullable: Which city the supplier is from
            - `zipcode` string, nullable: Zipcode of the supplier
            - `note` string, nullable
            - `handle` string, nullable: Slug for the supplier based on the name
            - `accountnumber` number, nullable: Accountnumber for the supplier, used to cross reference this supplier to a supplier in e-conomic
            - `auto_create_orderlist` boolean, nullable: If true, an orderlist will be created automatically for this supplier
            - `auto_create_orderlist_frequency` 'daily' | 'weekly' | 'monthly' | 'yearly' | 'null', nullable: The frequency of the orderlist creation
            - `auto_create_orderlist_day_of_week` integer[], nullable: The day of the week the orderlist should be created
            - `auto_create_orderlist_months` integer[], nullable: The months the orderlist should be created
            - `auto_create_orderlist_day_of_month` integer[], nullable: The day of the month the orderlist should be created
            - `auto_create_orderlist_minimum_costprice` number, nullable: The minimum costprice required to trigger the automatic creation of the order list
            - `external_supplier` string, nullable: The external supplier used for integrations, if given (e.g. "ponbike", etc)
            - `external_supplier_active` boolean, nullable: Whether the external supplier integration (e.g. "ponbike"/Gazelle) is currently authorized and active. Null when the supplier has no external_supplier.
            - `partner_store_id` integer, nullable: OBSOLETE - The store id from the available partner store
            - `verified_supplier_id` integer, nullable: Id of the verified supplier this supplier is linked to
            - `verified_supplier` VerifiedSupplierSummary
              - …
          - `color` string, nullable
          - `styleno` string, nullable
          - `size` string, nullable
          - `brand` string, nullable
          - `vat` number, double, nullable: DEPRECATED FOR WRITE. Create `VatType` with the desired rate and assign the `vat_type_id` instead. The VAT of the product in percent. Should in most cases be NULL. NULL will default the VAT value to the one specified in store config (25 % for DK customers). When `vat_type_id` is set, this field reflects the rate of the assigned VAT type.
          - `vat_type_id` integer, nullable: The id of the assigned VAT type. When set, the product uses the rate of the referenced VAT type.
          - `vat_type` VatType
            - `id` integer
            - `name` string
            - `rate` number
            - `revenue_account_no` string, nullable: Revenue account number for the revenue incl amount
            - `is_ticket_override` boolean: When true, this VAT type can be used to seed override VAT on new repair tickets.
            - `vat_account_no` string, nullable: VAT account number for the revenue vat part
          - `lastordered` string, nullable: The date for when the product was last ordered. Can only be set while create a shoppinglistorder
          - `tags` ProductTag[], nullable: List of product tags. Hint, if you leave tag id empty, any tag that does not exist will be created.
            - `title` string: The title of the tag
            - `id` integer, nullable: The ID of the tag
            - `accountno` integer, nullable: The accountno used for book keeping
            - `promotionfilter` PromotionTagFilter, nullable
              - …
            - `handle` string, nullable: Unique handle for the produttag. Will be set automatically if not set. The handle is write once, and can not be changed after the tag is created.
            - `position` number, nullable: Number used to determine order of product tags.
            - `positionafterid` number, nullable: If this is set, the position of this product tag will be between positionafterid and the tag below if it exists.
            - `positionbeforeid` number, nullable: If this is set, the position of this product tag will be between positionbeforeid and the tag above if it exists.
          - `customfield1` string, nullable: Field for custom product data
          - `customfield2` string, nullable
          - `customfield3` string, nullable
          - `customfield4` string, nullable
          - `created` string, nullable
          - `reservedstock` integer, nullable: Number of items of this product reserved on open tickets
          - `totalstock` integer, nullable: The sum of serial products in stock
          - `totalavailablestock` integer, nullable: The sum of serial products available
          - `tobeordered` integer, nullable: Number of items that needs to be ordered. Based on stockmin, stockmax and whats already on shopping list.
          - `onshoppinglist` integer, nullable: Number of items already on shopping list.
          - `ordered` integer, nullable: Number of items currently in order
          - `needsordering` integer, nullable: True if the product is in low stock and needs to be ordered. Based on stockmin, stockmax and whats already in order.
          - `discountprice` number, nullable: The discounted price of the product. The discountprice can only be changed if the field is the defined in body with PUT requests. If a promotion exists for a product, and a discountprice is set to a product, the discount chosen would be the best discount for the product, which makes the product the cheapest. If you want to include discountprice for a specific product with discountprice use "includeDiscountPrice" in query and set the value to 1.
          - `calculcatedvat` number, double, nullable: The calculated VAT for the product's price field.
          - `webshopurl` string, nullable: Permalink to a products webshop page, this is used when fetching Opengraph images.
          - `vatmode` 'normal' | 'second_hand': < `normal` vat calculation is based on `price` `second_hand` vat calulation is based on `price - costprice`
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `storeid` integer, nullable: The owner storeid
          - `image` ProductImage: A Product's image
            - `blurhash` string, nullable
            - `preview_url` string
            - `full_url` string
          - `availabletoorder` integer, nullable: True by default. Enables the shopping-cart icon for the product that makes the product available to be ordered.
          - `syncproductdatawebshop` boolean, nullable: Whether or not to sync changes to webshop.
          - `deleted_at` string, nullable: Deleted date, if product is soft deleted
        - `customerarticleid` integer, nullable: Id for the customerarticle attached to the recurring payment product
        - `customerarticle` CustomerArticle
          - `id` integer, nullable: A unique CustomerArticle ID
          - `dateadded` string, nullable: The date the customertarticle was created
          - `customerid` integer: The ID of the customer the customerarticle belongs to
          - `customer` Customer: The representation of a customer.
            - `id` integer: A unique customer ID
            - `storeid` integer: ID for the store for which the customer is associated
            - `createddate` string, nullable
            - `name` string, nullable: The name of the customer.
            - `phone` string, nullable: The phone number of the customer. Should start with country code, like +45. If not, assume +45.
            - `phone_e164` string, nullable: Phone number in E.164 format, might sometimes be the same as "phone" but this field is guaranteed to be in E.164 format
            - `country` string, nullable: The country of the phone number. Must be in format ISO 3166-1 alpha-2.
            - `email` string, nullable: The email of the customer.
            - `barcode` string, nullable: Barcode used for POS customer lookup via barcode scanning.
            - `address` string, nullable: The address of the customer.
            - `city` string, nullable: The city of the customer.
            - `zipcode` string, nullable: The zip code of the customer.
            - `addr_country` string, nullable: The country of the customers address.
            - `lat` number, double, nullable: The latitude of the customer.
            - `lng` number, double, nullable: The longitude of the customer.
            - `birthdate` string, nullable
            - `ean` string, nullable: The EAN number associated with the customer. Must be a valid EAN.
            - `vat` string, nullable: The VAT/CVR number associated with the customer.
            - `customerno` string, nullable: The customer-number associated with the customer.
            - `economic_customernumber` integer, nullable: The e-conomic number of the customer.
            - `balance` number, nullable: The customer's balance
            - `note` string, nullable: A note about the customer.
            - `draft` integer: Whether or not the customer is in draft mode
            - `deleted` integer: Whether or not the customer is deleted
            - `tags` CustomerTag[], nullable: Tags associated with the customer.
              - …
            - `permission_marketing` string, nullable: Timestamp for if when the permission has been granted. `null` if permission hasn't been granted.
            - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
            - `deleted_at` string, nullable: Timestamp for when the last time the customer is deleted.
            - `loyaltypointsbalance` number, nullable: The customers loyalty point balance
            - `loyalty_member_since` string, nullable: Datetime of when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `loyalty_member_id` number, nullable: Assigned loyalty membership ID when the customer joined the loyalty club. If null, the customer is not part of the loyalty club
            - `shopify_customer_id` number, nullable: The corresponding ShopifyCustomerId if customer is syncronized with Shopify
            - `store` object: Name of partner store that customer is registered in. requires scope 'customerlookup'
              - …
          - `title` string
          - `serieno` string, nullable
          - `color` string, nullable
          - `size` string, nullable
          - `customfield1` string, nullable
          - `customfield2` string, nullable
          - `customfield3` string, nullable
          - `customfield4` string, nullable
          - `storeid` integer: ID of the owning store
          - `servicesubscription` ServiceSubscription
            - `id` integer, nullable: A unique service id
            - `customerarticleid` integer: Which customer article that has been assigned to this subcription
            - `serviceplanid` integer, nullable: The id of the serviceplan it is attached to.
            - `serviceplan` ServicePlan
              - …
            - `draft` integer, nullable: Whether or not the subscription is in draft mode or not.
            - `updated_at` string, date-time, nullable: When the service was last updated
            - `created_at` string, date-time, nullable: When the service was created
            - `deleted_at` string, date-time, nullable: When the service was deleted
            - `startdate` string, nullable: When the service has started
            - `enddate` string, nullable: When the service is supposed to end. Set if the serviceplan has terms
            - `price` number, nullable: The price of the serviceplan when the service was activated
            - `permission` Permission
              - …
            - `active` boolean, nullable: Whether or not the subscription is active, by looking at start- and enddate compared to today
          - `hasservicenotices` boolean: Whether or not the customer article has any service notices, check servicenotices_count instead
          - `servicenotices_count` integer: Amount of service notices
          - `permission` 'none' | 'readonly' | 'full'
          - `deleted` integer, nullable: If 1 this means that the customerarticle is deleted, 0 is not deleted.
          - `updated_at` string, nullable: Timestamp for when the last time the customer is updated.
          - `last_sold_at` string, nullable: Timestamp of when the customerarticle was last sold on a payment (this does not include return payments)
        - `scrapvalue` number
        - `initialcostprice` number, nullable: The initialcostprice is set from the products costprice
        - `currentcostprice` number, nullable: The costprice slowly depreciate, this is what the costprice has been depreciated to
        - `recurringpaymentid` integer, nullable
        - `scrapdate` string, nullable: The date when the products costprice degrades to scrapvalue (it degrades every payment)
        - `created_at` string, nullable
      - `created_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable
    - `nextduedate` string, nullable: Date of when the next payment is due to.
    - `overdue` boolean, nullable: If the payment is overdue.
    - `status` 'active' | 'cancelled' | 'paidwaitingreturn' | 'completed'
    - `userid` integer, nullable
    - `user` object, nullable: User that create the recurring payment
      - `name` string
      - `id` number

## Other responses

- `4XX`: Bad request

---

[API](https://skmtc.dev/c1st/apis/customers-1st-api.md) - [All operations](https://skmtc.dev/c1st/apis/customers-1st-api/llms.txt) - [OpenAPI document](https://skmtc.dev/c1st/apis/customers-1st-api/revisions/4250bb326f2a?raw)
