openapi: 3.0.0
info:
  title: Recurring Invoices
  description: Recurring invoices are invoices that are created and sent to your customers on a recurring schedule.
  contact: {}
  version: 1.0.0
servers:
  - url: https://www.zohoapis.com/books/v3
    description: API Endpoint
tags:
  - name: recurring-invoices
    description: Recurring-Invoices Module
paths:
  /recurringinvoices:
    post:
      tags:
        - recurring-invoices
      operationId: create_recurring_invoice
      summary: Create a Recurring Invoice
      description: Creating a new recurring invoice.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-a-recurring-invoice-request'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/create-a-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.CREATE
    get:
      tags:
        - recurring-invoices
      operationId: list_recurring_invoices
      summary: List all  Recurring Invoice
      description: List the details of all recurring invoice.
      parameters:
        - name: recurrence_name
          in: query
          description: Unique name for the recurring profile given by the user. Max-length [100]
          required: false
          schema:
            type: string
          example: MonthlyInvoice
        - name: item_name
          in: query
          description: 'Search recurring invoices by item name. Variants: <code>item_name_startswith</code> and <code>profileitemname_contains</code>.'
          required: false
          schema:
            type: string
          example: ''
        - name: item_description
          in: query
          description: 'Search recurring invoices by item description. Variants: <code>item_description_startswith</code> and <code>item_description_contains</code>.'
          required: false
          schema:
            type: string
          example: ''
        - name: customer_name
          in: query
          description: Name of the customer to whom the recurring invoice is raised.
          required: false
          schema:
            type: string
          example: Sujin Kumar
        - name: line_item_id
          in: query
          description: The line item id
          required: false
          schema:
            type: string
          example: '982000000567021'
        - name: item_id
          in: query
          description: Unique string generated for the item for which invoice is to be sent.
          required: false
          schema:
            type: string
          example: '90300000081501'
        - name: tax_id
          in: query
          description: ID of the tax or tax group associated to the recurring invoice.
          required: false
          schema:
            type: string
          example: '903000000000356'
        - name: notes
          in: query
          description: A short note for the recurring invoice.
          required: false
          schema:
            type: string
          example: Offer for the referral
        - name: start_date
          in: query
          description: The date on which the recurring invoice starts.
          required: false
          schema:
            type: string
          example: '2016-06-12'
        - name: end_date
          in: query
          description: The date on which the recurring invoice expires.
          required: false
          schema:
            type: string
          example: '2017-06-12'
        - name: customer_id
          in: query
          description: Customer ID of the customer for whom the recurring invoice is raised.
          required: false
          schema:
            type: string
          example: '903000000000099'
        - name: status
          in: query
          description: Status of the recurring invoice. This can be <code>active</code>, <code>stopped</code> or <code>expired</code>.
          required: false
          schema:
            type: string
          example: active
        - name: filter_by
          in: query
          description: 'Filter  Recurring invoices by any status or payment expected date.Allowed Values: <code> Status.All</code>, <code>Status.Active</code>, <code> Status.Stopped</code>, <code>Status.Expired</code>'
          required: false
          schema:
            type: string
          example: ''
        - name: search_text
          in: query
          description: Search invoices by invoice number or purchase order or customer name. Max-length [100]
          required: false
          schema:
            type: string
          example: ''
        - name: sort_column
          in: query
          description: Column used to sort the recurring invoices list.
          required: false
          schema:
            type: string
          example: created_time
        - name: page
          in: query
          description: Page number to be fetched. Default value is 1.
          required: false
          schema:
            type: integer
            default: 1
          example: 1
        - name: per_page
          in: query
          description: Number of records to be fetched per page.
          required: false
          schema:
            type: integer
            default: 10
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list-all-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.READ
    put:
      tags:
        - recurring-invoices
      operationId: update_recurring_invoice_using_custom_field
      summary: Update a recurring invoice using a custom field's unique value
      description: A custom field will have unique values if it's configured to not accept duplicate values. Now, you can use that custom field's value to update a recurring invoice by providing its API name in the X-Unique-Identifier-Key header and its value in the X-Unique-Identifier-Value header. Based on this value, the corresponding recurring invoice will be retrieved and updated. Additionally, there is an optional X-Upsert header. If the X-Upsert header is true and the custom field's unique value is not found in any of the existing recurring invoices, a new recurring invoice will be created if the necessary payload details are available
      parameters:
        - name: X-Unique-Identifier-Key
          in: header
          description: Unique CustomField Api Name
          required: true
          schema:
            type: string
            example: cf_unique_cf
        - name: X-Unique-Identifier-Value
          in: header
          description: Unique CustomField Value
          required: true
          schema:
            type: string
            example: unique Value
        - name: X-Upsert
          in: header
          description: If there is no record is found unique custom field value , will create new invoice
          required: false
          schema:
            type: boolean
            example: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-recurring-invoice-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.UPDATE
    parameters:
      - $ref: '#/components/parameters/organization_id'
  /recurringinvoices/{recurring_invoice_id}:
    put:
      tags:
        - recurring-invoices
      operationId: update_recurring_invoice
      summary: Update Recurring Invoice
      description: Update the recurring invoice.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-recurring-invoice-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.UPDATE
    get:
      tags:
        - recurring-invoices
      operationId: get_recurring_invoice
      summary: Get a Recurring Invoice
      description: Get the details of a recurring invoice.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-a-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.READ
    delete:
      tags:
        - recurring-invoices
      operationId: delete_recurring_invoice
      summary: Delete a Recurring Invoice
      description: Delete an existing recurring invoice.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/delete-a-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.DELETE
    parameters:
      - name: recurring_invoice_id
        in: path
        schema:
          type: string
        required: true
        description: Unique identifier of the recurring invoice.
        example: '90300000072369'
      - $ref: '#/components/parameters/organization_id'
  /recurringinvoices/{recurring_invoice_id}/status/stop:
    post:
      tags:
        - recurring-invoices
      operationId: stop_recurring_invoice
      summary: Stop a Recurring Invoice
      description: Stop an active recurring invoice.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/stop-a-recurring-invoice-request'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/stop-a-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.CREATE
    parameters:
      - name: recurring_invoice_id
        in: path
        schema:
          type: string
        required: true
        description: Unique identifier of the recurring invoice.
        example: '90300000072369'
      - $ref: '#/components/parameters/organization_id'
  /recurringinvoices/{recurring_invoice_id}/status/resume:
    post:
      tags:
        - recurring-invoices
      operationId: resume_recurring_invoice
      summary: Resume a Recurring Invoice
      description: Resume a stopped recurring invoice.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/resume-a-recurring-invoice-request'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/resume-a-recurring-invoice-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.CREATE
    parameters:
      - name: recurring_invoice_id
        in: path
        schema:
          type: string
        required: true
        description: Unique identifier of the recurring invoice.
        example: '90300000072369'
      - $ref: '#/components/parameters/organization_id'
  /recurringinvoices/{recurring_invoice_id}/templates/{template_id}:
    put:
      tags:
        - recurring-invoices
      operationId: update_recurring_invoice_template
      summary: Update Recurring Invoice template
      description: Update the pdf template associated with the recurring invoice.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-recurring-invoice-template-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update-recurring-invoice-template-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.UPDATE
    parameters:
      - name: recurring_invoice_id
        in: path
        schema:
          type: string
        required: true
        description: Unique identifier of the recurring invoice.
        example: '90300000072369'
      - name: template_id
        in: path
        schema:
          type: string
        required: true
        description: Unique identifier of the recurring invoice template.
        example: '90300000001336'
      - $ref: '#/components/parameters/organization_id'
  /recurringinvoices/{recurring_invoice_id}/comments:
    get:
      tags:
        - recurring-invoices
      operationId: list_recurring_invoice_history
      summary: List Recurring Invoice History
      description: Get the complete history and comments of a recurring invoice.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list-recurring-invoice-history-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoBooks.invoices.READ
    parameters:
      - name: recurring_invoice_id
        in: path
        schema:
          type: string
        required: true
        description: Unique identifier of the recurring invoice.
        example: '90300000072369'
      - $ref: '#/components/parameters/organization_id'
