> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voucherify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Voucher

> Create a generic (standalone) vouchers. You can choose to create a `GIFT_VOUCHER`, a `DISCOUNT_VOUCHER`, or a `LOYALTY_CARD`. The code path parameter can use all letters of the English alphabet, Arabic numerals and special characters.

When you create a new voucher, you can specify a type to create it.
Creating a new voucher will create a new generic (standalone) vouchers if no `campaign` name or `campaign_id` is provided. However, if an ID or name of a campaign with the `type` set to `STANDALONE` is provided, the voucher will be added to such campaign. In the case of the loyalty card, a campaign name or ID is required.

>🚧 Standalone Vouchers and Campaigns
>
>In version [v20241004](https://support.voucherify.io/article/23-whats-new-in-voucherify#v20241004), generic (standalone) vouchers created through the Voucherify dashboard create a campaign for that voucher. However, vouchers created through the API do not have a campaign attached, so the values for `campaign` and `campaign_id` are `null`.
>
>Voucherify developers work on adding an optional feature to create a generic (standalone) vouchers campaign through the API.
>
>Follow the [Voucherify Release Notes](/changelog/changelog) for more details about released features.



## OpenAPI

````yaml /openapi/vouchers.json post /v1/vouchers/{code}
openapi: 3.0.1
info:
  title: Voucherify API - Vouchers
  version: v2018-08-01
  description: >-
    Voucherify promotion engine REST API. Please see
    https://docs.voucherify.io/docs for more details.
  contact:
    name: Voucherify Team
    url: https://www.voucherify.io/contact-support
    email: support@voucherify.io
  termsOfService: https://www.voucherify.io/legal/subscription-agreement
  license:
    name: MIT
    url: https://github.com/voucherifyio/voucherify-js-sdk/blob/main/LICENSE
servers:
  - url: https://{cluster}.voucherify.io
    description: Base URL
    variables:
      cluster:
        default: api
        enum:
          - api
          - us1.api
          - as1.api
          - download
          - us1.download
          - as1.download
security: []
paths:
  /v1/vouchers/{code}:
    parameters:
      - schema:
          $ref: '#/components/schemas/ParameterCode'
        in: path
        name: code
        description: A unique **code** that identifies the voucher.
        required: true
    post:
      tags:
        - Vouchers
      summary: Create Voucher
      description: >-
        Create a generic (standalone) vouchers. You can choose to create a
        `GIFT_VOUCHER`, a `DISCOUNT_VOUCHER`, or a `LOYALTY_CARD`. The code path
        parameter can use all letters of the English alphabet, Arabic numerals
        and special characters.


        When you create a new voucher, you can specify a type to create it.

        Creating a new voucher will create a new generic (standalone) vouchers
        if no `campaign` name or `campaign_id` is provided. However, if an ID or
        name of a campaign with the `type` set to `STANDALONE` is provided, the
        voucher will be added to such campaign. In the case of the loyalty card,
        a campaign name or ID is required.


        >🚧 Standalone Vouchers and Campaigns

        >

        >In version
        [v20241004](https://support.voucherify.io/article/23-whats-new-in-voucherify#v20241004),
        generic (standalone) vouchers created through the Voucherify dashboard
        create a campaign for that voucher. However, vouchers created through
        the API do not have a campaign attached, so the values for `campaign`
        and `campaign_id` are `null`.

        >

        >Voucherify developers work on adding an optional feature to create a
        generic (standalone) vouchers campaign through the API.

        >

        >Follow the [Voucherify Release Notes](/changelog/changelog) for more
        details about released features.
      operationId: create-voucher
      parameters: []
      requestBody:
        description: Specify the details of the voucher that you would like to create.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VouchersCreateWithSpecificCodeRequestBody'
            examples:
              Percentage Discount:
                value:
                  category: New Customers
                  type: DISCOUNT_VOUCHER
                  discount:
                    percent_off: 10
                    type: PERCENT
                    effect: APPLY_TO_ORDER
                  start_date: '2022-01-01T00:00:00Z'
                  expiration_date: '2022-12-31T23:59:59Z'
                  validity_timeframe:
                    duration: PT1H
                    interval: P2D
                  validity_day_of_week:
                    - 1
                    - 2
                    - 3
                    - 4
                    - 5
                  active: false
                  additional_info: This voucher will remain inactive until enabled.
                  redemption:
                    quantity: 10
                  metadata:
                    test: true
                    locale: de-en
                  validation_rules:
                    - val_4j7DCRm2IS59
              Gift Card:
                value:
                  category: New Customers
                  type: GIFT_VOUCHER
                  gift:
                    amount: 10000
                    effect: APPLY_TO_ORDER
                  start_date: '2022-01-01T00:00:00Z'
                  active: true
                  additional_info: This gift card is enabled immediately upon creation.
                  metadata:
                    test: true
                    locale: de-en
              Loyalty Card:
                value:
                  category: New Customers
                  campaign: camp_E87CubZLZ8eoQt3c4kAEZsx0
                  type: LOYALTY_CARD
                  loyalty_card:
                    points: 10000
                  additional_info: This loyalty card is enabled immediately upon creation.
                  metadata:
                    test: true
                    locale: de-en
              Amount Discount with Formula:
                value:
                  category: First
                  type: DISCOUNT_VOUCHER
                  discount:
                    type: AMOUNT
                    amount_off: 100
                    amount_off_formula: >-
                      IF(CUSTOMER_METADATA("favorite_brands") contains
                      "Nike";20;CUSTOMER_METADATA("age"))
                    effect: APPLY_TO_ORDER
                  start_date: '2020-01-01T00:00:00Z'
                  expiration_date: '2022-12-31T23:59:59Z'
                  validity_timeframe:
                    duration: PT1H
                    interval: P2D
                  validity_day_of_week:
                    - 1
                    - 2
                    - 3
                    - 4
                    - 5
                  active: true
                  additional_info: This voucher can be used with other coupons.
                  redemption:
                    quantity: 100
                  metadata:
                    Season: Spring
              Percent Discount with Formula:
                value:
                  category: First
                  type: DISCOUNT_VOUCHER
                  discount:
                    type: PERCENT
                    percent_off: 40
                    percent_off_formula: >-
                      IF(CUSTOMER_METADATA("favorite_brands") contains
                      "Nike";20;CUSTOMER_METADATA("age"))
                    amount_limit: 1700
                    effect: APPLY_TO_ORDER
                  start_date: '2020-01-01T00:00:00Z'
                  expiration_date: '2022-12-31T23:59:59Z'
                  validity_timeframe:
                    duration: PT1H
                    interval: P2D
                  validity_day_of_week:
                    - 0
                    - 1
                  active: true
                  additional_info: This voucher can be used with other coupons.
                  redemption:
                    quantity: 101
                  metadata:
                    Season: Fall
        required: true
      responses:
        '200':
          description: Returns a voucher object if the call succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VouchersCreateResponseBody'
              examples:
                Percentage Discount:
                  value:
                    id: v_MBOEmHelKwvykVZ8JcT4TE5Kla5IMJyc
                    code: welcome
                    campaign: null
                    campaign_id: null
                    category: New Customers
                    type: DISCOUNT_VOUCHER
                    discount:
                      type: PERCENT
                      percent_off: 10
                      effect: APPLY_TO_ORDER
                    gift: null
                    loyalty_card: null
                    start_date: '2022-01-01T00:00:00.000Z'
                    expiration_date: '2022-12-31T23:59:59.000Z'
                    validity_timeframe:
                      interval: P2D
                      duration: PT1H
                    validity_day_of_week:
                      - 1
                      - 2
                      - 3
                      - 4
                      - 5
                    active: false
                    additional_info: This voucher will remain inactive until enabled.
                    metadata:
                      test: true
                      locale: de-en
                    assets:
                      qr:
                        id: >-
                          U2FsdGVkX1+by33CNzWu6xXjCrLKRr1+H9K3I9wOSa7idiHrMYJe0HlrWiy7INhaJf1BnaKJjLKcUC+4/hCbILtJ9lHXZWhewG5q5rmx29gK0IH2eRauw1qCZKIlXfqeGTG2T5ftPsEl1D4xf8W2MA==
                        url: '{{internalVoucherifyURL}}'
                      barcode:
                        id: >-
                          U2FsdGVkX19wOdFeXYXZ4Xu22L0Ummk03Urz/ZTnXUFeHeehtK4L6RTvNgVeSR+McTZR4DYNLEGydZ+Fo2xEqqM1UWyl8Bx22Pi1CxghADOcy3bAvSca7EEPpvKrCY403UWUDvaO/OEAjvVoiEuaHA==
                        url: '{{internalVoucherifyURL}}'
                    is_referral_code: false
                    created_at: '2022-02-17T09:05:34.668Z'
                    updated_at: null
                    validation_rules_assignments:
                      object: list
                      data_ref: data
                      data:
                        - id: asgm_74F7QZoYbUoljwQO
                          rule_id: val_4j7DCRm2IS59
                          related_object_id: v_MBOEmHelKwvykVZ8JcT4TE5Kla5IMJyc
                          related_object_type: voucher
                          created_at: '2022-02-17T09:05:34.642Z'
                          object: validation_rules_assignment
                      total: 1
                    redemption:
                      quantity: 10
                      redeemed_quantity: 0
                      object: list
                      url: /v1/vouchers/welcome/redemptions?page=1&limit=10
                    publish:
                      object: list
                      count: 0
                      url: /v1/vouchers/welcome/publications?page=1&limit=10
                    object: voucher
                Gift Card:
                  value:
                    id: v_7xaObxyK5LG62Rp0Xqpez7lqiBFL62pL
                    code: welcomegiftcard
                    campaign: null
                    campaign_id: null
                    category: New Customers
                    type: GIFT_VOUCHER
                    discount: null
                    gift:
                      amount: 10000
                      balance: 10000
                      effect: APPLY_TO_ORDER
                    loyalty_card: null
                    start_date: '2022-01-01T00:00:00.000Z'
                    expiration_date: null
                    validity_timeframe: null
                    validity_day_of_week: null
                    active: true
                    additional_info: This gift card is enabled immediately upon creation.
                    metadata:
                      test: true
                      locale: de-en
                    assets:
                      qr:
                        id: >-
                          U2FsdGVkX1+mTbI2MdzBdMJ7AsOPKvGGgRB7O4oHZv5qq8I3M/OBPJm4PV8bTtBgR+oXOU4Jv1ucbIV7yg1mzC86LVFKjO7Ptnj+63mS9QdHvvILEAulBuZZQ+hZ0HmFXjDl4Quz/kUqGwffKGTziQ==
                        url: '{{internalVoucherifyURL}}'
                      barcode:
                        id: >-
                          U2FsdGVkX184KgQ11OfpqB4WkJuH9ushSwZb0YrcN+8OaGPHxBQMiBr2axwnvQlZYv6YhqWtnc5iHByHrkg+6qYHxOLBPRMWCysIhcuUEB57IDhgYUHRPyM2bWjQadVHngGfVGCQ0CUy4PO/71RdMw==
                        url: '{{internalVoucherifyURL}}'
                    is_referral_code: false
                    created_at: '2022-02-17T09:09:49.665Z'
                    updated_at: null
                    redemption:
                      quantity: null
                      redeemed_quantity: 0
                      redeemed_amount: 0
                      object: list
                      url: /v1/vouchers/welcomegiftcard/redemptions?page=1&limit=10
                    publish:
                      object: list
                      count: 0
                      url: >-
                        /v1/vouchers/welcomegiftcard/publications?page=1&limit=10
                    object: voucher
                Loyalty Card:
                  value:
                    id: v_l84t3fy3keMUiOeaHbN1cbTdW8O5eUlm
                    code: welcomeloyalty
                    campaign: Loyalty Campaign
                    campaign_id: camp_E87CubZLZ8eoQt3c4kAEZsx0
                    category: New Customers
                    type: LOYALTY_CARD
                    discount: null
                    gift: null
                    loyalty_card:
                      points: 10000
                      balance: 10000
                    start_date: null
                    expiration_date: null
                    validity_timeframe: null
                    validity_day_of_week: null
                    active: true
                    additional_info: This loyalty card is enabled immediately upon creation.
                    metadata:
                      test: true
                      locale: de-en
                    assets:
                      qr:
                        id: >-
                          U2FsdGVkX186PCWooyrNsjfI+nb+Y9ziUZ1k7xe+nJQ53Ms1ynNJOX6JXC6SwxS1WDhYwAKX5FxaDoKyuPf5MkQrkeB6u5bSx333ldAyLypNnqwBD2N17S64WFnTqV7eXUk3hS30wDYcz0cQAJFDcQ==
                        url: '{{internalVoucherifyURL}}'
                      barcode:
                        id: >-
                          U2FsdGVkX1/FWUg0RbOU7R7Zqg7/8Ba6oYuXrmIl7EdXGgaPMPfpePNGRzxBu4LP2dNEUO9h1Sh37MR1PxOoaemPwlgTDo/1G8dX1JjSppNoaTHhkzk2w4yutNhP7o8cq3ZBbT3TNMTKb2H3fUMc7A==
                        url: '{{internalVoucherifyURL}}'
                    is_referral_code: false
                    created_at: '2022-02-17T09:12:01.428Z'
                    updated_at: null
                    redemption:
                      quantity: null
                      redeemed_quantity: 0
                      redeemed_points: 0
                      object: list
                      url: /v1/vouchers/welcomeloyalty/redemptions?page=1&limit=10
                    publish:
                      object: list
                      count: 0
                      url: /v1/vouchers/welcomeloyalty/publications?page=1&limit=10
                    object: voucher
                Amount Discount with Formula:
                  value:
                    id: v_pmjVYKEDFzMqwNroHTlFcI1yKLqUcVVS
                    code: amount1
                    campaign: null
                    campaign_id: null
                    category: First
                    category_id: cat_0bb343dee3cdb5ec0c
                    categories:
                      - id: cat_0bb343dee3cdb5ec0c
                        name: First
                        hierarchy: 1
                        created_at: '2022-09-16T11:47:19.568Z'
                        object: category
                    type: DISCOUNT_VOUCHER
                    discount:
                      type: AMOUNT
                      amount_off: 100
                      amount_off_formula: >-
                        IF(CUSTOMER_METADATA("favorite_brands") contains
                        "Nike";20;CUSTOMER_METADATA("age"))
                      effect: APPLY_TO_ORDER
                    gift: null
                    loyalty_card: null
                    start_date: '2020-01-01T00:00:00.000Z'
                    expiration_date: '2022-12-31T23:59:59.000Z'
                    validity_timeframe:
                      interval: P2D
                      duration: PT1H
                    validity_day_of_week:
                      - 1
                      - 2
                      - 3
                      - 4
                      - 5
                    active: true
                    additional_info: This voucher can be used with other coupons.
                    metadata:
                      Season: Spring
                    assets:
                      qr:
                        id: >-
                          U2FsdGVkX1+aMFY2yoGxlWkhulvTPR8RlMZtfOaWXnL6PCnegsV73aCTsue+JlUrQsbh+dmp2gJigaVixgvyC7/zUxQjf8tnVT4R79G4LmUkltHMqHsaf++fsP1G07nDl9/2WHh/QVb6z4KP/DX5Dw==
                        url: '{{internalVoucherifyURL}}'
                      barcode:
                        id: >-
                          U2FsdGVkX1+X2OimwSCEmGvGrZXXK+b4OrStQELVsHRup8Su+uISCOBz7xWdbpoLVJlSFepcRxSNUUdjcbpgKH7YNfaclrta8Ig6/GK/4YFlh0cPKCGOG5WWyXWzxxmVgVqRdI7KR8/hdaq2FCQeWA==
                        url: '{{internalVoucherifyURL}}'
                    is_referral_code: false
                    created_at: '2022-09-19T14:22:50.552Z'
                    updated_at: null
                    redemption:
                      quantity: 100
                      redeemed_quantity: 0
                      object: list
                      url: /v1/vouchers/amount1/redemptions?page=1&limit=10
                    publish:
                      object: list
                      count: 0
                      url: /v1/vouchers/amount1/publications?page=1&limit=10
                    object: voucher
                Percent Discount with Formula:
                  value:
                    id: v_9PbXndxO3S8xfztwMtIvuMXReonF248m
                    code: percent1
                    campaign: null
                    campaign_id: null
                    category: First
                    category_id: cat_0bb343dee3cdb5ec0c
                    categories:
                      - id: cat_0bb343dee3cdb5ec0c
                        name: First
                        hierarchy: 1
                        created_at: '2022-09-16T11:47:19.568Z'
                        object: category
                    type: DISCOUNT_VOUCHER
                    discount:
                      type: PERCENT
                      amount_limit: 1700
                      percent_off: 40
                      percent_off_formula: >-
                        IF(CUSTOMER_METADATA("favorite_brands") contains
                        "Nike";20;CUSTOMER_METADATA("age"))
                      effect: APPLY_TO_ORDER
                    gift: null
                    loyalty_card: null
                    start_date: '2020-01-01T00:00:00.000Z'
                    expiration_date: '2022-12-31T23:59:59.000Z'
                    validity_timeframe:
                      interval: P2D
                      duration: PT1H
                    validity_day_of_week:
                      - 0
                      - 1
                    active: true
                    additional_info: This voucher can be used with other coupons.
                    metadata:
                      Season: Fall
                    assets:
                      qr:
                        id: >-
                          U2FsdGVkX19MPtNCPjoG/pKloolK+BZH/OCIpjYqj+B6IVJJmTYKeBINcB0JioL/tSw3iuK4FvgF8VyDyTfL26IpzbT81DDOnKeFIDUJraQDJiKxWcrG/RCFsVky4olBJ+GZFb9pLpN5gC/rn0pqYw==
                        url: '{{internalVoucherifyURL}}'
                      barcode:
                        id: >-
                          U2FsdGVkX1/J73XXWgMf2BsVM21kpnFLQak5dpGzThYNTYPT62U6q+5RDlh/CXylkTrhegRnWJw1HA7iehT8iUoV4M4cV0KBdp5WgJ3lXeFZcpX3Mpu0T02PRcYbdCIiSO1kO50Y8Hg/heHcshw22Q==
                        url: '{{internalVoucherifyURL}}'
                    is_referral_code: false
                    created_at: '2022-09-19T14:41:30.976Z'
                    updated_at: null
                    redemption:
                      quantity: 101
                      redeemed_quantity: 0
                      object: list
                      url: /v1/vouchers/percent1/redemptions?page=1&limit=10
                    publish:
                      object: list
                      count: 0
                      url: /v1/vouchers/percent1/publications?page=1&limit=10
                    object: voucher
        '409':
          description: Returns an error if a voucher code already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Duplicate Code:
                  value:
                    code: 409
                    key: duplicate_found
                    message: Duplicated resource found
                    details: Duplicated voucher exists with id CODE
                    request_id: v-0ae786a8f786b73dfa
                    resource_id: CODE
                    resource_type: voucher
      security:
        - X-App-Id: []
          X-App-Token: []
        - X-Voucherify-OAuth:
            - api
            - vouchers
components:
  schemas:
    ParameterCode:
      type: string
      example: 2CpRCE2c
    VouchersCreateWithSpecificCodeRequestBody:
      title: Vouchers Create With Specific Code Request Body
      type: object
      description: Request body schema for **POST** `v1/vouchers/{code}`.
      oneOf:
        - $ref: '#/components/schemas/VoucherCreateLoyaltyCard'
        - $ref: '#/components/schemas/VoucherCreateGift'
        - $ref: '#/components/schemas/VoucherCreateDiscount'
    VouchersCreateResponseBody:
      type: object
      title: Vouchers Create Response Body
      description: Response body schema for **POST** `v1/vouchers` and `/vouchers/{code}`
      allOf:
        - $ref: '#/components/schemas/Voucher'
    Error:
      title: Error Object
      type: object
      description: Error details
      properties:
        code:
          type: integer
          description: Error's HTTP status code.
        key:
          type: string
          description: Short string describing the kind of error which occurred.
        message:
          type: string
          description: A human-readable message providing a short description of the error.
        details:
          type: string
          description: A human-readable message providing more details about the error.
        request_id:
          type: string
          example: v-0a885062c80375740f
          description: >-
            This ID is useful when troubleshooting and/or finding the root cause
            of an error response by our support team.
        resource_id:
          type: string
          description: >-
            Unique resource ID that can be used in another endpoint to get more
            details.
          example: rf_0c5d710a87c8a31f86
        resource_type:
          type: string
          description: The resource type.
          example: voucher
        error:
          type: object
          description: Includes additional information about the error.
          properties:
            message:
              type: string
              description: The message configured by the user in a validation rule.
      required:
        - code
        - message
    VoucherCreateLoyaltyCard:
      title: Create loyalty card
      type: object
      allOf:
        - $ref: '#/components/schemas/VoucherCreateBase'
        - type: object
          properties:
            type:
              type: string
              enum:
                - LOYALTY_CARD
              description: 'Defines the type of the voucher. '
            loyalty_card:
              $ref: '#/components/schemas/SimpleLoyaltyCard'
          required:
            - type
            - loyalty_card
    VoucherCreateGift:
      title: Create gift card
      type: object
      allOf:
        - $ref: '#/components/schemas/VoucherCreateBase'
        - type: object
          properties:
            type:
              type: string
              enum:
                - GIFT_VOUCHER
              description: 'Defines the type of the voucher. '
            gift:
              $ref: '#/components/schemas/Gift'
          required:
            - type
            - gift
    VoucherCreateDiscount:
      title: Create voucher in a discount campaign
      type: object
      allOf:
        - $ref: '#/components/schemas/VoucherCreateBase'
        - type: object
          properties:
            type:
              type: string
              enum:
                - DISCOUNT_VOUCHER
              description: 'Defines the type of the voucher. '
            discount:
              $ref: '#/components/schemas/Discount'
          required:
            - type
            - discount
    Voucher:
      title: Voucher
      description: >-
        This is an object representing a voucher with categories and validation
        rules assignments.
      allOf:
        - $ref: '#/components/schemas/VoucherBase'
        - type: object
          properties:
            categories:
              type: array
              description: Contains details about the category.
              items:
                $ref: '#/components/schemas/Category'
            validation_rules_assignments:
              $ref: '#/components/schemas/ValidationRulesAssignmentsList'
    VoucherCreateBase:
      title: Voucher Create Base
      type: object
      properties:
        campaign:
          type: string
          example: Gift Card Campaign
          description: >-
            Identifies the voucher's parent campaign using a unique campaign
            name.
        campaign_id:
          type: string
          example: camp_FNYR4jhqZBM9xTptxDGgeNBV
          description: >-
            Identifies the voucher's parent campaign using a unique campaign ID
            assigned by the Voucherify API.
        category:
          type: string
          description: >-
            The name of the category that this voucher belongs to. Useful when
            listing vouchers with the [List
            Vouchers](/api-reference/vouchers/list-vouchers) endpoint.
        category_id:
          type: string
          description: >-
            Unique identifier assigned by Voucherify to the name of the category
            that this voucher belongs to. Useful when listing vouchers with the
            [List Vouchers](/api-reference/vouchers/list-vouchers) endpoint.
          example: cat_0b6152ce12414820dc
        start_date:
          type: string
          example: '2021-12-01T00:00:00.000Z'
          format: date-time
          description: >-
            Start date defines when the code starts to be active. Activation
            timestamp is presented in the ISO 8601 format. Voucher is *inactive
            before* this date.
        expiration_date:
          type: string
          example: '2021-12-31T00:00:00.000Z'
          format: date-time
          description: >-
            Expiration date defines when the code expires. Expiration timestamp
            is presented in the ISO 8601 format.  Voucher is *inactive after*
            this date.
        validity_timeframe:
          $ref: '#/components/schemas/ValidityTimeframe'
        validity_day_of_week:
          $ref: '#/components/schemas/ValidityDayOfWeek'
        validity_hours:
          $ref: '#/components/schemas/ValidityHours'
        active:
          type: boolean
          description: >-
            A flag to toggle the voucher on or off. You can disable a voucher
            even though it's within the active period defined by the
            `start_date` and `expiration_date`.  


            - `true` indicates an *active* voucher

            - `false` indicates an *inactive* voucher
        additional_info:
          type: string
          description: >-
            An optional field to keep any extra textual information about the
            code such as a code description and details.
        metadata:
          type: object
          description: >-
            The metadata object stores all custom attributes assigned to the
            code. A set of key/value pairs that you can attach to a voucher
            object. It can be useful for storing additional information about
            the voucher in a structured format.
        validation_rules:
          type: array
          description: >-
            Array containing the ID of the validation rule associated with the
            voucher.
          items:
            type: string
            example: '[val_4j7DCRm2IS59]'
        redemption:
          type: object
          description: >-
            Stores the quantity of redemptions that can be applied to the
            voucher.
          properties:
            quantity:
              type: integer
              description: >-
                How many times a voucher can be redeemed. A `null` value means
                unlimited.
    SimpleLoyaltyCard:
      title: Simple Loyalty Card
      type: object
      description: Simplified loyalty card data.
      required:
        - points
      properties:
        points:
          type: integer
          description: Total number of points added to the loyalty card over its lifespan.
        balance:
          type: integer
          description: >-
            Points available for reward redemption. This is calculated as
            follows: `balance` = `points` - `expired_points` -
            `subtracted_points` - `redemption.redeemed_points`.
        next_expiration_date:
          type: string
          description: The next closest date when the next set of points are due to expire.
        next_expiration_points:
          type: integer
          description: The amount of points that are set to expire next.
        pending_points:
          type: integer
          description: >-
            Shows the number of pending points that will be added to the loyalty
            card when they are activated automatically or manually.
        expired_points:
          type: integer
          description: >-
            Shows the total number of expired points over the lifetime of the
            loyalty card.
        subtracted_points:
          type: integer
          description: >-
            Shows the total number of subtracted points over the lifetime of the
            loyalty card.
    Gift:
      title: Gift
      type: object
      description: Contains current gift card balance information.
      properties:
        amount:
          type: number
          description: >-
            Total gift card income over the lifetime of the card. The value is
            multiplied by 100 to represent 2 decimal places. For example `10000
            cents` for `$100.00`.
        subtracted_amount:
          type: integer
          description: Total amount of subtracted credits over the gift card lifetime.
        balance:
          type: number
          description: >-
            Available funds. The value is multiplied by 100 to represent 2
            decimal places. For example `10000 cents` for `$100.00`. `balance` =
            `amount` - `subtracted_amount` - `redemption.redeemed_amount`.
        effect:
          type: string
          enum:
            - APPLY_TO_ORDER
            - APPLY_TO_ITEMS
          description: Defines how the credits are applied to the customer's order.
      required:
        - amount
        - balance
    Discount:
      title: Discount
      type: object
      description: Contains information about discount.
      oneOf:
        - $ref: '#/components/schemas/DiscountAmount'
        - $ref: '#/components/schemas/DiscountUnit'
        - $ref: '#/components/schemas/DiscountUnitMultiple'
        - $ref: '#/components/schemas/DiscountPercent'
        - $ref: '#/components/schemas/DiscountFixed'
    VoucherBase:
      title: Voucher Base
      description: This is an object representing a voucher.
      type: object
      properties:
        id:
          type: string
          example: v_mkZN9v7vjYUadXnHrMza8W5c34fE5KiV
          description: Assigned by the Voucherify API, identifies the voucher.
        code:
          type: string
          example: WVPblOYX
          description: >-
            A code that identifies a voucher. Pattern can use all letters of the
            English alphabet, Arabic numerals, and special characters.
        campaign:
          type: string
          example: Gift Card Campaign
          description: A unique campaign name, identifies the voucher's parent campaign.
        campaign_id:
          type: string
          example: camp_FNYR4jhqZBM9xTptxDGgeNBV
          description: >-
            Assigned by the Voucherify API, identifies the voucher's parent
            campaign.
        category:
          type: string
          description: >-
            Tag defining the category that this voucher belongs to. Useful when
            listing vouchers using the List Vouchers endpoint.
        category_id:
          type: string
          description: Unique category ID assigned by Voucherify.
          example: cat_0bb343dee3cdb5ec0c
        type:
          type: string
          enum:
            - GIFT_VOUCHER
            - DISCOUNT_VOUCHER
            - LOYALTY_CARD
          description: 'Defines the type of the voucher. '
        discount:
          $ref: '#/components/schemas/Discount'
        gift:
          type: object
          description: >-
            Object representing gift parameters. Child attributes are present
            only if `type` is `GIFT_VOUCHER`. Defaults to `null`.
          properties:
            amount:
              type: integer
              example: 10000
              description: >-
                Total gift card income over the lifetime of the card. The value
                is multiplied by 100 to represent 2 decimal places. For example
                `10000 cents` for `$100.00`.
            subtracted_amount:
              type: integer
              description: >-
                Total amount of subtracted credits over the gift card lifetime.
                The value is multiplied by 100 to represent 2 decimal places.
                For example `10000 cents` for `$100.00`.
            balance:
              type: integer
              example: 500
              description: >-
                Available funds. The value is multiplied by 100 to represent 2
                decimal places. For example `10000 cents` for `$100.00`.
            effect:
              type: string
              enum:
                - APPLY_TO_ORDER
                - APPLY_TO_ITEMS
              description: Defines how the credits are applied to the customer's order.
        loyalty_card:
          type: object
          description: >-
            Object representing loyalty card parameters. Child attributes are
            present only if `type` is `LOYALTY_CARD`. Defaults to `null`.
          properties:
            points:
              type: integer
              example: 7000
              description: >-
                Total number of points added to the loyalty card over its
                lifespan.
            balance:
              type: integer
              example: 6970
              description: >-
                Points available for reward redemption. This is calculated as
                follows: `balance` = `points` - `expired_points` -
                `subtracted_points` - `redemption.redeemed_points`.
            next_expiration_date:
              type: string
              format: date
              example: '2023-05-30'
              description: >-
                The next closest date when the next set of points are due to
                expire.
            next_expiration_points:
              type: integer
              description: The amount of points that are set to expire next.
            pending_points:
              type: integer
              description: >-
                Shows the number of pending points that will be added to the
                loyalty card when they are activated automatically or manually.
            expired_points:
              type: integer
              description: >-
                Shows the total number of expired points over the lifetime of
                the loyalty card.
            subtracted_points:
              type: integer
              description: >-
                Shows the total number of subtracted points over the lifetime of
                the loyalty card.
        start_date:
          type: string
          example: '2021-12-01T00:00:00.000Z'
          format: date-time
          description: >-
            Activation timestamp defines when the code starts to be active in
            ISO 8601 format. Voucher is *inactive before* this date. 
        expiration_date:
          type: string
          example: '2021-12-31T00:00:00.000Z'
          format: date-time
          description: >-
            Expiration timestamp defines when the code expires in ISO 8601
            format.  Voucher is *inactive after* this date.
        validity_timeframe:
          $ref: '#/components/schemas/ValidityTimeframe'
        validity_day_of_week:
          $ref: '#/components/schemas/ValidityDayOfWeek'
        validity_hours:
          $ref: '#/components/schemas/ValidityHours'
        active:
          type: boolean
          nullable: true
          description: >-
            A flag to toggle the voucher on or off. You can disable a voucher
            even though it's within the active period defined by the
            `start_date` and `expiration_date`.  


            - `true` indicates an *active* voucher

            - `false` indicates an *inactive* voucher
        additional_info:
          type: string
          description: >-
            An optional field to keep any extra textual information about the
            code such as a code description and details.
        metadata:
          type: object
          description: >-
            The metadata object stores all custom attributes assigned to the
            code. A set of key/value pairs that you can attach to a voucher
            object. It can be useful for storing additional information about
            the voucher in a structured format.
        assets:
          $ref: '#/components/schemas/VoucherAssets'
        is_referral_code:
          type: boolean
          nullable: true
          description: >-
            Flag indicating whether this voucher is a referral code; `true` for
            campaign type `REFERRAL_PROGRAM`.
        created_at:
          type: string
          example: '2021-12-22T10:13:06.487Z'
          description: >-
            Timestamp representing the date and time when the voucher was
            created. The value is shown in the ISO 8601 format.
          format: date-time
        updated_at:
          type: string
          example: '2021-12-22T10:14:45.316Z'
          format: date-time
          description: >-
            Timestamp representing the date and time when the voucher was last
            updated in ISO 8601 format.
        holder_id:
          type: string
          example: cust_eWgXlBBiY6THFRJwX45Iakv4
          description: >-
            Unique customer identifier of the redeemable holder. It equals to
            the customer ID assigned by Voucherify.
        referrer_id:
          type: string
          description: Unique identifier of the referring person.
          example: cust_Vzck5i8U3OhcEUFY6MKhN9Rv
        object:
          type: string
          description: The type of the object represented by JSON. Default is `voucher`.
          default: voucher
        publish:
          type: object
          description: >-
            Stores a summary of publication events: an event counter and
            endpoint to return details of each event. Publication is an
            assignment of a code to a customer, e.g. through a distribution.
          properties:
            object:
              type: string
              default: list
              description: >-
                The type of the object represented is by default `list`. To get
                this list, you need to make a call to the endpoint returned in
                the `url` attribute.
            count:
              type: integer
              example: 0
              description: Publication events counter.
            url:
              type: string
              example: /v1/vouchers/WVPblOYX/publications?page=1&limit=10
              description: >-
                The endpoint where this list of publications can be accessed
                using a **GET** method.
                `/v1/vouchers/{voucher_code}/publications`
        redemption:
          type: object
          description: >-
            Stores a summary of redemptions that have been applied to the
            voucher.
          properties:
            quantity:
              type: integer
              description: >-
                How many times a voucher can be redeemed. A `null` value means
                unlimited.
            redeemed_quantity:
              type: integer
              example: 1
              description: How many times a voucher has already been redeemed.
            redeemed_points:
              type: integer
              example: 100000
              description: Total loyalty points redeemed.
            object:
              type: string
              default: list
              description: >-
                The type of the object represented is by default `list`. To get
                this list, you need to make a call to the endpoint returned in
                the url attribute.
            url:
              type: string
              example: /v1/vouchers/WVPblOYX/redemptions?page=1&limit=10
              description: >-
                The endpoint where this list of redemptions can be accessed
                using a **GET** method.
                `/v1/vouchers/{voucher_code}/redemptions`
    Category:
      title: Category
      description: This is an object representing a category.
      type: object
      properties:
        id:
          type: string
          description: Unique category ID assigned by Voucherify.
        name:
          type: string
          description: Category name.
        hierarchy:
          type: integer
          description: >-
            Category hierarchy. Categories with lower hierarchy are processed
            before categories with higher hierarchy value.
          minimum: 0
        object:
          type: string
          default: category
          enum:
            - category
          description: >-
            The type of the object represented by the JSON. This object stores
            information about the category.
        created_at:
          type: string
          description: >-
            Timestamp representing the date and time when the category was
            created. The value is shown in the ISO 8601 format.
          example: '2022-07-14T10:45:13.156Z'
          format: date-time
        updated_at:
          type: string
          example: '2022-08-16T10:52:08.094Z'
          description: >-
            Timestamp representing the date and time when the category was
            updated. The value is shown in the ISO 8601 format.
          format: date-time
      required:
        - id
        - name
        - hierarchy
        - created_at
        - object
    ValidationRulesAssignmentsList:
      title: Validation Rules Assignments List
      description: List of Validation Rules Assignments
      type: object
      properties:
        object:
          type: string
          default: list
          enum:
            - list
          description: >-
            The type of the object represented by JSON. This object stores
            information about validation rules assignments.
        data_ref:
          type: string
          default: data
          enum:
            - data
          description: >-
            Identifies the name of the attribute that contains the array of
            validation rules assignments.
        data:
          type: array
          description: Contains array of validation rules assignments.
          items:
            $ref: '#/components/schemas/BusValRuleAssignment'
        total:
          type: integer
          minimum: 0
          description: Total number of validation rules assignments.
      required:
        - object
        - data_ref
        - data
        - total
    ValidityTimeframe:
      title: Validity Timeframe
      type: object
      description: >-
        Set recurrent time periods when the earning rule is valid. For example,
        valid for 1 hour every other day.`start_date` **required** when
        including the `validity_timeframe`.
      properties:
        duration:
          type: string
          description: >-
            Defines the amount of time an earning rule will be active in ISO
            8601 format. For example, an earning rule with a `duration` of
            `PT1H` will be valid for a duration of one hour.
          example: PT1H
        interval:
          type: string
          description: >-
            Defines the intervening time between two time points in ISO 8601
            format, expressed as a duration. For example, an earning rule with
            an `interval` of `P2D` will be valid every other day.
          example: P2D
    ValidityDayOfWeek:
      title: Validity Day Of Week
      type: array
      description: >-
        Integer array corresponding to the particular days of the week in which
        the voucher is valid.


        - `0` Sunday

        - `1` Monday

        - `2` Tuesday

        - `3` Wednesday

        - `4` Thursday

        - `5` Friday

        - `6` Saturday
      items:
        type: integer
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
    ValidityHours:
      title: Validity Hours
      type: object
      description: Determines the hours of validity, e.g. to create a happy hours scenario.
      properties:
        daily:
          type: array
          description: >-
            Defines the recurring period(s) when the resource is active. The
            periods should not overlap.
          items:
            type: object
            description: Defines the recurring period(s) when the resource will be active.
            properties:
              start_time:
                type: string
                format: time
                description: >-
                  Defines the starting hour of validity in the HH:mm format. The
                  resource is *inactive before* this time.
                example: '12:00'
              days_of_week:
                type: array
                description: >-
                  Integer array corresponding to the particular days of the week
                  in which the resource is valid.


                  - `0` Sunday

                  - `1` Monday

                  - `2` Tuesday

                  - `3`  Wednesday

                  - `4` Thursday

                  - `5` Friday

                  - `6` Saturday
                items:
                  type: integer
                  enum:
                    - 0
                    - 1
                    - 2
                    - 3
                    - 4
                    - 5
                    - 6
              expiration_time:
                type: string
                format: time
                description: >-
                  Defines the ending hour of validity in the HH:mm format. The
                  resource is *inactive after* this time.
                example: '14:00'
    DiscountAmount:
      type: object
      title: Amount
      properties:
        type:
          type: string
          default: AMOUNT
          enum:
            - AMOUNT
          description: Defines the type of the voucher.
        amount_off:
          type: number
          description: >-
            Amount taken off the subtotal of a price. Value is multiplied by 100
            to precisely represent 2 decimal places. For example, a $10 discount
            is written as 1000.
        amount_off_formula:
          type: string
          description: Formula used to dynamically calculate the discount.
        aggregated_amount_limit:
          type: integer
          description: Maximum discount amount per order.
        effect:
          description: Defines how the discount is applied to the customer's order.
          allOf:
            - $ref: '#/components/schemas/DiscountAmountVouchersEffectTypes'
        is_dynamic:
          type: boolean
          description: Flag indicating whether the discount was calculated using a formula.
      required:
        - type
        - amount_off
    DiscountUnit:
      type: object
      title: Unit
      properties:
        type:
          type: string
          default: UNIT
          enum:
            - UNIT
          description: Discount type.
        unit_off:
          type: integer
          description: Number of units to be granted a full value discount.
        unit_off_formula:
          type: string
          description: Formula used to dynamically calculate the number of units.
        effect:
          description: Defines how the unit is added to the customer's order.
          allOf:
            - $ref: '#/components/schemas/DiscountUnitVouchersEffectTypes'
        unit_type:
          type: string
          description: >-
            The product deemed as free, chosen from product inventory (e.g.
            time, items).
        product:
          description: Contains information about the product.
          allOf:
            - $ref: '#/components/schemas/SimpleProductDiscountUnit'
        sku:
          $ref: '#/components/schemas/SimpleSkuDiscountUnit'
        is_dynamic:
          type: boolean
          description: Flag indicating whether the discount was calculated using a formula.
      required:
        - type
        - unit_type
    DiscountUnitMultiple:
      type: object
      title: Unit Multiple
      properties:
        type:
          type: string
          default: UNIT
          enum:
            - UNIT
          description: Discount type.
        effect:
          type: string
          default: ADD_MANY_ITEMS
          enum:
            - ADD_MANY_ITEMS
          description: Defines how the discount is applied to the customer's order.
        units:
          type: array
          items:
            $ref: '#/components/schemas/DiscountUnitMultipleOneUnit'
      required:
        - type
        - units
    DiscountPercent:
      type: object
      title: Percent
      properties:
        type:
          type: string
          default: PERCENT
          enum:
            - PERCENT
          description: Defines the type of the voucher.
        percent_off:
          type: number
          description: The percent discount that the customer will receive.
        percent_off_formula:
          type: string
          description: Formula used to dynamically calculate the discount.
        amount_limit:
          type: number
          description: >-
            Upper limit allowed to be applied as a discount. Value is multiplied
            by 100 to precisely represent 2 decimal places. For example, a $6
            maximum discount is written as 600.
        aggregated_amount_limit:
          type: integer
          description: Maximum discount amount per order.
        effect:
          description: Defines how the discount is applied to the customer's order.
          allOf:
            - $ref: '#/components/schemas/DiscountPercentVouchersEffectTypes'
        is_dynamic:
          type: boolean
          description: Flag indicating whether the discount was calculated using a formula.
      required:
        - type
        - percent_off
    DiscountFixed:
      title: Fixed
      type: object
      properties:
        type:
          type: string
          default: FIXED
          enum:
            - FIXED
          description: Defines the type of the voucher.
        fixed_amount:
          type: number
          description: >-
            Sets a fixed value for an order total or the item price. The value
            is multiplied by 100 to precisely represent 2 decimal places. For
            example, a $10 discount is written as 1000. If the fixed amount is
            calculated by the formula, i.e. the `fixed_amount_formula` parameter
            is present in the fixed amount definition, this value becomes the
            **fallback value**. As a result, if the formula cannot be calculated
            due to missing metadata, for example, this value will be used as the
            fixed value.
        fixed_amount_formula:
          type: string
          description: Formula used to dynamically calculate the discount.
        effect:
          description: Defines how the discount is applied to the customer's order.
          allOf:
            - $ref: '#/components/schemas/DiscountFixedVouchersEffectTypes'
        is_dynamic:
          type: boolean
          description: Flag indicating whether the discount was calculated using a formula.
      required:
        - type
        - fixed_amount
    VoucherAssets:
      title: Voucher Assets
      type: object
      description: >-
        Stores links to images of QR and barcode that correspond to an encrypted
        voucher code.
      properties:
        qr:
          type: object
          description: Stores Quick Response (QR) representation of encrypted code.
          properties:
            id:
              type: string
              example: >-
                U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK+t4pp7U7oFzjGJzj9q/bmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg+BaZk5QwXMf8k/OzSlOEVybpwSq+AiqPoNtjeuqtIgkDyvT6Q==
              description: Encrypted voucher code ID.
            url:
              type: string
              example: >-
                https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK%2Bt4pp7U7oFzjGJzj9q%2FbmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg%2BBaZk5QwXMf8k%2FOzSlOEVybpwSq%2BAiqPoNtjeuqtIgkDyvT6Q%3D%3D
              description: >-
                URL to QR code  


                *Optional:* Attach query parameters to base URL to customize the
                image of the encrypted voucher code.  


                - `size`: integer value from `1` to `100`  

                - `format`: string, either `png` (default) or `svg`
        barcode:
          type: object
          description: Stores barcode representation of encrypted code.
          properties:
            id:
              type: string
              example: >-
                U2FsdGVkX19eJhGfWwUrH9+tulBkON+AnMktic+N6CVWzZ9+fHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ+kJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6/pFs61apEn9SJx32ttCF6d3oxKISQQ==
              description: Encrypted voucher code ID.
            url:
              type: string
              example: >-
                https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19eJhGfWwUrH9%2BtulBkON%2BAnMktic%2BN6CVWzZ9%2BfHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ%2BkJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6%2FpFs61apEn9SJx32ttCF6d3oxKISQQ%3D%3D
              description: >-
                URL to barcode  


                *Optional:* Attach query parameters to base URL to customize the
                image of the encrypted voucher code.  


                - `size`: integer value from `1` to `100`  

                - `format`: string, either `png` (default) or `svg`
    BusValRuleAssignment:
      title: Business Validation Rule Assignment
      description: Assignments of business validation rule
      example:
        id: asgm_LnY1g7UNFA9KyDrD
        rule_id: val_3gPNA6SnH4ae
        related_object_id: camp_CZOnEGiZfwIKWmSjhIoIT7Ol
        related_object_type: campaign
        object: validation_rules_assignment
        validation_status: PARTIALLY_VALID
        validation_omitted_rules:
          - '1'
      properties:
        id:
          type: string
          description: The unique identifier for a assignment
        rule_id:
          type: string
          description: The unique identifier for a rule
        related_object_id:
          type: string
          description: The unique identifier for a related object
        related_object_type:
          type: string
          description: The type of related object
        created_at:
          type: string
          description: >-
            Timestamp representing the date and time when the object was
            created. The value is shown in the ISO 8601 format.
          example: '2022-03-09T11:19:04.819Z'
          format: date-time
        updated_at:
          type: string
          description: >-
            Timestamp representing the date and time when the object was last
            updated in ISO 8601 format.
          example: '2022-03-09T11:19:04.819Z'
          format: date-time
        object:
          type: string
          description: The type of the object represented by JSON.
          default: validation_rules_assignment
          enum:
            - validation_rules_assignment
        validation_status:
          type: string
          description: The validation status of the assignment
          enum:
            - VALID
            - PARTIALLY_VALID
            - INVALID
        validation_omitted_rules:
          type: array
          description: The list of omitted rules
          items:
            type: string
      required:
        - id
        - rule_id
        - related_object_id
        - related_object_type
        - object
    DiscountAmountVouchersEffectTypes:
      title: Discount Amount Vouchers Effect Types
      enum:
        - APPLY_TO_ORDER
        - APPLY_TO_ITEMS
        - APPLY_TO_ITEMS_PROPORTIONALLY
        - APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY
        - APPLY_TO_ITEMS_BY_QUANTITY
      type: string
    DiscountUnitVouchersEffectTypes:
      title: Discount Unit Vouchers Effect Types
      enum:
        - ADD_MISSING_ITEMS
        - ADD_NEW_ITEMS
        - ADD_MANY_ITEMS
        - ADD_SAME_ITEMS
      type: string
    SimpleProductDiscountUnit:
      type: object
      title: Simple Product Discount Unit
      properties:
        id:
          type: string
          description: Unique product ID, assigned by Voucherify.
        source_id:
          type: string
          description: Product's source ID.
        name:
          type: string
          description: Product name.
      required:
        - id
        - name
    SimpleSkuDiscountUnit:
      type: object
      title: Simple Sku Discount Unit
      properties:
        id:
          type: string
          description: Unique SKU ID, assigned by Voucherify.
        source_id:
          type: string
          description: Product variant's source ID.
        name:
          type: string
          description: Sku name
      required:
        - id
        - name
    DiscountUnitMultipleOneUnit:
      type: object
      title: One Unit
      properties:
        unit_off:
          type: number
          description: Number of units to be granted a full value discount.
        unit_off_formula:
          type: string
          description: Formula used to dynamically calculate the number of units.
        effect:
          type: string
          enum:
            - ADD_NEW_ITEMS
            - ADD_MISSING_ITEMS
          description: |+
            Defines how the unit is added to the customer's order.

        unit_type:
          type: string
          description: >-
            The product deemed as free, chosen from product inventory (e.g.
            time, items).
        product:
          description: Contains information about the product.
          allOf:
            - $ref: '#/components/schemas/SimpleProductDiscountUnit'
        sku:
          description: Contains information about the sku.
          allOf:
            - $ref: '#/components/schemas/SimpleSkuDiscountUnit'
      required:
        - effect
        - unit_type
    DiscountPercentVouchersEffectTypes:
      title: Discount Percent Vouchers Effect Types
      enum:
        - APPLY_TO_ORDER
        - APPLY_TO_ITEMS
      type: string
    DiscountFixedVouchersEffectTypes:
      title: Discount Fixed Vouchers Effect Types
      enum:
        - APPLY_TO_ORDER
        - APPLY_TO_ITEMS
      type: string
  securitySchemes:
    X-App-Id:
      type: apiKey
      name: X-App-Id
      in: header
    X-App-Token:
      type: apiKey
      name: X-App-Token
      in: header
    X-Voucherify-OAuth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://api.voucherify.io/v1/oauth/token
          scopes:
            api: Gives access to whole server-side API.
            vouchers: >-
              Gives access to all endpoints and methods starting with
              `v1/vouchers`.
            client_api: Gives access to whole client-side API.
            client_vouchers: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/vouchers`.
            promotions: >-
              Gives access to all endpoints and methods starting with
              `/v1/promotions`.
            client_promotions: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/promotions`
            campaigns: >-
              Gives access to all endpoints and methods starting with
              `v1/campaigns`.
            client_publish: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/publish`.
            exports: >-
              Gives access to all endpoints and methods starting with
              `/v1/exports`.
            publications: >-
              Gives access to all endpoints and methods starting with
              `/v1/publications`.
            client_validate: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/validate`.
            validations: >-
              Gives access to all endpoints and methods starting with
              `/v1/validations`.
            client_validations: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/validations`.
            qualifications: >-
              Gives access to all endpoints and methods starting with
              `/v1/qualifications`.
            client_qualifications: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/qualifications`.
            client_redeem: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/redeem
            redemptions: >-
              Gives access to all endpoints and methods starting with
              `/v1/redemptions`.
            client_redemptions: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/redemptions`
            customers: >-
              Gives access to all endpoints and methods starting with
              `/v1/customers`.
            client_customers: >-
              Gives access to all endpoints and methods starting with
              `/client/v1/customers`.
            orders: >-
              Gives access to all endpoints and methods starting with
              `/v1/orders`.
            products: >-
              Gives access to all endpoints and methods starting with
              `/v1/products`.
            skus: >-
              Gives access to all endpoints and methods starting with
              `/v1/SKUs`.
            validation-rules: >-
              Gives access to all endpoints and methods starting with
              `/v1/validation-rules`.
            validation-rules-assignments: >-
              Gives access to all endpoints and methods starting with
              `/v1/validation-rules-assignments
            segments: >-
              Gives access to all endpoints and methods starting with
              `/v1/segments`.
            events: >-
              Gives access to all endpoints and methods starting with
              `/v1/events`.
            client_events: >-
              Gives access to all endpoints and methods starting with
              `client/v1/events`.
            rewards: >-
              Gives access to all endpoints and methods starting with
              `/v1/rewards`.
            assets: >-
              Gives access to all endpoints and methods starting with
              `/v1/assets`.
            task-results: >-
              Gives access to all endpoints and methods starting with
              `/v1/task-results`.
            loyalties: >-
              Gives access to all endpoints and methods starting with
              `/v1/loyalties`.
            client_consents: >-
              Gives access to all endpoints and methods starting with
              `client/v1/consents`.
            consents: >-
              Gives access to all endpoints and methods starting with
              `/v1/consents`.
            async-actions: >-
              Gives access to all endpoints and methods starting with
              `/v1/async-actions`.
            product-collections: >-
              Gives access to all endpoints and methods starting with
              `/v1/product-collections`.
            categories: >-
              Gives access to all endpoints and methods starting with
              `/v1/categories`.
            metadata-schemas: >-
              Gives access to all endpoints and methods starting with
              `/v1/metadata-schemas`.
            locations: >-
              Gives access to all endpoints and methods starting with
              `/v1/locations`.
            referrals: >-
              Gives access to all endpoints and methods starting with
              `/v1/referrals`.
            trash-bin: >-
              Gives access to all endpoints and methods starting with
              `/v1/trash-bin`.
            templates: >-
              Gives access to all endpoints and methods starting with
              `/v1/templates`.

````