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

# Create a new product

> Create a new banking product with the provided details



## OpenAPI

````yaml /openapi/platform.yaml post /products
openapi: 3.0.1
info:
  title: DH Console API
  description: Data Provider SaaS platform
  contact: {}
  version: '1.0'
servers:
  - url: https://api.fiskil.com/v1/data-provider/cdr
    description: Fiskil Data Provider Platform API
security:
  - bearerAuth: []
paths:
  /products:
    post:
      tags:
        - Products
      summary: Create a new product
      description: Create a new banking product with the provided details
      requestBody:
        description: Product request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/product.ProductRequest'
        required: true
      responses:
        '200':
          description: Product created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/product.CreateProductResponse'
        '400':
          description: Bad request - validation error
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
components:
  schemas:
    product.ProductRequest:
      required:
        - brand
        - description
        - is_tailored
        - name
        - product_category
      type: object
      properties:
        additional_information:
          $ref: '#/components/schemas/product.ProductAdditionalInformation'
        application_uri:
          type: string
          description: >-
            A link to an application web page where this product can be applied
            for
        brand:
          type: string
          description: Institution brand managing the product.
        brand_name:
          type: string
          description: An optional display name for the brand.
        bundles:
          type: array
          description: Array of bundles that this product is included in
          items:
            $ref: '#/components/schemas/product.ProductBundle'
        card_art:
          type: array
          description: Array of card art images
          items:
            $ref: '#/components/schemas/product.ProductCardArt'
        constraints:
          type: array
          description: An array of constraint objects.
          items:
            $ref: '#/components/schemas/product.ProductConstraint'
        deposit_rates:
          type: array
          description: An array of deposit rates, e.g. interest rates for deposit products.
          items:
            $ref: '#/components/schemas/product.ProductDepositRate'
        description:
          type: string
          description: A description of the product suitable for display to customers.
        effective_from:
          type: string
          description: >-
            The date and time from which this product is effective. If not
            present, the product is available immediately.
        effective_to:
          type: string
          description: >-
            The date and time at which this product will be retired and no
            longer available for new applications.
        eligibility:
          type: array
          description: An array of eligibility criteria objects.
          items:
            $ref: '#/components/schemas/product.ProductEligibility'
        features:
          type: array
          description: An array of feature objects describing product capabilities.
          items:
            $ref: '#/components/schemas/product.ProductFeature'
        fees:
          type: array
          description: An array of fees associated with the product.
          items:
            $ref: '#/components/schemas/product.ProductFee'
        instalments:
          type: object
          description: Details of instalment plan features on the account
          allOf:
            - $ref: '#/components/schemas/product.ProductInstalments'
        is_tailored:
          type: boolean
          description: >-
            Indicates whether the product is specifically tailored to a
            circumstance.
        lending_rates:
          type: array
          description: An array of lending rates, e.g. interest rates for lending products.
          items:
            $ref: '#/components/schemas/product.ProductLendingRate'
        name:
          type: string
          description: The display name of the product shown to customers.
        product_category:
          type: string
          description: The category of the product as defined by the CDR standard.
          enum:
            - BUSINESS_LOANS
            - BUY_NOW_PAY_LATER
            - CRED_AND_CHRG_CARDS
            - LEASES
            - MARGIN_LOANS
            - OVERDRAFTS
            - PERS_LOANS
            - REGULATED_TRUST_ACCOUNTS
            - RESIDENTIAL_MORTGAGES
            - TERM_DEPOSITS
            - TRADE_FINANCE
            - TRANS_AND_SAVINGS_ACCOUNTS
            - TRAVEL_CARDS
    product.CreateProductResponse:
      type: object
      properties:
        product_id:
          type: string
    product.ProductAdditionalInformation:
      type: object
      properties:
        additional_bundle_uris:
          type: array
          description: >-
            Additional links to bundle information if the product is part of a
            bundle.
          items:
            $ref: '#/components/schemas/product.ProductAdditionalInformationURI'
        additional_eligibility_uris:
          type: array
          description: Additional links to eligibility criteria for the product.
          items:
            $ref: '#/components/schemas/product.ProductAdditionalInformationURI'
        additional_fees_and_pricing_uris:
          type: array
          description: Additional links to fees and pricing information.
          items:
            $ref: '#/components/schemas/product.ProductAdditionalInformationURI'
        additional_overview_uris:
          type: array
          description: Additional links to a general overview of the product.
          items:
            $ref: '#/components/schemas/product.ProductAdditionalInformationURI'
        additional_terms_uris:
          type: array
          description: Additional links to terms and conditions for the product.
          items:
            $ref: '#/components/schemas/product.ProductAdditionalInformationURI'
        bundle_uri:
          type: string
          description: Link to bundle information if the product is part of a bundle.
        eligibility_uri:
          type: string
          description: Link to eligibility criteria for the product.
        fees_and_pricing_uri:
          type: string
          description: Link to fees and pricing information.
        overview_uri:
          type: string
          description: Link to a general overview of the product.
        terms_uri:
          type: string
          description: Link to terms and conditions for the product.
    product.ProductBundle:
      required:
        - name
      type: object
      properties:
        additional_info:
          type: string
          description: Display text providing more information on the bundle
        additional_info_uri:
          type: string
          description: >-
            Link to a web page with more information on the bundle criteria and
            benefits
        description:
          type: string
          description: Description of the bundle.
        name:
          type: string
          description: Name of the bundle.
        product_ids:
          type: array
          description: >-
            List of product IDS for the other products that are included in the
            bundle and are available via the product API

            Note that any products not available in the product API should not
            be included.
          items:
            type: string
    product.ProductCardArt:
      required:
        - card_scheme
        - card_type
        - image_uri
      type: object
      properties:
        card_scheme:
          type: string
          enum:
            - AMEX
            - EFTPOS
            - MASTERCARD
            - VISA
            - OTHER
        card_type:
          type: string
          enum:
            - CHARGE
            - CREDIT
            - DEBIT
        image_uri:
          type: string
          description: >-
            URI reference to a PNG, JPG, or GIF image. May be a link or a URL
            encoded data URI
        title:
          type: string
          description: Display label for the specific image
    product.ProductConstraint:
      required:
        - additional_value
        - constraint_type
      type: object
      properties:
        additional_info:
          type: string
          description: Additional information about the constraint.
        additional_info_uri:
          type: string
          description: Link to more information about the constraint.
        additional_value:
          type: string
          description: The value of the constraint.
        constraint_type:
          type: string
          description: The type of constraint.
          enum:
            - MAX_BALANCE
            - MAX_LIMIT
            - MIN_BALANCE
            - MIN_LIMIT
            - MIN_LVR
            - MAX_LVR
            - OPENING_BALANCE
            - OTHER
    product.ProductDepositRate:
      required:
        - application_type
        - deposit_rate_type
        - rate
      type: object
      properties:
        additional_info:
          type: string
          description: Additional information about the rate.
        additional_info_uri:
          type: string
          description: Link to more information about the rate.
        additional_value:
          type: string
          description: Additional value for the rate, if required by rate type.
        applicability_conditions:
          type: array
          description: Applicability conditions for the rate.
          items:
            $ref: '#/components/schemas/product.ProductApplicabilityConditions'
        application_frequency:
          type: string
          description: How frequently interest is applied.
        application_type:
          type: string
          description: The type of approach used to apply the rate to the account.
          enum:
            - MATURITY
            - PERIODIC
            - UPFRONT
        calculation_frequency:
          type: string
          description: How frequently interest is calculated.
        deposit_rate_type:
          type: string
          description: The type of deposit rate.
          enum:
            - BONUS
            - BUNDLE_BONUS
            - FIXED
            - FLOATING
            - INTRODUCTORY
            - MARKET_LINKED
            - VARIABLE
        rate:
          type: string
          description: The interest rate.
        tiers:
          type: array
          description: Rate tiers for tiered interest rates.
          items:
            $ref: '#/components/schemas/product.ProductRateTier'
    product.ProductEligibility:
      required:
        - eligibility_type
      type: object
      properties:
        additional_info:
          type: string
          description: Additional information about the eligibility criteria.
        additional_info_uri:
          type: string
          description: Link to more information about eligibility.
        additional_value:
          type: string
          description: >-
            Additional value for the criteria, if required by the eligibility
            type.
        eligibility_type:
          type: string
          description: The type of eligibility criteria.
          enum:
            - BUSINESS
            - EMPLOYMENT_STATUS
            - MAX_AGE
            - MIN_AGE
            - MIN_INCOME
            - MIN_TURNOVER
            - NATURAL_PERSON
            - OTHER
            - PENSION_RECIPIENT
            - RESIDENCY_STATUS
            - STAFF
            - STUDENT
    product.ProductFeature:
      required:
        - feature_type
      type: object
      properties:
        additional_info:
          type: string
          description: Additional information about the feature.
        additional_info_uri:
          type: string
          description: Link to more information about the feature.
        additional_value:
          type: string
          description: Additional value for the feature, if required by the feature type.
        feature_type:
          type: string
          description: The type of feature. See CDR standard for full list.
          enum:
            - ADDITIONAL_CARDS
            - BALANCE_TRANSFERS
            - BILL_PAYMENT
            - BONUS_REWARDS
            - CARD_ACCESS
            - CASHBACK_OFFER
            - COMPLEMENTARY_PRODUCT_DISCOUNTS
            - DIGITAL_BANKING
            - DIGITAL_WALLET
            - DONATE_INTEREST
            - EXTRA_DOWN_PAYMENT
            - EXTRA_REPAYMENTS
            - FRAUD_PROTECTION
            - FUNDS_AVAILABLE_AFTER
            - FREE_TXNS
            - FREE_TXNS_ALLOWANCE
            - FUNDS_AVAILABLE_AFTER
            - GUARANTOR
            - INSURANCE
            - INSTALMENT_PLAN
            - INTEREST_FREE
            - INTEREST_FREE_TRANSFERS
            - LOYALTY_PROGRAM
            - NOTIFICATIONS
            - NPP_ENABLED
            - NPP_PAYID
            - OFFSET
            - OTHER
            - OVERDRAFT
            - REDRAW
            - RELATIONSHIP_MANAGEMENT
            - UNLIMITED_TXNS
    product.ProductFee:
      required:
        - fee_method_u_type
        - fee_type
        - name
      type: object
      properties:
        additional_info:
          type: string
        additional_info_uri:
          type: string
        additional_value:
          type: string
        currency:
          type: string
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/product.ProductFeeDiscount'
        fee_cap:
          type: string
          description: >-
            The cap amount if multiple occurrences of the fee are capped to a
            limit
        fee_cap_period:
          type: string
          description: >-
            The duration over which multiple occurrences of the fee will be
            capped, formatted as an ISO8601 duration
        fee_method_u_type:
          type: string
          description: The method for defining the fee amount
          enum:
            - fixedAmount
            - rateBased
            - variable
        fee_type:
          type: string
          enum:
            - CASH_ADVANCE
            - DEPOSIT
            - DISHONOUR
            - ENQUIRY
            - EVENT
            - EXIT
            - LATE_PAYMENT
            - OTHER
            - PAYMENT
            - PERIODIC
            - PURCHASE
            - REPLACEMENT
            - TRANSACTION
            - UPFRONT
            - UPFRONT_PER_PLAN
            - VARIATION
            - WITHDRAWAL
        fixed_amount:
          type: object
          description: >-
            A specific amount fee. Required if fee_method_u_type is
            `fixedAmount`
          allOf:
            - $ref: '#/components/schemas/product.ProductFeeFixedAmount'
        name:
          type: string
        rate_based:
          type: object
          description: >-
            The fee amount is a rate dependent on something else. Required if
            fee_method_u_type is `rateBased`
          allOf:
            - $ref: '#/components/schemas/product.ProductFeeRateBased'
        variable:
          type: object
          description: >-
            The fee amount or rate is unknown until the fee is incurred.
            Required if fee_method_u_type is `variable`
          allOf:
            - $ref: '#/components/schemas/product.ProductFeeRange'
    product.ProductInstalments:
      required:
        - maximum_split
        - minimum_split
      type: object
      properties:
        instalments_limit:
          type: string
          description: >-
            Maximum combined limit of all instalment plans that may be created
            on the account.
        maximum_concurrent_plans:
          minimum: 0
          type: integer
          description: >-
            Maximum number of concurrent, active instalment plans that may be
            created on the account. If unset, there is no predetermined maximum
            number
        maximum_plan_value:
          type: string
          description: >-
            Maximum value that can be opened as an instalment plan. If unset,
            instalments_limit is assumed to be the maximum individual plan value
        maximum_split:
          minimum: 1
          type: integer
          description: Maximum number of instalment payments a plan can be created with
        minimum_plan_value:
          type: string
          description: Minimum value that can be opened as an instalment plan
        minimum_split:
          minimum: 1
          type: integer
          description: Minimum number of instalment payments a plan can be created with
    product.ProductLendingRate:
      required:
        - lending_rate_type
        - loan_purpose
        - rate
        - repayment_type
        - application_type
      type: object
      properties:
        additional_info:
          type: string
          description: Additional information about the rate.
        additional_info_uri:
          type: string
          description: Link to more information about the rate.
        additional_value:
          type: string
          description: Additional value for the rate, if required by rate type.
        applicability_conditions:
          type: array
          description: Applicability conditions for the rate.
          items:
            $ref: '#/components/schemas/product.ProductApplicabilityConditions'
        application_frequency:
          type: string
          description: How frequently interest is applied.
        application_type:
          type: string
          description: The type of approach used to apply the rate to the account.
          enum:
            - MATURITY
            - PERIODIC
            - UPFRONT
        calculation_frequency:
          type: string
          description: How frequently interest is calculated.
        comparison_rate:
          type: string
          description: The comparison rate for the lending product.
        interest_payment_due:
          type: string
          description: When interest is payable.
          enum:
            - IN_ADVANCE
            - IN_ARREARS
        lending_rate_type:
          type: string
          description: The type of lending rate.
          enum:
            - BALANCE_TRANSFER
            - BUNDLE_DISCOUNT_FIXED
            - BUNDLE_DISCOUNT_VARIABLE
            - CASH_ADVANCE
            - DISCOUNT
            - FIXED
            - FLOATING
            - INTRODUCTORY
            - MARKET_LINKED
            - PENALTY
            - PURCHASE
            - VARIABLE
        loan_purpose:
          type: string
          description: The purpose of the loan.
          enum:
            - INVESTMENT
            - OWNER_OCCUPIED
            - OTHER
            - UNCONSTRAINED
        rate:
          type: string
          description: The interest rate.
        repayment_type:
          type: string
          description: The repayment type.
          enum:
            - INTEREST_ONLY
            - PRINCIPAL_AND_INTEREST
            - OTHER
            - UNCONSTRAINED
        tiers:
          type: array
          description: Rate tiers for tiered interest rates.
          items:
            $ref: '#/components/schemas/product.ProductRateTier'
    product.ProductAdditionalInformationURI:
      type: object
      properties:
        additional_info_uri:
          type: string
          description: URI of the additional information.
        description:
          type: string
          description: Description of the additional information URI.
    product.ProductApplicabilityConditions:
      required:
        - rate_applicability_type
      type: object
      properties:
        additional_info:
          type: string
          description: Display text providing more information on the condition.
        additional_info_uri:
          type: string
          description: Link to a web page with more information on this condition.
        additional_value:
          type: string
          description: >-
            Generic field containing additional information relevant to the
            rateApplicabilityType specified.
        rate_applicability_type:
          type: string
          description: Category of applicability condition associated with the rate.
          enum:
            - MIN_DEPOSITS
            - MIN_DEPOSIT_AMOUNT
            - DEPOSIT_BALANCE_INCREASED
            - EXISTING_CUST
            - NEW_ACCOUNTS
            - NEW_CUSTOMER
            - NEW_CUSTOMER_TO_GROUP
            - ONLINE_ONLY
            - OTHER
            - MIN_PURCHASES
            - MAX_WITHDRAWALS
            - MAX_WITHDRAWAL_AMOUNT
    product.ProductRateTier:
      required:
        - name
        - unit_of_measure
      type: object
      properties:
        additional_info:
          type: string
          description: Display text providing more information on the rate tier.
        additional_info_uri:
          type: string
          description: Link to a web page with more information on this rate tier.
        applicability_conditions:
          type: array
          description: Applicability conditions for the rate tier.
          items:
            $ref: '#/components/schemas/product.ProductApplicabilityConditions'
        maximum_value:
          type: string
          description: >-
            The number of unitOfMeasure units that form the upper bound of the
            tier or band.
        minimum_value:
          type: string
          description: >-
            The number of unitOfMeasure units that form the lower bound of the
            tier. The tier should be inclusive of this value.
        name:
          type: string
          description: A display name for the tier.
        rate_application_method:
          type: string
          description: >-
            The method used to calculate the amount to be applied using one or
            more tiers.
          enum:
            - PER_TIER
            - WHOLE_BALANCE
        unit_of_measure:
          type: string
          description: >-
            The unit of measure that applies to the minimumValue and
            maximumValue values.
          enum:
            - DAY
            - DOLLAR
            - MONTH
            - PERCENT
    product.ProductFeeDiscount:
      required:
        - description
        - discount_method_u_type
        - discount_type
      type: object
      properties:
        additional_info:
          type: string
        additional_info_uri:
          type: string
        additional_value:
          type: string
          description: >-
            Must be amountstring if discount type is BALANCE, DEPOSIT, or
            PAYMENTS. If discount type is FEE_CAP must be an iso8601 duration
        description:
          type: string
        discount_method_u_type:
          type: string
          enum:
            - fixedAmount
            - rateBased
        discount_type:
          type: string
          enum:
            - BALANCE
            - DEPOSITS
            - ELIGIBILITY_ONLY
            - FEE_CAP
            - PAYMENTS
        eligibility:
          type: array
          items:
            $ref: '#/components/schemas/product.ProductFeeDiscountEligibility'
        fixed_amount:
          $ref: '#/components/schemas/product.BankingFeeDiscountFixedAmount'
        rate_based:
          $ref: '#/components/schemas/product.BankingFeeDiscountRateBased'
    product.ProductFeeFixedAmount:
      required:
        - amount
      type: object
      properties:
        amount:
          type: string
    product.ProductFeeRateBased:
      required:
        - rate
        - rate_type
      type: object
      properties:
        accrual_frequency:
          type: string
          description: >-
            The indicative frequency with which the fee is calculated on the
            account, if applicable
        amount_range:
          $ref: '#/components/schemas/product.ProductFeeRange'
        rate:
          type: string
          description: The fee rate
        rate_type:
          type: string
          description: >-
            Value that the rate will be applied to.

            * BALANCE means the fee will be determined as a rate of the current
            account balance

            * INTEREST_ACCRUED means the fee will be determined as a rate of the
            total interest accrued

            * TRANSACTION means the fee will be determined as a rate of a
            transaction
          enum:
            - BALANCE
            - INTEREST_ACCRUED
            - TRANSACTION
    product.ProductFeeRange:
      type: object
      properties:
        fee_maximum:
          type: string
          description: The maximum fee charged per occurrence
        fee_minimum:
          type: string
          description: The minimum fee charged per occurrence
    product.ProductFeeDiscountEligibility:
      required:
        - discount_eligibility_type
      type: object
      properties:
        additional_info:
          type: string
        additional_info_uri:
          type: string
        additional_value:
          type: string
        discount_eligibility_type:
          type: string
          enum:
            - BUSINESS
            - EMPLOYMENT_STATUS
            - INTRODUCTORY
            - MAX_AGE
            - MIN_AGE
            - MIN_INCOME
            - MIN_TURNOVER
            - NATURAL_PERSON
            - OTHER
            - PENSION_RECIPIENT
            - RESIDENCY_STATUS
            - STAFF
            - STUDENT
    product.BankingFeeDiscountFixedAmount:
      required:
        - amount
      type: object
      properties:
        amount:
          type: string
          description: The specific amount discounted from the fee each time it is incurred
    product.BankingFeeDiscountRateBased:
      required:
        - rate
        - rate_type
      type: object
      properties:
        amount_range:
          $ref: '#/components/schemas/product.BankingFeeDiscountRange'
        rate:
          type: string
          description: The rate used to calculate the discount
        rate_type:
          type: string
          description: >-
            The property that the fee is based on

            * BALANCE means the fee will be determined based on the current
            account balance

            * FEE means the discount is based on the fee amount

            * INTEREST ACCRUED means the discount is based on the total interest
            accrued

            * TRANSACTION means the discount is based on a transaction
          enum:
            - BALANCE
            - FEE
            - INTEREST_ACCRUED
            - TRANSACTION
    product.BankingFeeDiscountRange:
      type: object
      properties:
        discount_maximum:
          type: string
          description: The maximum fee discount that will be applied per occurrence
        discount_minimum:
          type: string
          description: The minimum fee discount that will be applied per occurrence
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        OAuth 2.0 access token from the [token
        endpoint](https://api.fiskil.com/v1/token).

        See [Platform API authentication](/platform-api/authentication).

````