components:
  parameters:
    organization_id:
      name: organization_id
      description: ID of the organization
      in: query
      required: true
      schema:
        type: string
      example: '10234695'
  schemas:
    gendoc-attributes-schema:
      $ref: '#/components/schemas/recurring_invoice-response'
    recurring_invoice-response:
      type: object
      properties:
        recurring_invoice_id:
          $ref: '#/components/schemas/recurring_invoice_id'
        recurrence_name:
          $ref: '#/components/schemas/recurrence_name'
        reference_number:
          $ref: '#/components/schemas/reference_number'
        customer_name:
          $ref: '#/components/schemas/customer_name'
        contact_persons_associated:
          $ref: '#/components/schemas/contact_persons_associated'
        is_pre_gst:
          $ref: '#/components/schemas/is_pre_gst'
        gst_no:
          $ref: '#/components/schemas/gst_no'
        gst_treatment:
          $ref: '#/components/schemas/gst_treatment'
        tax_treatment:
          $ref: '#/components/schemas/tax_treatment'
        is_reverse_charge_applied:
          $ref: '#/components/schemas/is_reverse_charge_applied'
        cfdi_usage:
          $ref: '#/components/schemas/cfdi_usage'
        vat_treatment:
          $ref: '#/components/schemas/vat_treatment'
        place_of_supply:
          $ref: '#/components/schemas/place_of_supply'
        customer_id:
          $ref: '#/components/schemas/customer_id'
        currency_id:
          $ref: '#/components/schemas/currency_id'
        currency_code:
          $ref: '#/components/schemas/currency_code'
        start_date:
          $ref: '#/components/schemas/start_date'
        end_date:
          $ref: '#/components/schemas/end_date'
        last_sent_date:
          $ref: '#/components/schemas/last_sent_date'
        next_invoice_date:
          $ref: '#/components/schemas/next_invoice_date'
        location_id:
          $ref: '#/components/schemas/location_id'
        location_name:
          $ref: '#/components/schemas/location_name'
        tags:
          $ref: '#/components/schemas/tags_response'
        line_items:
          description: Line items of an invoice.
          type: array
          items:
            type: object
            properties:
              line_item_id:
                $ref: '#/components/schemas/line_item_id'
              quantity:
                $ref: '#/components/schemas/quantity'
              name:
                $ref: '#/components/schemas/name'
              item_total:
                $ref: '#/components/schemas/item_total'
              sku:
                $ref: '#/components/schemas/sku'
              product_type:
                $ref: '#/components/schemas/product_type'
              sat_item_key_code:
                $ref: '#/components/schemas/sat_item_key_code'
              unitkey_code:
                $ref: '#/components/schemas/unitkey_code'
              location_id:
                $ref: '#/components/schemas/location_id'
              location_name:
                $ref: '#/components/schemas/location_name'
              tags:
                $ref: '#/components/schemas/tags_response'
              tax_id:
                $ref: '#/components/schemas/tax_id'
              tax_treatment_code:
                $ref: '#/components/schemas/tax_treatment_code'
              project_id:
                $ref: '#/components/schemas/project_id'
              project_name:
                $ref: '#/components/schemas/project_name'
              header_name:
                $ref: '#/components/schemas/header_name'
              header_id:
                $ref: '#/components/schemas/header_id'
        billing_address:
          $ref: '#/components/schemas/billing_address'
        shipping_address:
          $ref: '#/components/schemas/shipping_address'
        custom_fields:
          $ref: '#/components/schemas/custom_fields'
        payment_options:
          $ref: '#/components/schemas/payment_options'
        avatax_exempt_no:
          $ref: '#/components/schemas/avatax_exempt_no'
        avatax_use_code:
          $ref: '#/components/schemas/avatax_use_code'
    recurring_invoice_id:
      description: Unique ID of the recurring invoice generated by the server.
      type: string
      example: '90300000072369'
    reference_number:
      description: The Order number of the Recurring Invoice.
      type: string
      example: '12314'
    recurrence_name:
      description: Unique name for the recurring profile given by the user. Max-length [100]
      type: string
      example: MonthlyInvoice
    place_of_supply:
      description: 'Place where the goods/services are supplied to. (If not given, <code>place of contact</code> given for the contact will be taken)<br/>Supported codes for UAE emirates are : </br>Abu Dhabi - <code>AB</code>,</br>Ajman - <code>AJ</code>,</br>Dubai - <code>DU</code>,</br>Fujairah - <code>FU</code>,</br>Ras al-Khaimah - <code>RA</code>,</br>Sharjah - <code>SH</code>,</br>Umm al-Quwain - <code>UM</code><br/>Supported codes for the GCC countries are : </br>United Arab Emirates - <code>AE</code>,</br>Saudi Arabia - <code>SA</code>,</br>Bahrain - <code>BH</code>,</br>Kuwait - <code>KW</code>,</br>Oman - <code>OM</code>,</br>Qatar - <code>QA</code>.'
      type: string
      example: TN
      x-node_available_in:
        - in
        - gcc
      x-node_unavailable_in: []
    gst_treatment:
      description: Choose whether the contact is GST registered/unregistered/consumer/overseas. Allowed values are <code> business_gst </code> , <code> business_none </code> , <code> overseas </code> , <code> consumer </code>.
      type: string
      example: business_gst
      x-node_available_in:
        - in
      x-node_unavailable_in: []
    gst_no:
      description: 15 digit GST identification number of the customer.
      type: string
      example: 22AAAAA0000A1Z5
      x-node_available_in:
        - in
      x-node_unavailable_in: []
    product_type:
      description: Enter <code>goods</code> or <code>services</code> .<br/><b>For SouthAfrica Edition:</b> <code>service</code>, <code>goods</code>, <code>capital_service</code> and <code>capital_goods</code>
      type: string
      example: goods
    project_id:
      description: ID of the project
      type: string
      example: 90300000087378
    project_name:
      description: Name of the project.
      type: string
      example: Sample Project
    hsn_or_sac:
      description: Add HSN/SAC code for your goods/services
      type: string
      example: 80540
      x-node_available_in:
        - in
        - ke
        - za
      x-node_unavailable_in: []
    sat_item_key_code:
      description: Add SAT Item Key Code for your goods/services. Download the <a href= http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/catCFDI_V_4_07122022.xls  >CFDI Catalogs.</a>
      type: string
      example: 71121206
      x-node_available_in:
        - mx
      x-node_unavailable_in: []
    unitkey_code:
      description: Add SAT Unit Key Code for your goods/services. Download the <a href= http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/catCFDI_V_4_07122022.xls  >CFDI Catalogs.</a>
      type: string
      example: box
      x-node_available_in:
        - mx
      x-node_unavailable_in: []
    location_id:
      description: Location ID
      type: string
      example: '460000000038080'
    location_name:
      description: Name of the location
      type: string
    sku:
      description: Enter item's SKU information
      type: string
      example: LEV-JN-SL-36-GN
    is_pre_gst:
      description: Applicable for transactions that fall before july 1, 2017
      type: string
      example: false
      x-node_available_in:
        - in
      x-node_unavailable_in: []
    item_name:
      description: 'Search recurring invoices by item name. Variants: <code>item_name_startswith</code> and <code>profileitemname_contains</code>.'
      type: string
      example: ' '
    item_description:
      description: 'Search recurring invoices by item description. Variants: <code>item_description_startswith</code> and <code>item_description_contains</code>.'
      type: string
      example: ' '
    customer_name:
      description: Name of the customer to whom the recurring invoice is raised.
      type: string
      example: Sujin Kumar
    customer_id:
      description: Customer ID of the customer for whom the recurring invoice is raised.
      type: string
      example: '903000000000099'
    company_name:
      description: Name of the company with which the customer is associated.
      type: string
      example: ABC Studios
    customer_email:
      description: Email address of the customer to whom the recurring invoice is raised.
      type: string
      example: emailid@abcstudios.com
    customer_mobile_phone:
      description: Mobile phone number of the customer to whom the recurring invoice is raised.
      type: string
      example: 9876543210
    customer_phone:
      description: Phone number of the customer to whom the recurring invoice is raised.
      type: string
      example: 012-12345678
    paid_invoices_total:
      description: Total of the all child invoices that have been paid.
      type: number
      format: double
      example: 100
    unpaid_invoices_balance:
      description: Balance of the all child invoices that have been raised.
      type: number
      format: double
      example: 100
    photo_url:
      description: Gravatar photo url for the customer.
      type: string
      example: https://secure.gravatar.com/avatar/xxxxxxxxxx?&d=mm
    date:
      description: The date on which recurring invoice is raised.
      type: string
      example: '2016-06-05'
    start_date:
      description: The date on which the recurring invoice starts.
      type: string
      example: '2016-06-12'
    end_date:
      description: The date on which the recurring invoice expires.
      type: string
      example: '2017-06-12'
    last_sent_date:
      description: The date at which the last invoice was sent.
      type: string
      example: '2016-06-12'
    discount:
      description: Discount applied to the recurring invoice, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
      type: string
      example: 30%
    next_invoice_date:
      description: The date at which next invoice is to be sent.
      type: string
      example: '2016-06-17'
    is_discount_before_tax:
      description: Used to specify how the discount has to applied. Either before or after the calculation of tax.
      type: boolean
      example: true
    is_inclusive_tax:
      description: Used to specify whether the line item rates are inclusive or exclusive of tax.
      type: boolean
      example: false
      x-node_available_in: []
      x-node_unavailable_in:
        - us
        - ca
    discount_type:
      description: 'How the discount is specified. Allowed values: <code>entity_level</code> and <code>item_level</code>.'
      type: string
      example: entity level
    recurrence_frequency:
      description: The frequency of time interval at which the invoice is to be generated.
      type: string
      enum:
        - weeks
      example: weeks
    repeat_every:
      description: The period between every recurrency frequency.
      type: integer
      example: 2
    status:
      description: Status of the recurring invoice. This can be <code>active</code>, <code>stopped</code> or <code>expired</code>.
      type: string
      example: active
    line_items:
      description: Line items of an invoice.
      type: array
      items:
        type: string
    line_item_id:
      description: The line item id
      type: string
      example: '982000000567021'
    name:
      description: The name of the line item. max-length [100]
      type: string
      example: Hard Drive
    currency_id:
      description: The currenct id of the currency
      type: string
      example: '982000000000190'
    currency_code:
      description: The currency code in which the invoice is created.
      type: string
      example: USD
    transaction_id:
      description: The transaction ID associated with the involved recurring invoices.
      type: string
      example: '903000002072369'
    email:
      description: Email address of the customer.
      type: string
      example: benjamin.george@bowmanfurniture.com
    item_id:
      description: Unique string generated for the item for which invoice is to be sent.
      type: string
      example: '90300000081501'
    description:
      description: A small description about the item. Max-length [2000]
      type: string
      example: prorated amount for items
    type:
      description: Type of the recurring invoice line item.
      type: integer
      example: 1
    account_id:
      description: Unique ID to denote the account.
      type: string
      example: '903000000000388'
    account_name:
      description: Name of the account.
      type: string
      example: Sales
    tax_id:
      description: ID of the tax or tax group associated to the recurring invoice.
      type: string
      example: '903000000000356'
    tds_tax_id:
      description: ID of the TDS tax or TDS tax group associated to the recurring invoice.
      type: string
      example: '903000000000357'
      x-node_available_in:
        - mx
      x-node_unavailable_in: []
    quantity:
      description: Quantity of the item included.
      type: integer
      format: int32
      example: 1
    price:
      description: The price of the item included.
      type: number
      format: double
      example: 100
    item_total:
      description: Total rate raised by this item. This would be the multiplicative product of item price and quantity.
      type: number
      format: double
      example: 100
    template_id:
      description: Unique ID of the recurring invoice template.
      type: string
      example: '90300000001336'
    unit:
      description: 'Unit of the line item. E.g: kgs, Nos.'
      type: string
      example: kgs
    template_name:
      description: Name of the default template of the recurring invoice.
      type: string
      example: Standard Template
    comments:
      description: The details of the comments
      type: array
      items:
        type: string
    comment_description:
      description: The description for comment.
      type: string
      example: Recurring Invoice created
    commented_by_id:
      type: string
      example: '982000000554041'
    comment_type:
      type: string
      example: system
    commented_by:
      type: string
      example: Sujin Kumar
    date_description:
      type: string
      example: yesterday
    time:
      type: string
      example: 2:02 AM
    operation_type:
      type: string
      example: Added
    transaction_type:
      type: string
      example: estimate
    comment_id:
      description: ID of the comment
      type: string
      example: '982000000567019'
    index:
      description: Index of the custom field. It can hold any value from 1 to 10.
      type: integer
      example: 1
    label:
      description: Label of the custom field.
      type: string
      example: label
    value:
      description: Value of the custom field.
      type: string
      example: '129890'
    created_time:
      description: Time at which the recurring invoice was created.
      type: string
      example: 2016-06-05T02:30:08-0700
    updated_time:
      description: Time at which the recurring invoice details were last updated.
      type: string
      example: 2016-06-05T02:30:08-0700
    invoice_id:
      description: Invoice ID of the required invoice.
      type: string
      example: '90300000079426'
    invoice_number:
      description: Invoice number of the required invoice.
      type: string
      example: INV-384
    amount:
      description: Amount paid for the invoice.
      type: number
      format: double
      example: 450
    contact_person_name:
      description: Name of the Contact Person
      type: string
      example: David
    first_name:
      description: First Name of the Contact Person.
      type: string
      example: David
    contact_person_email:
      description: Email ID of the Contact Person.
      type: string
      example: willsmith@bowmanfurniture.com
    phone:
      description: Phone Number of the Contact Person.
      type: string
      example: +1-925-921-9201
    last_name:
      description: Last Name of the Contact Person.
      type: string
      example: Sujin
    salutation:
      description: Salutation of the Contact Person.
      type: string
      example: Mr
    contact_person_id:
      description: Unique ID of the Contact Person.
      type: string
      example: 982000000567003
    mobile:
      description: Mobile Number of the Contact Person.
      type: string
      example: +1-4054439562
    is_email_enabled:
      description: Used to check if Email communication preference is enabled for the contact person at transaction level.
      type: boolean
      example: true
    is_sms_enabled:
      description: Used to check if SMS communication preference is enabled for the contact person at transaction level.
      type: boolean
      example: true
      x-node_available_in:
        - SMS integration
    is_whatsapp_enabled:
      description: Used to check if WhatsApp communication preference is enabled for the contact person at transaction level.
      type: boolean
      example: true
      x-node_available_in:
        - WhatsApp integration
    communication_preference:
      description: Preferred modes of communication for the contact person at transaction level.
      type: object
      properties:
        is_email_enabled:
          $ref: '#/components/schemas/is_email_enabled'
        is_whatsapp_enabled:
          $ref: '#/components/schemas/is_whatsapp_enabled'
    contact_persons_associated:
      description: Contact Persons associated with the transaction.
      type: array
      items:
        type: object
        properties:
          contact_person_id:
            $ref: '#/components/schemas/contact_person_id'
          contact_person_name:
            $ref: '#/components/schemas/contact_person_name'
          first_name:
            $ref: '#/components/schemas/first_name'
          last_name:
            $ref: '#/components/schemas/last_name'
          contact_person_email:
            $ref: '#/components/schemas/contact_person_email'
          phone:
            $ref: '#/components/schemas/phone'
          mobile:
            $ref: '#/components/schemas/mobile'
          communication_preference:
            $ref: '#/components/schemas/communication_preference'
    contact_persons_associated_payload:
      description: Contact Persons associated with the transaction.
      type: array
      items:
        type: object
        properties:
          contact_person_id:
            $ref: '#/components/schemas/contact_person_id'
          communication_preference:
            $ref: '#/components/schemas/communication_preference'
    applied_filter:
      type: string
      example: Status.All
    page:
      type: integer
      example: 1
    per_page:
      type: integer
      example: 10
    report_name:
      type: string
      example: Recurring Invoices
    has_more_page:
      type: boolean
      example: false
    sort_order:
      type: string
      example: D
    sort_column:
      type: string
      description: Column used to sort the recurring invoices list.
      example: created_time
    exchange_rate:
      description: Exchange rate for the currency associated with the customer.
      type: string
      example: '5.5'
    rate:
      description: Rate of the line item.
      type: number
      format: double
      example: 0
    notes:
      description: A short note for the recurring invoice.
      type: string
      example: Offer for the referral
    terms:
      description: Terms & condition to be displayed in the recurring invoice.
      type: string
      example: ''
    data_type:
      description: Data type of the custom field.
      type: string
      example: text
    vat_treatment:
      description: (Optional) VAT treatment for the invoices. VAT treatment denotes the location of the customer, if the customer resides in UK then the VAT treatment is <code>uk</code>. If the customer is in an EU country & VAT registered, you are resides in Northen Ireland and selling Goods then his VAT treatment is <code>eu_vat_registered</code>, if he resides outside of the UK then his VAT treatment is <code>overseas</code> (For Pre Brexit, this can be split as <code>eu_vat_registered</code>, <code>eu_vat_not_registered</code> and <code>non_eu</code>).
      type: string
      example: overseas
      x-node_available_in:
        - uk
      x-node_unavailable_in: []
    tax_treatment:
      description: 'Choose whether the vat treatment for the contact falls under: <code>vat_registered</code>,<code>vat_not_registered</code>,<code>gcc_vat_not_registered</code>,<code>gcc_vat_registered</code>,<code>non_gcc</code>.</br><code>dz_vat_registered</code> and <code>dz_vat_not_registered</code> supported only for <b>UAE</b>.</br><code>home_country_mexico</code>,<code>border_region_mexico</code>,<code>non_mexico</code> supported only for <b>MX</b>. <br/><b>For Kenya Edition:</b> <code>vat_registered</code> ,<code>vat_not_registered</code> ,<code>non_kenya</code>(A business that is located outside Kenya).<br/><b>For SouthAfrica Edition:</b> <code>vat_registered</code>, <code>vat_not_registered</code>, <code>overseas</code>(A business that is located outside SouthAfrica).'
      type: string
      example: vat_registered
      x-node_available_in:
        - gcc
        - mx
        - ke
        - za
      x-node_unavailable_in: []
    is_reverse_charge_applied:
      description: (Required if customer tax treatment is <code>vat_registered</code>)<br/>Used to specify whether the transaction is applicable for Domestic Reverse Charge (DRC) or not.
      type: boolean
      example: true
      x-node_available_in:
        - za
      x-node_unavailable_in: []
    cfdi_usage:
      description: 'Choose CFDI Usage.</br>Allowed values: <code>acquisition_of_merchandise</code>, <code>return_discount_bonus</code>, <code>general_expense</code>, <code>buildings</code>, <code>furniture_office_equipment</code>, <code>transport_equipment</code>, <code>computer_equipmentdye_molds_tools</code>, <code>telephone_communication</code>, <code>satellite_communication</code>, <code>other_machinery_equipment</code>, <code>hospital_expense</code>, <code>medical_expense_disability</code>, <code>funeral_expense</code>, <code>donation</code>, <code>interest_mortage_loans</code>, <code>contribution_sar</code>, <code>medical_expense_insurance_pormium</code>, <code>school_transportation_expense</code>, <code>deposit_saving_account</code>, <code>payment_educational_service</code>, <code>no_tax_effect</code>, <code>payment</code>, <code>payroll</code>.'
      type: string
      example: acquisition_of_merchandise
      x-node_available_in:
        - mx
      x-node_unavailable_in: []
    allow_partial_payments:
      description: Choose <code>false</code> for PPU-Single Payments and <code>true</code> for PPD-Installment Payments
      type: boolean
      example: true
      x-node_available_in:
        - mx
      x-node_unavailable_in: []
    tax_treatment_code:
      description: Specify reason for using out of scope.</br>Supported values for UAE are <code>uae_same_tax_group</code>, <code>uae_reimbursed_expense</code> and <code>uae_others</code>.</br> Supported values for Bahrain are <code>bahrain_same_tax_group</code>, <code>bahrain_transfer_of_concern</code>, <code>bahrain_disbursement</code>, <code>bahrain_head_to_branch_transaction</code>, <code>bahrain_warranty_repair_services</code> and <code>bahrain_others</code>.</br>Supported values for Saudi Arabia are <code>ksa_pvt_health</code>, <code>ksa_pvt_edu</code>, <code>ksa_reimbursed_expense</code> and <code>ksa_house_sales</code>.
      type: string
      example: uae_others
      x-node_available_in:
        - gcc
      x-node_unavailable_in: []
    avatax_tax_code:
      description: A tax code is a unique label used to group items together.
      type: string
      example: ' '
    avatax_use_code:
      description: Used to group like customers for exemption purposes. It is a custom value that links customers to a tax rule. Select from Avalara [standard codes][1] or enter a custom code. Max-length [25]
      type: string
      x-node_available_in:
        - Avalara Integration
      x-node_unavailable_in: []
    avatax_exempt_no:
      description: Exemption certificate number of the customer. Max-length [25]
      type: string
      x-node_available_in:
        - Avalara Integration
      x-node_unavailable_in: []
    tax_authority_id:
      description: Unique ID of the tax authority. Tax authority depends on the location of the customer. For example, if the customer is located in NY, then the tax authority is NY tax authority.
      type: string
      example: '903000006345'
      x-node_available_in:
        - us
      x-node_unavailable_in: []
    tax_exemption_id:
      description: Unique ID of the tax exemption.
      type: string
      example: '903000006345'
      x-node_available_in:
        - in
        - us
        - au
        - ca
      x-node_unavailable_in: []
    tax_exemption_code:
      description: Unique code of the tax exemption.
      type: string
      example: GST FREE
      x-node_available_in:
        - in
        - us
        - au
        - ca
        - mx
      x-node_unavailable_in: []
    salesperson_name:
      description: Name of the sales person
      type: string
      example: ' '
      x-node_available_in:
        - us
        - au
        - ca
      x-node_unavailable_in: []
    tax_name:
      description: Unique name for tax.
      type: string
      example: Basic Tax
    tax_percentage:
      description: Percentage of tax
      type: string
      example: 10%
    tax_amount:
      description: Tax amount applied to the subscription.
      type: string
      example: '2.50'
    recurring_invoice_items:
      type: array
      items:
        type: object
        properties:
          item_id:
            $ref: '#/components/schemas/item_id'
          description:
            $ref: '#/components/schemas/description'
          quantity:
            $ref: '#/components/schemas/quantity'
          price:
            $ref: '#/components/schemas/price'
          item_total:
            $ref: '#/components/schemas/item_total'
          project_id:
            $ref: '#/components/schemas/project_id'
    invoices:
      type: array
      items:
        type: object
        properties:
          invoice_id:
            $ref: '#/components/schemas/invoice_id'
          invoice_number:
            $ref: '#/components/schemas/invoice_number'
          amount:
            $ref: '#/components/schemas/amount'
    custom_fields:
      type: array
      description: Custom fields associated with the recurring invoice.
      items:
        type: object
        properties:
          value:
            $ref: '#/components/schemas/value'
          label:
            $ref: '#/components/schemas/label'
          data_type:
            $ref: '#/components/schemas/data_type'
    address:
      description: Billing address for the invoice
      type: string
      example: 4900 Hopyard Rd, Suite 310
    city:
      description: City of the customer's billing address.
      type: string
      example: Pleasanton
    state:
      description: State of the customer's billing address.
      type: string
      example: CA
    zip:
      description: Zip code of the customer's billing address.
      type: string
      example: '94588'
    country:
      description: Country of the customer's billing address.
      type: string
      example: U.S.A
    fax:
      description: Customer's fax number.
      type: string
      example: +1-925-924-9600
    configured:
      description: Boolean check to see if a payment gateway ahs been configured
      type: boolean
      example: true
    additional_field1:
      description: 'Paypal payment method. Allowed Values: <code>standard</code> and <code>adaptive</code>'
      type: string
      example: standard
    payment_terms_label:
      description: Used to overridethe default payment terms label. Default value for 15 days is "Next 15 days".
      type: string
      example: Next 15 days
    payment_terms:
      description: 'Payment terms in days. E.g: 15,30,60. Invoice due date will be calculated based on this.'
      type: integer
      example: 0
    gateway_name:
      description: 'Name of the payment gateway associated with the invoice. E.g. paypal, stripe.Allowed Values: <code>paypal</code>, <code>authorize_net</code>, <code>payflow_pro</code>, <code>stripe</code>, <code>2checkout</code> and <code>braintree</code>'
      type: string
      example: paypal
    street2:
      type: string
      description: Additional street address information.
      example: McMillan Avenue
    billing_address:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/address'
        street2:
          $ref: '#/components/schemas/street2'
        city:
          $ref: '#/components/schemas/city'
        state:
          $ref: '#/components/schemas/state'
        zip:
          $ref: '#/components/schemas/zip'
        country:
          $ref: '#/components/schemas/country'
        fax:
          $ref: '#/components/schemas/fax'
    shipping_charge:
      description: Shipping charges applied to the invoice.
      type: number
      format: double
      example: 0
    adjustment:
      description: Adjustments made to the invoice.
      type: number
      format: double
      example: 0
    adjustment_description:
      description: 'Customize the adjustment description. E.g: Rounding off.'
      type: string
      example: Rounding off
    shipping_address:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/address'
        city:
          $ref: '#/components/schemas/city'
        state:
          $ref: '#/components/schemas/state'
        zip:
          $ref: '#/components/schemas/zip'
        country:
          $ref: '#/components/schemas/country'
        fax:
          $ref: '#/components/schemas/fax'
    payment_gateways:
      type: array
      description: List of payment gateways associated with the recurring invoice.
      items:
        type: object
        properties:
          configured:
            $ref: '#/components/schemas/configured'
          additional_field1:
            $ref: '#/components/schemas/additional_field1'
          gateway_name:
            $ref: '#/components/schemas/gateway_name'
    payment_options:
      type: object
      properties:
        payment_gateways:
          $ref: '#/components/schemas/payment_gateways'
    filter_by:
      description: 'Filter  Recurring invoices by any status or payment expected date.Allowed Values: <code> Status.All</code>, <code>Status.Active</code>, <code> Status.Stopped</code>, <code>Status.Expired</code>'
      type: string
      example: ' '
    header_name:
      description: Name of the item header
      type: string
      example: Electronic devices
    header_id:
      description: ID of the item header
      type: string
      example: 982000000000670
    search_text:
      description: Search invoices by invoice number or purchase order or customer name. Max-length [100]
      type: string
      example: ' '
    create-a-recurring-invoice-request:
      required:
        - recurrence_name
        - customer_id
        - recurrence_frequency
      type: object
      properties:
        recurrence_name:
          $ref: '#/components/schemas/recurrence_name'
        reference_number:
          $ref: '#/components/schemas/reference_number'
        customer_id:
          $ref: '#/components/schemas/customer_id'
        currency_id:
          $ref: '#/components/schemas/currency_id'
        contact_persons_associated:
          $ref: '#/components/schemas/contact_persons_associated_payload'
        place_of_supply:
          $ref: '#/components/schemas/place_of_supply'
        vat_treatment:
          $ref: '#/components/schemas/vat_treatment'
        gst_treatment:
          $ref: '#/components/schemas/gst_treatment'
        tax_treatment:
          $ref: '#/components/schemas/tax_treatment'
        is_reverse_charge_applied:
          $ref: '#/components/schemas/is_reverse_charge_applied'
        cfdi_usage:
          $ref: '#/components/schemas/cfdi_usage'
        allow_partial_payments:
          $ref: '#/components/schemas/allow_partial_payments'
        gst_no:
          $ref: '#/components/schemas/gst_no'
        start_date:
          $ref: '#/components/schemas/start_date'
        end_date:
          $ref: '#/components/schemas/end_date'
        recurrence_frequency:
          $ref: '#/components/schemas/recurrence_frequency'
        repeat_every:
          $ref: '#/components/schemas/repeat_every'
        location_id:
          $ref: '#/components/schemas/location_id'
        tags:
          $ref: '#/components/schemas/tags'
        line_items:
          description: Line items of an invoice.
          type: array
          items:
            type: object
            properties:
              line_item_id:
                $ref: '#/components/schemas/line_item_id'
              quantity:
                $ref: '#/components/schemas/quantity'
              name:
                $ref: '#/components/schemas/name'
              item_total:
                $ref: '#/components/schemas/item_total'
              product_type:
                $ref: '#/components/schemas/product_type'
              hsn_or_sac:
                $ref: '#/components/schemas/hsn_or_sac'
              sat_item_key_code:
                $ref: '#/components/schemas/sat_item_key_code'
              unitkey_code:
                $ref: '#/components/schemas/unitkey_code'
              tags:
                $ref: '#/components/schemas/tags'
              location_id:
                $ref: '#/components/schemas/location_id'
              tax_id:
                $ref: '#/components/schemas/tax_id'
              tds_tax_id:
                $ref: '#/components/schemas/tds_tax_id'
              tax_treatment_code:
                $ref: '#/components/schemas/tax_treatment_code'
              project_id:
                $ref: '#/components/schemas/project_id'
              header_name:
                $ref: '#/components/schemas/header_name'
        tax_id:
          $ref: '#/components/schemas/tax_id'
        custom_fields:
          $ref: '#/components/schemas/custom_fields'
        email:
          $ref: '#/components/schemas/email'
        billing_address:
          $ref: '#/components/schemas/billing_address'
        shipping_address:
          $ref: '#/components/schemas/shipping_address'
        avatax_use_code:
          $ref: '#/components/schemas/avatax_use_code'
        avatax_exempt_no:
          $ref: '#/components/schemas/avatax_exempt_no'
        template_id:
          $ref: '#/components/schemas/template_id'
        payment_terms:
          $ref: '#/components/schemas/payment_terms'
        payment_terms_label:
          $ref: '#/components/schemas/payment_terms_label'
        tax_authority_id:
          $ref: '#/components/schemas/tax_authority_id'
        tax_exemption_id:
          $ref: '#/components/schemas/tax_exemption_id'
        exchange_rate:
          $ref: '#/components/schemas/exchange_rate'
        payment_options:
          $ref: '#/components/schemas/payment_options'
        discount:
          $ref: '#/components/schemas/discount'
        is_discount_before_tax:
          $ref: '#/components/schemas/is_discount_before_tax'
        discount_type:
          $ref: '#/components/schemas/discount_type'
        is_inclusive_tax:
          $ref: '#/components/schemas/is_inclusive_tax'
        item_id:
          $ref: '#/components/schemas/item_id'
        name:
          $ref: '#/components/schemas/name'
        description:
          $ref: '#/components/schemas/description'
        rate:
          $ref: '#/components/schemas/rate'
        quantity:
          $ref: '#/components/schemas/quantity'
        unit:
          $ref: '#/components/schemas/unit'
        avatax_tax_code:
          $ref: '#/components/schemas/avatax_tax_code'
        salesperson_name:
          $ref: '#/components/schemas/salesperson_name'
        shipping_charge:
          $ref: '#/components/schemas/shipping_charge'
        adjustment:
          $ref: '#/components/schemas/adjustment'
        adjustment_description:
          $ref: '#/components/schemas/adjustment_description'
    create-a-recurring-invoice-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: The recurring invoice has been created.
          readOnly: true
        recurring_invoice:
          $ref: '#/components/schemas/recurring_invoice-response'
        page_context:
          type: object
          properties:
            page:
              $ref: '#/components/schemas/page'
            per_page:
              $ref: '#/components/schemas/per_page'
            has_more_page:
              $ref: '#/components/schemas/has_more_page'
            report_name:
              $ref: '#/components/schemas/report_name'
            applied_filter:
              $ref: '#/components/schemas/applied_filter'
            sort_column:
              $ref: '#/components/schemas/sort_column'
            sort_order:
              $ref: '#/components/schemas/sort_order'
    list-all-recurring-invoice-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Details of a recurring invoice is displayed successfully.
          readOnly: true
        recurring_invoices:
          type: array
          items:
            type: object
            properties:
              recurring_invoice_id:
                $ref: '#/components/schemas/recurring_invoice_id'
              recurrence_name:
                $ref: '#/components/schemas/recurrence_name'
              customer_name:
                $ref: '#/components/schemas/customer_name'
              customer_id:
                $ref: '#/components/schemas/customer_id'
              currency_id:
                $ref: '#/components/schemas/currency_id'
              currency_code:
                $ref: '#/components/schemas/currency_code'
              start_date:
                $ref: '#/components/schemas/start_date'
              end_date:
                $ref: '#/components/schemas/end_date'
              last_sent_date:
                $ref: '#/components/schemas/last_sent_date'
              next_invoice_date:
                $ref: '#/components/schemas/next_invoice_date'
              custom_fields:
                $ref: '#/components/schemas/custom_fields'
              billing_address:
                $ref: '#/components/schemas/billing_address'
              shipping_address:
                $ref: '#/components/schemas/shipping_address'
              tags:
                $ref: '#/components/schemas/tags'
        page_context:
          type: object
          properties:
            page:
              $ref: '#/components/schemas/page'
            per_page:
              $ref: '#/components/schemas/per_page'
            has_more_page:
              $ref: '#/components/schemas/has_more_page'
            report_name:
              $ref: '#/components/schemas/report_name'
            applied_filter:
              $ref: '#/components/schemas/applied_filter'
            sort_column:
              $ref: '#/components/schemas/sort_column'
            sort_order:
              $ref: '#/components/schemas/sort_order'
    update-recurring-invoice-request:
      required:
        - recurrence_name
        - customer_id
        - recurrence_frequency
      type: object
      properties:
        recurrence_name:
          $ref: '#/components/schemas/recurrence_name'
        reference_number:
          $ref: '#/components/schemas/reference_number'
        customer_id:
          $ref: '#/components/schemas/customer_id'
        currency_id:
          $ref: '#/components/schemas/currency_id'
        contact_persons_associated:
          $ref: '#/components/schemas/contact_persons_associated_payload'
        start_date:
          $ref: '#/components/schemas/start_date'
        end_date:
          $ref: '#/components/schemas/end_date'
        recurrence_frequency:
          $ref: '#/components/schemas/recurrence_frequency'
        repeat_every:
          $ref: '#/components/schemas/repeat_every'
        place_of_supply:
          $ref: '#/components/schemas/place_of_supply'
        vat_treatment:
          $ref: '#/components/schemas/vat_treatment'
        gst_treatment:
          $ref: '#/components/schemas/gst_treatment'
        tax_treatment:
          $ref: '#/components/schemas/tax_treatment'
        is_reverse_charge_applied:
          $ref: '#/components/schemas/is_reverse_charge_applied'
        cfdi_usage:
          $ref: '#/components/schemas/cfdi_usage'
        allow_partial_payments:
          $ref: '#/components/schemas/allow_partial_payments'
        gst_no:
          $ref: '#/components/schemas/gst_no'
        location_id:
          $ref: '#/components/schemas/location_id'
        tags:
          $ref: '#/components/schemas/tags'
        line_items:
          description: Line items of an invoice.
          type: array
          items:
            type: object
            properties:
              item_id:
                $ref: '#/components/schemas/item_id'
              name:
                $ref: '#/components/schemas/name'
              description:
                $ref: '#/components/schemas/description'
              rate:
                $ref: '#/components/schemas/rate'
              quantity:
                $ref: '#/components/schemas/quantity'
              discount:
                $ref: '#/components/schemas/discount'
              tags:
                $ref: '#/components/schemas/tags'
              tax_id:
                $ref: '#/components/schemas/tax_id'
              tds_tax_id:
                $ref: '#/components/schemas/tds_tax_id'
              tax_exemption_id:
                $ref: '#/components/schemas/tax_exemption_id'
              tax_treatment_code:
                $ref: '#/components/schemas/tax_treatment_code'
              avatax_tax_code:
                $ref: '#/components/schemas/avatax_tax_code'
              avatax_use_code:
                $ref: '#/components/schemas/avatax_use_code'
              item_total:
                $ref: '#/components/schemas/item_total'
              product_type:
                $ref: '#/components/schemas/product_type'
              hsn_or_sac:
                $ref: '#/components/schemas/hsn_or_sac'
              sat_item_key_code:
                $ref: '#/components/schemas/sat_item_key_code'
              unitkey_code:
                $ref: '#/components/schemas/unitkey_code'
              location_id:
                $ref: '#/components/schemas/location_id'
              project_id:
                $ref: '#/components/schemas/project_id'
              header_name:
                $ref: '#/components/schemas/header_name'
              header_id:
                $ref: '#/components/schemas/header_id'
        email:
          $ref: '#/components/schemas/email'
        custom_fields:
          $ref: '#/components/schemas/custom_fields'
        tax_id:
          $ref: '#/components/schemas/tax_id'
        tax_authority_id:
          $ref: '#/components/schemas/tax_authority_id'
        payment_options:
          $ref: '#/components/schemas/payment_options'
        tax_exemption_id:
          $ref: '#/components/schemas/tax_exemption_id'
        avatax_use_code:
          $ref: '#/components/schemas/avatax_use_code'
        avatax_exempt_no:
          $ref: '#/components/schemas/avatax_exempt_no'
    update-recurring-invoice-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: success
          readOnly: true
        recurring_invoice:
          type: object
          properties:
            recurring_invoice_id:
              $ref: '#/components/schemas/recurring_invoice_id'
            recurrence_name:
              $ref: '#/components/schemas/recurrence_name'
            reference_number:
              $ref: '#/components/schemas/reference_number'
            customer_name:
              $ref: '#/components/schemas/customer_name'
            contact_persons_associated:
              $ref: '#/components/schemas/contact_persons_associated'
            is_pre_gst:
              $ref: '#/components/schemas/is_pre_gst'
            gst_no:
              $ref: '#/components/schemas/gst_no'
            gst_treatment:
              $ref: '#/components/schemas/gst_treatment'
            is_reverse_charge_applied:
              $ref: '#/components/schemas/is_reverse_charge_applied'
            tax_treatment:
              $ref: '#/components/schemas/tax_treatment'
            cfdi_usage:
              $ref: '#/components/schemas/cfdi_usage'
            vat_treatment:
              $ref: '#/components/schemas/vat_treatment'
            place_of_supply:
              $ref: '#/components/schemas/place_of_supply'
            customer_id:
              $ref: '#/components/schemas/customer_id'
            currency_id:
              $ref: '#/components/schemas/currency_id'
            currency_code:
              $ref: '#/components/schemas/currency_code'
            start_date:
              $ref: '#/components/schemas/start_date'
            end_date:
              $ref: '#/components/schemas/end_date'
            last_sent_date:
              $ref: '#/components/schemas/last_sent_date'
            next_invoice_date:
              $ref: '#/components/schemas/next_invoice_date'
            location_id:
              $ref: '#/components/schemas/location_id'
            location_name:
              $ref: '#/components/schemas/location_name'
            tags:
              $ref: '#/components/schemas/tags_response'
            line_items:
              description: Line items of an invoice.
              type: array
              items:
                type: object
                properties:
                  line_item_id:
                    $ref: '#/components/schemas/line_item_id'
                  quantity:
                    $ref: '#/components/schemas/quantity'
                  name:
                    $ref: '#/components/schemas/name'
                  item_total:
                    $ref: '#/components/schemas/item_total'
                  sku:
                    $ref: '#/components/schemas/sku'
                  product_type:
                    $ref: '#/components/schemas/product_type'
                  location_id:
                    $ref: '#/components/schemas/location_id'
                  location_name:
                    $ref: '#/components/schemas/location_name'
                  tags:
                    $ref: '#/components/schemas/tags_response'
                  tax_id:
                    $ref: '#/components/schemas/tax_id'
                  tax_treatment_code:
                    $ref: '#/components/schemas/tax_treatment_code'
                  project_id:
                    $ref: '#/components/schemas/project_id'
                  project_name:
                    $ref: '#/components/schemas/project_name'
                  header_name:
                    $ref: '#/components/schemas/header_name'
                  header_id:
                    $ref: '#/components/schemas/header_id'
            billing_address:
              $ref: '#/components/schemas/billing_address'
            shipping_address:
              $ref: '#/components/schemas/shipping_address'
            payment_options:
              $ref: '#/components/schemas/payment_options'
            avatax_exempt_no:
              $ref: '#/components/schemas/avatax_exempt_no'
            avatax_use_code:
              $ref: '#/components/schemas/avatax_use_code'
    get-a-recurring-invoice-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Details of a recurring invoice is displayed successfully.
          readOnly: true
        recurring_invoice:
          type: object
          properties:
            recurring_invoice_id:
              $ref: '#/components/schemas/recurring_invoice_id'
            recurrence_name:
              $ref: '#/components/schemas/recurrence_name'
            reference_number:
              $ref: '#/components/schemas/reference_number'
            customer_name:
              $ref: '#/components/schemas/customer_name'
            customer_id:
              $ref: '#/components/schemas/customer_id'
            company_name:
              $ref: '#/components/schemas/company_name'
            contact_persons_associated:
              $ref: '#/components/schemas/contact_persons_associated'
            is_pre_gst:
              $ref: '#/components/schemas/is_pre_gst'
            gst_no:
              $ref: '#/components/schemas/gst_no'
            gst_treatment:
              $ref: '#/components/schemas/gst_treatment'
            tax_treatment:
              $ref: '#/components/schemas/tax_treatment'
            is_reverse_charge_applied:
              $ref: '#/components/schemas/is_reverse_charge_applied'
            cfdi_usage:
              $ref: '#/components/schemas/cfdi_usage'
            vat_treatment:
              $ref: '#/components/schemas/vat_treatment'
            place_of_supply:
              $ref: '#/components/schemas/place_of_supply'
            customer_email:
              $ref: '#/components/schemas/customer_email'
            customer_mobile_phone:
              $ref: '#/components/schemas/customer_mobile_phone'
            customer_phone:
              $ref: '#/components/schemas/customer_phone'
            photo_url:
              $ref: '#/components/schemas/photo_url'
            currency_id:
              $ref: '#/components/schemas/currency_id'
            currency_code:
              $ref: '#/components/schemas/currency_code'
            start_date:
              $ref: '#/components/schemas/start_date'
            end_date:
              $ref: '#/components/schemas/end_date'
            last_sent_date:
              $ref: '#/components/schemas/last_sent_date'
            next_invoice_date:
              $ref: '#/components/schemas/next_invoice_date'
            location_id:
              $ref: '#/components/schemas/location_id'
            location_name:
              $ref: '#/components/schemas/location_name'
            tags:
              $ref: '#/components/schemas/tags_response'
            line_items:
              description: Line items of an invoice.
              type: array
              items:
                type: object
                properties:
                  line_item_id:
                    $ref: '#/components/schemas/line_item_id'
                  quantity:
                    $ref: '#/components/schemas/quantity'
                  name:
                    $ref: '#/components/schemas/name'
                  item_total:
                    $ref: '#/components/schemas/item_total'
                  sku:
                    $ref: '#/components/schemas/sku'
                  product_type:
                    $ref: '#/components/schemas/product_type'
                  location_id:
                    $ref: '#/components/schemas/location_id'
                  location_name:
                    $ref: '#/components/schemas/location_name'
                  tags:
                    $ref: '#/components/schemas/tags_response'
                  tax_id:
                    $ref: '#/components/schemas/tax_id'
                  tax_treatment_code:
                    $ref: '#/components/schemas/tax_treatment_code'
                  project_id:
                    $ref: '#/components/schemas/project_id'
                  project_name:
                    $ref: '#/components/schemas/project_name'
                  header_name:
                    $ref: '#/components/schemas/header_name'
                  header_id:
                    $ref: '#/components/schemas/header_id'
            paid_invoices_total:
              $ref: '#/components/schemas/paid_invoices_total'
            unpaid_invoices_balance:
              $ref: '#/components/schemas/unpaid_invoices_balance'
            billing_address:
              $ref: '#/components/schemas/billing_address'
            shipping_address:
              $ref: '#/components/schemas/shipping_address'
            payment_options:
              $ref: '#/components/schemas/payment_options'
        page_context:
          type: object
          properties:
            page:
              $ref: '#/components/schemas/page'
            per_page:
              $ref: '#/components/schemas/per_page'
            has_more_page:
              $ref: '#/components/schemas/has_more_page'
            report_name:
              $ref: '#/components/schemas/report_name'
            applied_filter:
              $ref: '#/components/schemas/applied_filter'
            sort_column:
              $ref: '#/components/schemas/sort_column'
            sort_order:
              $ref: '#/components/schemas/sort_order'
    delete-a-recurring-invoice-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: The recurring invoice is deleted successfully.
          readOnly: true
    stop-a-recurring-invoice-request:
      type: object
      properties:
        recurring_invoice_id:
          description: Unique ID of the recurring invoice generated by the server.
          type: string
          example: '90300000072369'
    stop-a-recurring-invoice-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: The recurring invoice has been stopped.
          readOnly: true
    resume-a-recurring-invoice-request:
      type: object
      properties:
        recurring_invoice_id:
          description: Unique ID of the recurring invoice generated by the server.
          type: string
          example: '90300000072369'
    resume-a-recurring-invoice-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: The recurring invoice has been resumed.
          readOnly: true
    update-recurring-invoice-template-request:
      type: object
      properties:
        recurring_invoice_id:
          description: Unique ID of the recurring invoice generated by the server.
          type: string
          example: '90300000072369'
        template_id:
          description: Unique ID of the recurring invoice template.
          type: string
          example: '90300043563547'
    update-recurring-invoice-template-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: The template of the recurring invoice has been updated.
          readOnly: true
    list-recurring-invoice-history-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: The complete history and comments of a recurring invoice are displayed successfully.
          readOnly: true
        comments:
          description: The details of the comments
          type: array
          items:
            type: object
            properties:
              comment_id:
                $ref: '#/components/schemas/comment_id'
              recurring_invoice_id:
                $ref: '#/components/schemas/recurring_invoice_id'
              comment_description:
                $ref: '#/components/schemas/comment_description'
              commented_by_id:
                $ref: '#/components/schemas/commented_by_id'
              commented_by:
                $ref: '#/components/schemas/commented_by'
              comment_type:
                $ref: '#/components/schemas/comment_type'
              operation_type:
                $ref: '#/components/schemas/operation_type'
              date:
                $ref: '#/components/schemas/date'
              date_description:
                $ref: '#/components/schemas/date_description'
              time:
                $ref: '#/components/schemas/time'
              transaction_id:
                $ref: '#/components/schemas/transaction_id'
              transaction_type:
                $ref: '#/components/schemas/transaction_type'
    tag_id:
      description: Tag's ID
      type: string
      example: '460000000000567'
    tag_name:
      description: Tag's Name
      type: string
      example: Business Unit
    tag_option_id:
      description: Tag Option's ID
      type: string
      example: '460000000014044'
    tag_option_name:
      description: Tag Option's Name
      type: string
      example: Sales
    is_tag_mandatory:
      description: Used to check if the tag is mandatory
      type: boolean
      example: false
    tags:
      description: Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis.
      type: array
      items:
        type: object
        properties:
          tag_id:
            $ref: '#/components/schemas/tag_id'
          tag_option_id:
            $ref: '#/components/schemas/tag_option_id'
    tags_response:
      description: Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis.
      type: array
      items:
        type: object
        properties:
          tag_id:
            $ref: '#/components/schemas/tag_id'
          tag_name:
            $ref: '#/components/schemas/tag_name'
          tag_option_id:
            $ref: '#/components/schemas/tag_option_id'
          tag_option_name:
            $ref: '#/components/schemas/tag_option_name'
          is_tag_mandatory:
            $ref: '#/components/schemas/is_tag_mandatory'
  securitySchemes:
    Zoho_Auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://accounts.zoho.com/oauth/v2/auth
          scopes:
            ZohoBooks.invoices.CREATE: Create Invoices
            ZohoBooks.invoices.UPDATE: Update Invoices
            ZohoBooks.invoices.READ: Read Invoices
            ZohoBooks.invoices.DELETE: Delete Invoices
