{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Retainer Invoices",
  "description": "A lot of businesses collect an advance payment (or retainer) for products sold or services rendered by them. This amount collected will not be an income but a liability to the company. The revenue is earned only when the product is delivered or the service is completed, if not delivered or completed the advance payment made will be returned to the customer.",
  "definitions": {
    "gendoc-attributes-schema": {
      "$ref": "#/components/schemas/retainerinvoice-response"
    },
    "retainerinvoice-response": {
      "type": "object",
      "properties": {
        "retainerinvoice_id": {
          "$ref": "#/components/schemas/retainerinvoice_id"
        },
        "retainerinvoice_number": {
          "$ref": "#/components/schemas/retainerinvoice_number"
        },
        "date": {
          "$ref": "#/components/schemas/date"
        },
        "status": {
          "$ref": "#/components/schemas/status"
        },
        "is_pre_gst": {
          "$ref": "#/components/schemas/is_pre_gst"
        },
        "place_of_supply": {
          "$ref": "#/components/schemas/place_of_supply"
        },
        "project_id": {
          "$ref": "#/components/schemas/project_id"
        },
        "project_name": {
          "$ref": "#/components/schemas/project_name"
        },
        "last_payment_date": {
          "$ref": "#/components/schemas/last_payment_date"
        },
        "reference_number": {
          "$ref": "#/components/schemas/reference_number"
        },
        "customer_id": {
          "$ref": "#/components/schemas/customer_id"
        },
        "customer_name": {
          "$ref": "#/components/schemas/customer_name"
        },
        "contact_persons_associated": {
          "$ref": "#/components/schemas/contact_persons_associated"
        },
        "currency_id": {
          "$ref": "#/components/schemas/currency_id"
        },
        "currency_code": {
          "$ref": "#/components/schemas/currency_code"
        },
        "currency_symbol": {
          "$ref": "#/components/schemas/currency_symbol"
        },
        "exchange_rate": {
          "$ref": "#/components/schemas/exchange_rate"
        },
        "is_viewed_by_client": {
          "$ref": "#/components/schemas/is_viewed_by_client"
        },
        "client_viewed_time": {
          "$ref": "#/components/schemas/client_viewed_time"
        },
        "is_inclusive_tax": {
          "$ref": "#/components/schemas/is_inclusive_tax"
        },
        "location_id": {
          "$ref": "#/components/schemas/location_id"
        },
        "location_name": {
          "$ref": "#/components/schemas/location_name"
        },
        "line_items": {
          "description": "Line items of a retainer invoice.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "line_item_id": {
                "$ref": "#/components/schemas/line_item_id"
              },
              "description": {
                "$ref": "#/components/schemas/description"
              },
              "item_order": {
                "$ref": "#/components/schemas/item_order"
              },
              "rate": {
                "$ref": "#/components/schemas/rate"
              },
              "bcy_rate": {
                "$ref": "#/components/schemas/bcy_rate"
              },
              "tax_id": {
                "$ref": "#/components/schemas/tax_id"
              },
              "tax_name": {
                "$ref": "#/components/schemas/tax_name"
              },
              "tax_type": {
                "$ref": "#/components/schemas/tax_type"
              },
              "tax_percentage": {
                "$ref": "#/components/schemas/tax_percentage"
              },
              "item_total": {
                "$ref": "#/components/schemas/item_total"
              },
              "location_id": {
                "$ref": "#/components/schemas/location_id"
              },
              "location_name": {
                "$ref": "#/components/schemas/location_name"
              }
            }
          }
        },
        "sub_total": {
          "$ref": "#/components/schemas/sub_total"
        },
        "total": {
          "$ref": "#/components/schemas/total"
        },
        "taxes": {
          "$ref": "#/components/schemas/taxes"
        },
        "payment_made": {
          "$ref": "#/components/schemas/payment_made"
        },
        "payment_drawn": {
          "$ref": "#/components/schemas/payment_drawn"
        },
        "balance": {
          "$ref": "#/components/schemas/balance"
        },
        "allow_partial_payments": {
          "$ref": "#/components/schemas/allow_partial_payments"
        },
        "price_precision": {
          "$ref": "#/components/schemas/price_precision"
        },
        "payment_options": {
          "$ref": "#/components/schemas/payment_options"
        },
        "is_emailed": {
          "$ref": "#/components/schemas/is_emailed"
        },
        "documents": {
          "$ref": "#/components/schemas/documents"
        },
        "billing_address": {
          "$ref": "#/components/schemas/billing_address"
        },
        "shipping_address": {
          "$ref": "#/components/schemas/shipping_address"
        },
        "notes": {
          "$ref": "#/components/schemas/notes"
        },
        "terms": {
          "$ref": "#/components/schemas/terms"
        },
        "custom_fields": {
          "$ref": "#/components/schemas/custom_fields"
        },
        "template_id": {
          "$ref": "#/components/schemas/template_id"
        },
        "template_name": {
          "$ref": "#/components/schemas/template_name"
        },
        "page_width": {
          "$ref": "#/components/schemas/page_width"
        },
        "page_height": {
          "$ref": "#/components/schemas/page_height"
        },
        "orientation": {
          "$ref": "#/components/schemas/orientation"
        },
        "template_type": {
          "$ref": "#/components/schemas/template_type"
        },
        "created_time": {
          "$ref": "#/components/schemas/created_time"
        },
        "last_modified_time": {
          "$ref": "#/components/schemas/last_modified_time"
        },
        "created_by_id": {
          "$ref": "#/components/schemas/created_by_id"
        },
        "attachment_name": {
          "$ref": "#/components/schemas/attachment_name"
        },
        "can_send_in_mail": {
          "$ref": "#/components/schemas/can_send_in_mail"
        }
      }
    },
    "page": {
      "description": "Number of pages",
      "type": "integer",
      "example": 1
    },
    "per_page": {
      "description": "Per page values",
      "type": "integer",
      "example": 200
    },
    "report_name": {
      "description": "The report name",
      "type": "string",
      "example": "Retainer Invoices"
    },
    "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)",
      "type": "string",
      "example": "TN",
      "x-node_available_in": [
        "in"
      ],
      "x-node_unavailable_in": []
    },
    "is_pre_gst": {
      "description": "Applicable for transactions that fall before july 1, 2017",
      "type": "string",
      "example": false
    },
    "project_id": {
      "description": "ID of the project",
      "type": "string",
      "example": 982000000567154
    },
    "project_name": {
      "description": "Name of the project",
      "type": "string"
    },
    "has_more_page": {
      "description": "Check if has more pages",
      "type": "boolean",
      "example": false
    },
    "sort_order": {
      "description": "The order for sorting",
      "type": "string",
      "example": "D"
    },
    "sort_column": {
      "description": "Sort retainer invoices.Allowed Values: <code>customer_name</code>, <code>retainer invoice_number</code>, <code>date</code>, <code> due_date</code>, <code>total</code>, <code>balance</code> and  <code>created_time</code>",
      "type": "string",
      "example": "created_time"
    },
    "applied_filter": {
      "description": "The filer applied for sorting",
      "type": "string",
      "example": "Status.All"
    },
    "retainerinvoice_id": {
      "description": "ID of the retainerinvoice",
      "type": "string",
      "example": 982000000567114
    },
    "retainerinvoice_number": {
      "description": "number of the retainer invoice.Variants: <code>retainerinvoice_number_startswith</code> and <code>retainerinvoice_number_contains</code>. Max-length [100]",
      "type": "string",
      "example": "RET-00003"
    },
    "customer_name": {
      "description": "The name of the customer. Max-length [100]",
      "type": "string",
      "example": "Bowman & Co"
    },
    "customer_id": {
      "description": "ID of the customer the retainer invoice has to be created.",
      "type": "string",
      "example": 982000000567001
    },
    "status": {
      "description": "retainer invoice status.Allowed Values: <code>sent</code>, <code>draft</code>, <code>overdue</code>, <code>paid</code>, <code>void</code>, <code>unpaid</code>, <code>partially_paid</code> and <code>viewed</code>",
      "type": "string",
      "example": "draft"
    },
    "reference_number": {
      "description": "The reference number of the retainer invoice. Max-length [100]",
      "type": "string",
      "example": " "
    },
    "date": {
      "description": "The date of creation of the retainer invoice.",
      "type": "string",
      "example": "2013-11-17"
    },
    "project_or_estimate_name": {
      "type": "string",
      "example": "new project"
    },
    "currency_id": {
      "description": "The currenct id of the currency",
      "type": "string",
      "example": 982000000000190
    },
    "currency_code": {
      "description": "The currency code in which the retainer invoice is created.",
      "type": "string",
      "example": "USD"
    },
    "currency_symbol": {
      "description": "The currency symbol in which the retainer invoice is created.",
      "type": "string",
      "example": "USD"
    },
    "total": {
      "description": "The total amount to be paid",
      "type": "string",
      "example": 40.6
    },
    "balance": {
      "description": "The unpaid amount",
      "type": "string",
      "example": 40.6
    },
    "created_time": {
      "description": "The time of creation of the retainer invoice",
      "type": "string",
      "example": "2013-11-18T02:31:51-0800"
    },
    "last_modified_time": {
      "description": "The time of last modification of the retainer invoice",
      "type": "string",
      "example": "2013-11-18T02:31:51-0800"
    },
    "is_emailed": {
      "description": "Boolean check to if the email was sent",
      "type": "string",
      "example": false
    },
    "last_payment_date": {
      "description": "The last payment date of the retainer invoice",
      "type": "string",
      "example": " "
    },
    "has_attachment": {
      "description": "Boolean retainer invoice has attachment",
      "type": "boolean",
      "example": true
    },
    "is_viewed_by_client": {
      "description": "Boolean is retainer invoice viewed by client in client portal.",
      "type": "boolean",
      "example": true
    },
    "client_viewed_time": {
      "description": "client viewed time for retainer invoice in client portal.",
      "type": "boolean",
      "example": true
    },
    "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"
    },
    "email": {
      "description": "contact's email id. Maximum length [100]",
      "type": "string",
      "example": "willsmith@bowmanfurniture.com"
    },
    "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": "John"
    },
    "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 retainer invoice.",
      "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 retainer invoice.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "contact_person_id": {
            "$ref": "#/components/schemas/contact_person_id"
          },
          "communication_preference": {
            "$ref": "#/components/schemas/communication_preference"
          }
        }
      }
    },
    "notes": {
      "description": "The notes added below expressing gratitude or for conveying some information.",
      "type": "string",
      "example": "Looking forward for your business."
    },
    "terms": {
      "description": "The terms added below expressing gratitude or for conveying some information.",
      "type": "string",
      "example": "Terms & Conditions apply"
    },
    "location_id": {
      "description": "Location ID",
      "type": "string",
      "example": "460000000038080"
    },
    "location_name": {
      "description": "Name of the location.",
      "type": "string"
    },
    "line_items": {
      "description": "Line items of a retainer invoice.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "description": {
      "description": "The description of the line items. Max-length [2000]",
      "type": "string",
      "example": "500GB, USB 2.0 interface 1400 rpm, protective hard case."
    },
    "item_order": {
      "description": "The order of the line item_order",
      "type": "integer",
      "example": 1
    },
    "rate": {
      "description": "Rate of the line item.",
      "type": "number",
      "format": "double",
      "example": 120
    },
    "bcy_rate": {
      "description": "base currency rate",
      "type": "number",
      "format": "float",
      "example": 120
    },
    "template_id": {
      "description": "ID of the pdf template associated with the retainer invoice.",
      "type": "string",
      "example": 982000000000143
    },
    "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"
    },
    "gateway_name": {
      "description": "Name of the payment gateway associated with the retainer 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"
    },
    "payment_gateways": {
      "description": "Online payment gateways through which payment can be made.",
      "type": "array",
      "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": {
      "description": "Payment options for the retainer invoice, online payment gateways and bank accounts. Will be displayed in the pdf.",
      "type": "object",
      "properties": {
        "payment_gateways": {
          "$ref": "#/components/schemas/payment_gateways"
        }
      }
    },
    "show_on_pdf": {
      "description": "Boolean value to check if the custom field is to be dispplayed on the pdf.",
      "type": "boolean",
      "example": false
    },
    "value": {
      "type": "string",
      "description": "The value of the custom field",
      "example": "value1"
    },
    "label": {
      "description": "The label of the custom field.",
      "type": "string",
      "example": "Delivery Date"
    },
    "customfield_id": {
      "type": "string",
      "description": "Unique ID of the custom field."
    },
    "custom_fields": {
      "description": "Custom fields for a retainer invoice.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "customfield_id": {
            "$ref": "#/components/schemas/customfield_id"
          },
          "show_on_pdf": {
            "$ref": "#/components/schemas/show_on_pdf"
          },
          "value": {
            "$ref": "#/components/schemas/value"
          },
          "label": {
            "$ref": "#/components/schemas/label"
          }
        }
      }
    },
    "exchange_rate": {
      "description": "Exchange rate of the currency.",
      "type": "number",
      "format": "float",
      "example": 1
    },
    "is_inclusive_tax": {
      "type": "boolean",
      "example": false
    },
    "sub_total": {
      "description": "The sub total of the all items",
      "type": "number",
      "format": "float",
      "example": 153
    },
    "taxes": {
      "description": "List of the taxes levied",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tax_name": {
            "$ref": "#/components/schemas/tax_name"
          },
          "tax_amount": {
            "$ref": "#/components/schemas/tax_amount"
          }
        }
      }
    },
    "payment_made": {
      "description": "The amount paid",
      "type": "number",
      "format": "float",
      "example": 26.91
    },
    "payment_drawn": {
      "description": "The amount drawn",
      "type": "number",
      "format": "float",
      "example": 26.91
    },
    "allow_partial_payments": {
      "description": "Boolean to check if partial payments are allowed for the contact",
      "type": "boolean",
      "example": true
    },
    "price_precision": {
      "description": "The precision value on the price",
      "type": "integer",
      "example": 2
    },
    "documents": {
      "description": "documents attached to the retainer invoice",
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": []
    },
    "address": {
      "type": "string",
      "example": "Suite 125, McMillan Avenue"
    },
    "city": {
      "type": "string",
      "example": "San Francisco"
    },
    "state": {
      "type": "string",
      "example": "CA"
    },
    "zip": {
      "type": "string",
      "example": 94134
    },
    "country": {
      "type": "string",
      "example": "U.S.A"
    },
    "fax": {
      "type": "string",
      "example": "+86-10-82637827"
    },
    "street2": {
      "type": "string",
      "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_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"
        }
      }
    },
    "template_name": {
      "type": "string",
      "example": "Service - Classic"
    },
    "page_width": {
      "type": "string",
      "example": "8.27in"
    },
    "page_height": {
      "type": "string",
      "example": "11.69in"
    },
    "orientation": {
      "type": "string",
      "example": "portrait"
    },
    "template_type": {
      "description": "The type of template type",
      "type": "string",
      "example": "classic"
    },
    "created_by_id": {
      "type": "string",
      "example": 14909000000072000
    },
    "attachment_name": {
      "type": "string",
      "example": "new file"
    },
    "can_send_in_mail": {
      "type": "boolean",
      "description": "Indicates whether the retainer invoice can be sent in mail",
      "example": true
    },
    "line_item_id": {
      "description": "The line item id",
      "type": "string",
      "example": 982000000567021
    },
    "item_total": {
      "description": "The total amount of the line items",
      "type": "number",
      "format": "float",
      "example": 120
    },
    "tax_percentage": {
      "description": "The  percentage of tax levied",
      "type": "number",
      "format": "float",
      "example": 12.5
    },
    "tax_id": {
      "description": "ID of the tax or tax group applied to the estimate",
      "type": "string",
      "example": 982000000557028
    },
    "tax_name": {
      "description": "The name of the tax",
      "type": "string",
      "example": "VAT"
    },
    "tax_amount": {
      "description": "The amount of the tax levied",
      "type": "number",
      "format": "float",
      "example": 19.13
    },
    "tax_type": {
      "description": "The type of the tax",
      "type": "string",
      "example": "tax"
    },
    "cc_mail_ids": {
      "description": "Array of email address of the recipients to be cced.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "peterparker@bowmanfurniture.com"
      ]
    },
    "to_mail_ids": {
      "description": "Array of email address of the recipients.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "willsmith@bowmanfurniture.com"
      ]
    },
    "subject": {
      "description": "The subject of the mail",
      "type": "string",
      "example": "Retainer Invoice from Zillium Inc (Retainer Invoice#: RET-00001)"
    },
    "send_customer_statement": {
      "description": "Send customer statement pdf a with email.",
      "type": "boolean",
      "example": " "
    },
    "send_attachment": {
      "description": "Send the retainer invoice attachment a with the email.",
      "type": "boolean",
      "example": " "
    },
    "attachment": {
      "description": "The file to be attached. It has to be sent in multipart/formdata",
      "type": "string",
      "format": "binary"
    },
    "send_from_org_email_id": {
      "description": "Boolean to trigger the email from the organization's email address",
      "type": "boolean",
      "example": false
    },
    "body": {
      "description": "The body of the mail",
      "type": "string",
      "example": "Dear Customer,         <br><br><br><br>Thanks for your business.         <br><br><br><br>The retainer invoice RET-00001 is attached with this email.<br><br>Here's an overview of the invoice for your reference.         <br><br><br><br>Invoice Overview:         <br><br>Invoice  : INV-00001         <br><br>Date : 05 Aug 2013         <br><br>Amount : $541.82         <br><br><br><br>It was great working with you. Looking forward to working with you again.<br><br><br>\\nRegards<br>\\nZillium Inc<br>\\n\","
    },
    "email_template_id": {
      "description": "Get the email content based on a specific email template. If this param is not inputted, then the content will be based on the email template associated with the customer. If no template is associated with the customer, then default template will be used.",
      "type": "string"
    },
    "gateways_configured": {
      "type": "boolean",
      "example": true
    },
    "deprecated_placeholders_used": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": []
    },
    "error_list": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": []
    },
    "file_name": {
      "type": "string",
      "example": "RET-00001.pdf"
    },
    "selected": {
      "type": "string",
      "example": false
    },
    "user_name": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": "John Smith"
    },
    "payment_id": {
      "type": "string",
      "example": "982000000567190"
    },
    "payment_number": {
      "type": "integer",
      "example": 7
    },
    "is_client_review_settings_enabled": {
      "type": "boolean",
      "example": true
    },
    "unused_amount": {
      "type": "number",
      "format": "double",
      "example": 100
    },
    "amount": {
      "type": "number",
      "format": "double",
      "example": 100
    },
    "bank_charges": {
      "type": "number",
      "format": "double",
      "example": 20
    },
    "tax_amount_withheld": {
      "type": "number",
      "format": "double",
      "example": 10
    },
    "discount_amount": {
      "type": "number",
      "format": "double",
      "example": 10
    },
    "online_transaction_id": {
      "type": "string",
      "example": "7843653940324085"
    },
    "retainerinvoice_total": {
      "type": "number",
      "format": "double",
      "example": 3478
    },
    "retainerinvoice_balance": {
      "type": "number",
      "format": "double",
      "example": 3478
    },
    "invoices": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": []
    },
    "retainerinvoice_date": {
      "type": "string",
      "example": "2016-12-20"
    },
    "payment_refunds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": []
    },
    "last_four_digits": {
      "type": "string",
      "example": ""
    },
    "html_string": {
      "type": "string",
      "example": ""
    },
    "is_payment_drawn_details_required": {
      "type": "boolean",
      "example": true
    },
    "payment_mode": {
      "type": "string",
      "example": "cash"
    },
    "preview": {
      "description": "Get the thumbnail of the attachment.",
      "type": "boolean"
    },
    "comment_id": {
      "description": "ID of the comment",
      "type": "string",
      "example": 982000000567019
    },
    "commented_by_id": {
      "type": "string",
      "example": 982000000554041
    },
    "comment_type": {
      "type": "string",
      "example": "system"
    },
    "commented_by": {
      "type": "string",
      "example": "John David"
    },
    "date_description": {
      "type": "string",
      "example": "yesterday"
    },
    "time": {
      "type": "string",
      "example": "2:38 AM"
    },
    "operation_type": {
      "type": "string",
      "example": "Added"
    },
    "transaction_id": {
      "type": "string",
      "example": "982000000567204"
    },
    "transaction_type": {
      "type": "string",
      "example": "retainer_payment"
    },
    "payment_expected_date": {
      "type": "string",
      "description": "The date on which the payment is expected to be received for the retainer invoice.",
      "example": " "
    },
    "show_comment_to_clients": {
      "description": "Boolean to check if the comment to be shown to the clients",
      "type": "boolean",
      "example": true
    },
    "ignore_auto_number_generation": {
      "description": "Ignore auto invoice number generation for this invoice. This mandates the invoice number. Allowed values <code>true</code> and <code>false</code>",
      "type": "boolean"
    },
    "print": {
      "description": "Print the exported pdf.",
      "type": "boolean"
    },
    "attachments": {
      "description": "Files to be attached to the email",
      "type": "string",
      "format": "binary"
    },
    "filter_by": {
      "description": "Filter invoices by any status or payment expected date.Allowed Values: <code> Status.All</code>, <code>Status.Sent</code>, <code> Status.Draft</code>, <code>Status.OverDue</code>, <code>Status.Paid</code>, <code>Status.Void</code>, <code>Status.Unpaid</code>, <code>Status.PartiallyPaid</code>,<code> Status.Viewed</code> and <code>Date.PaymentExpectedDate</code>",
      "type": "string",
      "example": " "
    },
    "create-a-retainerinvoice-request": {
      "required": [
        "customer_id",
        "line_items"
      ],
      "type": "object",
      "properties": {
        "customer_id": {
          "$ref": "#/components/schemas/customer_id"
        },
        "reference_number": {
          "$ref": "#/components/schemas/reference_number"
        },
        "date": {
          "$ref": "#/components/schemas/date"
        },
        "contact_persons_associated": {
          "$ref": "#/components/schemas/contact_persons_associated_payload"
        },
        "custom_fields": {
          "$ref": "#/components/schemas/custom_fields"
        },
        "notes": {
          "$ref": "#/components/schemas/notes"
        },
        "terms": {
          "$ref": "#/components/schemas/terms"
        },
        "location_id": {
          "$ref": "#/components/schemas/location_id"
        },
        "line_items": {
          "description": "Line items of a retainer invoice.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "description": {
                "$ref": "#/components/schemas/description"
              },
              "item_order": {
                "$ref": "#/components/schemas/item_order"
              },
              "rate": {
                "$ref": "#/components/schemas/rate"
              }
            }
          }
        },
        "payment_options": {
          "$ref": "#/components/schemas/payment_options"
        },
        "template_id": {
          "$ref": "#/components/schemas/template_id"
        },
        "place_of_supply": {
          "$ref": "#/components/schemas/place_of_supply"
        }
      }
    },
    "create-a-retainerinvoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "The retainer invoice has been created.",
          "readOnly": true
        },
        "retainerinvoice": {
          "$ref": "#/components/schemas/retainerinvoice-response"
        }
      }
    },
    "list-a-retainer-invoices-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "success",
          "readOnly": true
        },
        "retainerinvoices": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "retainerinvoice_id": {
                "$ref": "#/components/schemas/retainerinvoice_id"
              },
              "customer_name": {
                "$ref": "#/components/schemas/customer_name"
              },
              "retainerinvoice_number": {
                "$ref": "#/components/schemas/retainerinvoice_number"
              },
              "customer_id": {
                "$ref": "#/components/schemas/customer_id"
              },
              "status": {
                "$ref": "#/components/schemas/status"
              },
              "reference_number": {
                "$ref": "#/components/schemas/reference_number"
              },
              "project_or_estimate_name": {
                "$ref": "#/components/schemas/project_or_estimate_name"
              },
              "date": {
                "$ref": "#/components/schemas/date"
              },
              "currency_id": {
                "$ref": "#/components/schemas/currency_id"
              },
              "currency_code": {
                "$ref": "#/components/schemas/currency_code"
              },
              "is_viewed_by_client": {
                "$ref": "#/components/schemas/is_viewed_by_client"
              },
              "client_viewed_time": {
                "$ref": "#/components/schemas/client_viewed_time"
              },
              "total": {
                "$ref": "#/components/schemas/total"
              },
              "balance": {
                "$ref": "#/components/schemas/balance"
              },
              "created_time": {
                "$ref": "#/components/schemas/created_time"
              },
              "last_modified_time": {
                "$ref": "#/components/schemas/last_modified_time"
              },
              "is_emailed": {
                "$ref": "#/components/schemas/is_emailed"
              },
              "last_payment_date": {
                "$ref": "#/components/schemas/last_payment_date"
              },
              "has_attachment": {
                "$ref": "#/components/schemas/has_attachment"
              }
            }
          }
        },
        "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-a-retainerinvoice-request": {
      "required": [
        "customer_id",
        "line_items"
      ],
      "type": "object",
      "properties": {
        "customer_id": {
          "$ref": "#/components/schemas/customer_id"
        },
        "reference_number": {
          "$ref": "#/components/schemas/reference_number"
        },
        "date": {
          "$ref": "#/components/schemas/date"
        },
        "contact_persons_associated": {
          "$ref": "#/components/schemas/contact_persons_associated_payload"
        },
        "custom_fields": {
          "$ref": "#/components/schemas/custom_fields"
        },
        "notes": {
          "$ref": "#/components/schemas/notes"
        },
        "terms": {
          "$ref": "#/components/schemas/terms"
        },
        "location_id": {
          "$ref": "#/components/schemas/location_id"
        },
        "line_items": {
          "description": "Line items of a retainer invoice.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "description": {
                "$ref": "#/components/schemas/description"
              },
              "item_order": {
                "$ref": "#/components/schemas/item_order"
              },
              "rate": {
                "$ref": "#/components/schemas/rate"
              }
            }
          }
        },
        "payment_options": {
          "$ref": "#/components/schemas/payment_options"
        },
        "template_id": {
          "$ref": "#/components/schemas/template_id"
        },
        "place_of_supply": {
          "$ref": "#/components/schemas/place_of_supply"
        },
        "project_id": {
          "$ref": "#/components/schemas/project_id"
        }
      }
    },
    "update-a-retainerinvoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Retainer Invoice information has been updated.",
          "readOnly": true
        },
        "retainerinvoice": {
          "type": "object",
          "properties": {
            "retainerinvoice_id": {
              "$ref": "#/components/schemas/retainerinvoice_id"
            },
            "retainerinvoice_number": {
              "$ref": "#/components/schemas/retainerinvoice_number"
            },
            "date": {
              "$ref": "#/components/schemas/date"
            },
            "status": {
              "$ref": "#/components/schemas/status"
            },
            "is_pre_gst": {
              "$ref": "#/components/schemas/is_pre_gst"
            },
            "place_of_supply": {
              "$ref": "#/components/schemas/place_of_supply"
            },
            "project_id": {
              "$ref": "#/components/schemas/project_id"
            },
            "project_name": {
              "$ref": "#/components/schemas/project_name"
            },
            "last_payment_date": {
              "$ref": "#/components/schemas/last_payment_date"
            },
            "reference_number": {
              "$ref": "#/components/schemas/reference_number"
            },
            "customer_id": {
              "$ref": "#/components/schemas/customer_id"
            },
            "customer_name": {
              "$ref": "#/components/schemas/customer_name"
            },
            "contact_persons_associated": {
              "$ref": "#/components/schemas/contact_persons_associated"
            },
            "currency_id": {
              "$ref": "#/components/schemas/currency_id"
            },
            "currency_code": {
              "$ref": "#/components/schemas/currency_code"
            },
            "currency_symbol": {
              "$ref": "#/components/schemas/currency_symbol"
            },
            "exchange_rate": {
              "$ref": "#/components/schemas/exchange_rate"
            },
            "is_viewed_by_client": {
              "$ref": "#/components/schemas/is_viewed_by_client"
            },
            "client_viewed_time": {
              "$ref": "#/components/schemas/client_viewed_time"
            },
            "is_inclusive_tax": {
              "$ref": "#/components/schemas/is_inclusive_tax"
            },
            "location_id": {
              "$ref": "#/components/schemas/location_id"
            },
            "location_name": {
              "$ref": "#/components/schemas/location_name"
            },
            "line_items": {
              "description": "Line items of an invoice.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "line_item_id": {
                    "$ref": "#/components/schemas/line_item_id"
                  },
                  "description": {
                    "$ref": "#/components/schemas/description"
                  },
                  "item_order": {
                    "$ref": "#/components/schemas/item_order"
                  },
                  "rate": {
                    "$ref": "#/components/schemas/rate"
                  },
                  "bcy_rate": {
                    "$ref": "#/components/schemas/bcy_rate"
                  },
                  "tax_id": {
                    "$ref": "#/components/schemas/tax_id"
                  },
                  "tax_name": {
                    "$ref": "#/components/schemas/tax_name"
                  },
                  "tax_type": {
                    "$ref": "#/components/schemas/tax_type"
                  },
                  "tax_percentage": {
                    "$ref": "#/components/schemas/tax_percentage"
                  },
                  "item_total": {
                    "$ref": "#/components/schemas/item_total"
                  },
                  "location_id": {
                    "$ref": "#/components/schemas/location_id"
                  },
                  "location_name": {
                    "$ref": "#/components/schemas/location_name"
                  }
                }
              }
            },
            "sub_total": {
              "$ref": "#/components/schemas/sub_total"
            },
            "total": {
              "$ref": "#/components/schemas/total"
            },
            "taxes": {
              "$ref": "#/components/schemas/taxes"
            },
            "payment_made": {
              "$ref": "#/components/schemas/payment_made"
            },
            "payment_drawn": {
              "$ref": "#/components/schemas/payment_drawn"
            },
            "balance": {
              "$ref": "#/components/schemas/balance"
            },
            "allow_partial_payments": {
              "$ref": "#/components/schemas/allow_partial_payments"
            },
            "price_precision": {
              "$ref": "#/components/schemas/price_precision"
            },
            "payment_options": {
              "$ref": "#/components/schemas/payment_options"
            },
            "is_emailed": {
              "$ref": "#/components/schemas/is_emailed"
            },
            "documents": {
              "$ref": "#/components/schemas/documents"
            },
            "billing_address": {
              "$ref": "#/components/schemas/billing_address"
            },
            "shipping_address": {
              "$ref": "#/components/schemas/shipping_address"
            },
            "notes": {
              "$ref": "#/components/schemas/notes"
            },
            "terms": {
              "$ref": "#/components/schemas/terms"
            },
            "custom_fields": {
              "$ref": "#/components/schemas/custom_fields"
            },
            "template_id": {
              "$ref": "#/components/schemas/template_id"
            },
            "template_name": {
              "$ref": "#/components/schemas/template_name"
            },
            "page_width": {
              "$ref": "#/components/schemas/page_width"
            },
            "page_height": {
              "$ref": "#/components/schemas/page_height"
            },
            "orientation": {
              "$ref": "#/components/schemas/orientation"
            },
            "template_type": {
              "$ref": "#/components/schemas/template_type"
            },
            "created_time": {
              "$ref": "#/components/schemas/created_time"
            },
            "last_modified_time": {
              "$ref": "#/components/schemas/last_modified_time"
            },
            "created_by_id": {
              "$ref": "#/components/schemas/created_by_id"
            },
            "attachment_name": {
              "$ref": "#/components/schemas/attachment_name"
            },
            "can_send_in_mail": {
              "$ref": "#/components/schemas/can_send_in_mail"
            }
          }
        }
      }
    },
    "get-a-retainer-invoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "success",
          "readOnly": true
        },
        "retainerinvoice": {
          "type": "object",
          "properties": {
            "retainerinvoice_id": {
              "$ref": "#/components/schemas/retainerinvoice_id"
            },
            "retainerinvoice_number": {
              "$ref": "#/components/schemas/retainerinvoice_number"
            },
            "date": {
              "$ref": "#/components/schemas/date"
            },
            "status": {
              "$ref": "#/components/schemas/status"
            },
            "is_pre_gst": {
              "$ref": "#/components/schemas/is_pre_gst"
            },
            "place_of_supply": {
              "$ref": "#/components/schemas/place_of_supply"
            },
            "project_id": {
              "$ref": "#/components/schemas/project_id"
            },
            "project_name": {
              "$ref": "#/components/schemas/project_name"
            },
            "last_payment_date": {
              "$ref": "#/components/schemas/last_payment_date"
            },
            "reference_number": {
              "$ref": "#/components/schemas/reference_number"
            },
            "customer_id": {
              "$ref": "#/components/schemas/customer_id"
            },
            "customer_name": {
              "$ref": "#/components/schemas/customer_name"
            },
            "contact_persons_associated": {
              "$ref": "#/components/schemas/contact_persons_associated"
            },
            "currency_id": {
              "$ref": "#/components/schemas/currency_id"
            },
            "currency_code": {
              "$ref": "#/components/schemas/currency_code"
            },
            "currency_symbol": {
              "$ref": "#/components/schemas/currency_symbol"
            },
            "exchange_rate": {
              "$ref": "#/components/schemas/exchange_rate"
            },
            "is_viewed_by_client": {
              "$ref": "#/components/schemas/is_viewed_by_client"
            },
            "client_viewed_time": {
              "$ref": "#/components/schemas/client_viewed_time"
            },
            "is_inclusive_tax": {
              "$ref": "#/components/schemas/is_inclusive_tax"
            },
            "location_id": {
              "$ref": "#/components/schemas/location_id"
            },
            "location_name": {
              "$ref": "#/components/schemas/location_name"
            },
            "line_items": {
              "description": "Line items of a retainer invoice.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "line_item_id": {
                    "$ref": "#/components/schemas/line_item_id"
                  },
                  "description": {
                    "$ref": "#/components/schemas/description"
                  },
                  "item_order": {
                    "$ref": "#/components/schemas/item_order"
                  },
                  "rate": {
                    "$ref": "#/components/schemas/rate"
                  },
                  "bcy_rate": {
                    "$ref": "#/components/schemas/bcy_rate"
                  },
                  "tax_id": {
                    "$ref": "#/components/schemas/tax_id"
                  },
                  "tax_name": {
                    "$ref": "#/components/schemas/tax_name"
                  },
                  "tax_type": {
                    "$ref": "#/components/schemas/tax_type"
                  },
                  "tax_percentage": {
                    "$ref": "#/components/schemas/tax_percentage"
                  },
                  "item_total": {
                    "$ref": "#/components/schemas/item_total"
                  },
                  "location_id": {
                    "$ref": "#/components/schemas/location_id"
                  },
                  "location_name": {
                    "$ref": "#/components/schemas/location_name"
                  }
                }
              }
            },
            "sub_total": {
              "$ref": "#/components/schemas/sub_total"
            },
            "total": {
              "$ref": "#/components/schemas/total"
            },
            "taxes": {
              "$ref": "#/components/schemas/taxes"
            },
            "payment_made": {
              "$ref": "#/components/schemas/payment_made"
            },
            "payment_drawn": {
              "$ref": "#/components/schemas/payment_drawn"
            },
            "balance": {
              "$ref": "#/components/schemas/balance"
            },
            "allow_partial_payments": {
              "$ref": "#/components/schemas/allow_partial_payments"
            },
            "price_precision": {
              "$ref": "#/components/schemas/price_precision"
            },
            "payment_options": {
              "$ref": "#/components/schemas/payment_options"
            },
            "is_emailed": {
              "$ref": "#/components/schemas/is_emailed"
            },
            "documents": {
              "$ref": "#/components/schemas/documents"
            },
            "billing_address": {
              "$ref": "#/components/schemas/billing_address"
            },
            "shipping_address": {
              "$ref": "#/components/schemas/shipping_address"
            },
            "notes": {
              "$ref": "#/components/schemas/notes"
            },
            "terms": {
              "$ref": "#/components/schemas/terms"
            },
            "custom_fields": {
              "$ref": "#/components/schemas/custom_fields"
            },
            "template_id": {
              "$ref": "#/components/schemas/template_id"
            },
            "template_name": {
              "$ref": "#/components/schemas/template_name"
            },
            "page_width": {
              "$ref": "#/components/schemas/page_width"
            },
            "page_height": {
              "$ref": "#/components/schemas/page_height"
            },
            "orientation": {
              "$ref": "#/components/schemas/orientation"
            },
            "template_type": {
              "$ref": "#/components/schemas/template_type"
            },
            "created_time": {
              "$ref": "#/components/schemas/created_time"
            },
            "last_modified_time": {
              "$ref": "#/components/schemas/last_modified_time"
            },
            "created_by_id": {
              "$ref": "#/components/schemas/created_by_id"
            },
            "attachment_name": {
              "$ref": "#/components/schemas/attachment_name"
            },
            "can_send_in_mail": {
              "$ref": "#/components/schemas/can_send_in_mail"
            }
          }
        }
      }
    },
    "delete-a-retainer-invoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "The retainer invoice has been deleted.",
          "readOnly": true
        }
      }
    },
    "mark-a-retainer-invoice-as-sent-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Retainer Invoice status has been changed to Sent.",
          "readOnly": true
        }
      }
    },
    "update-retainer-invoice-template-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Retainer Invoice information has been updated.",
          "readOnly": true
        }
      }
    },
    "void-a-retainer-invoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Retainer Invoice status has been changed to 'Void'.",
          "readOnly": true
        }
      }
    },
    "mark-as-draft-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Status of retainer invoice changed from void to draft.",
          "readOnly": true
        }
      }
    },
    "submit-a-retainer-invoice-for-approval-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "The Retainer Invoice has been successfully submitted for approval.",
          "readOnly": true
        }
      }
    },
    "approve-a-retainer-invoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "You have approved the Retainer Invoice.",
          "readOnly": true
        }
      }
    },
    "email-a-retainer-invoice-request": {
      "required": [
        "to_mail_ids"
      ],
      "type": "object",
      "properties": {
        "send_from_org_email_id": {
          "$ref": "#/components/schemas/send_from_org_email_id"
        },
        "to_mail_ids": {
          "$ref": "#/components/schemas/to_mail_ids"
        },
        "cc_mail_ids": {
          "$ref": "#/components/schemas/cc_mail_ids"
        },
        "subject": {
          "$ref": "#/components/schemas/subject"
        },
        "body": {
          "$ref": "#/components/schemas/body"
        }
      }
    },
    "email-a-retainer-invoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Your retainer invoice has been sent.",
          "readOnly": true
        }
      }
    },
    "get-retainer-invoice-email-content-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "success",
          "readOnly": true
        },
        "gateways_configured": {
          "$ref": "#/components/schemas/gateways_configured"
        },
        "deprecated_placeholders_used": {
          "$ref": "#/components/schemas/deprecated_placeholders_used"
        },
        "body": {
          "$ref": "#/components/schemas/body"
        },
        "error_list": {
          "$ref": "#/components/schemas/error_list"
        },
        "subject": {
          "$ref": "#/components/schemas/subject"
        },
        "to_contacts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "first_name": {
                "$ref": "#/components/schemas/first_name"
              },
              "selected": {
                "$ref": "#/components/schemas/selected"
              },
              "phone": {
                "$ref": "#/components/schemas/phone"
              },
              "email": {
                "$ref": "#/components/schemas/email"
              },
              "last_name": {
                "$ref": "#/components/schemas/last_name"
              },
              "salutation": {
                "$ref": "#/components/schemas/salutation"
              },
              "contact_person_id": {
                "$ref": "#/components/schemas/contact_person_id"
              },
              "mobile": {
                "$ref": "#/components/schemas/mobile"
              }
            }
          }
        },
        "attachment_name": {
          "$ref": "#/components/schemas/attachment_name"
        },
        "email_template_id": {
          "$ref": "#/components/schemas/email_template_id"
        },
        "file_name": {
          "$ref": "#/components/schemas/file_name"
        },
        "from_emails": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "user_name": {
                "$ref": "#/components/schemas/user_name"
              },
              "selected": {
                "$ref": "#/components/schemas/selected"
              },
              "email": {
                "$ref": "#/components/schemas/email"
              }
            }
          }
        },
        "customer_id": {
          "$ref": "#/components/schemas/customer_id"
        }
      }
    },
    "update-billing-address-request": {
      "type": "object",
      "properties": {
        "address": {
          "description": "address of the customer",
          "type": "string",
          "example": "B-1104, 11F, \nHorizon International Tower, \nNo. 6, ZhiChun Road, HaiDian District"
        },
        "city": {
          "description": "city of the customer",
          "type": "string",
          "example": "Beijing"
        },
        "state": {
          "description": "state of the customer",
          "type": "string",
          "example": "Beijing"
        },
        "zip": {
          "description": "zip of the customer",
          "type": "string",
          "example": 1000881
        },
        "country": {
          "description": "country of the customer",
          "type": "string"
        },
        "fax": {
          "description": "fax of the customer",
          "type": "string",
          "example": "+86-10-82637827"
        }
      }
    },
    "update-billing-address-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Billing address updated",
          "readOnly": true
        }
      }
    },
    "list-retainer-invoice-templates-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "success",
          "readOnly": true
        },
        "templates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "template_name": {
                "$ref": "#/components/schemas/template_name"
              },
              "template_id": {
                "$ref": "#/components/schemas/template_id"
              },
              "template_type": {
                "$ref": "#/components/schemas/template_type"
              }
            }
          }
        }
      }
    },
    "list-retainer-payments-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "success",
          "readOnly": true
        },
        "payments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "payment_id": {
                "$ref": "#/components/schemas/payment_id"
              },
              "documents": {
                "$ref": "#/components/schemas/documents"
              },
              "customer_id": {
                "$ref": "#/components/schemas/customer_id"
              },
              "customer_name": {
                "$ref": "#/components/schemas/customer_name"
              },
              "retainerinvoice_id": {
                "$ref": "#/components/schemas/retainerinvoice_id"
              },
              "payment_mode": {
                "$ref": "#/components/schemas/payment_mode"
              },
              "date": {
                "$ref": "#/components/schemas/date"
              },
              "currency_id": {
                "$ref": "#/components/schemas/currency_id"
              },
              "currency_code": {
                "$ref": "#/components/schemas/currency_code"
              },
              "exchange_rate": {
                "$ref": "#/components/schemas/exchange_rate"
              },
              "amount": {
                "$ref": "#/components/schemas/amount"
              },
              "unused_amount": {
                "$ref": "#/components/schemas/unused_amount"
              },
              "bank_charges": {
                "$ref": "#/components/schemas/bank_charges"
              },
              "is_client_review_settings_enabled": {
                "$ref": "#/components/schemas/is_client_review_settings_enabled"
              },
              "tax_amount_withheld": {
                "$ref": "#/components/schemas/tax_amount_withheld"
              },
              "discount_amount": {
                "$ref": "#/components/schemas/discount_amount"
              },
              "description": {
                "$ref": "#/components/schemas/description"
              },
              "reference_number": {
                "$ref": "#/components/schemas/reference_number"
              },
              "online_transaction_id": {
                "$ref": "#/components/schemas/online_transaction_id"
              },
              "invoices": {
                "$ref": "#/components/schemas/invoices"
              },
              "retainerinvoice": {
                "type": "object",
                "properties": {
                  "retainerinvoice_id": {
                    "$ref": "#/components/schemas/retainerinvoice_id"
                  },
                  "retainerinvoice_number": {
                    "$ref": "#/components/schemas/retainerinvoice_number"
                  },
                  "retainerinvoice_total": {
                    "$ref": "#/components/schemas/retainerinvoice_total"
                  },
                  "retainerinvoice_balance": {
                    "$ref": "#/components/schemas/retainerinvoice_balance"
                  },
                  "retainerinvoice_date": {
                    "$ref": "#/components/schemas/retainerinvoice_date"
                  }
                }
              },
              "payment_refunds": {
                "$ref": "#/components/schemas/payment_refunds"
              },
              "last_four_digits": {
                "$ref": "#/components/schemas/last_four_digits"
              },
              "html_string": {
                "$ref": "#/components/schemas/html_string"
              },
              "template_id": {
                "$ref": "#/components/schemas/template_id"
              },
              "template_name": {
                "$ref": "#/components/schemas/template_name"
              },
              "page_width": {
                "$ref": "#/components/schemas/page_width"
              },
              "page_height": {
                "$ref": "#/components/schemas/page_height"
              },
              "orientation": {
                "$ref": "#/components/schemas/orientation"
              },
              "template_type": {
                "$ref": "#/components/schemas/template_type"
              },
              "attachment_name": {
                "$ref": "#/components/schemas/attachment_name"
              },
              "can_send_in_mail": {
                "$ref": "#/components/schemas/can_send_in_mail"
              },
              "is_payment_drawn_details_required": {
                "$ref": "#/components/schemas/is_payment_drawn_details_required"
              },
              "custom_fields": {
                "$ref": "#/components/schemas/custom_fields"
              }
            }
          }
        }
      }
    },
    "delete-a-retainer-payment-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "The payment has been deleted.",
          "readOnly": true
        }
      }
    },
    "get-a-retainer-invoice-attachment-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "success",
          "readOnly": true
        }
      }
    },
    "add-attachment-to-a-retainer-invoice-request": {
      "type": "object",
      "properties": {
        "can_send_in_mail": {
          "$ref": "#/components/schemas/can_send_in_mail"
        },
        "attachment": {
          "$ref": "#/components/schemas/attachment"
        }
      }
    },
    "add-attachment-to-a-retainer-invoice-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Your file has been attached.",
          "readOnly": true
        }
      }
    },
    "delete-an-attachment-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Your file is no longer attached to the invoice.",
          "readOnly": true
        }
      }
    },
    "list-retainer-invoice-comments-and-history-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "success",
          "readOnly": true
        },
        "comments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "comment_id": {
                "$ref": "#/components/schemas/comment_id"
              },
              "retainerinvoice_id": {
                "$ref": "#/components/schemas/retainerinvoice_id"
              },
              "description": {
                "$ref": "#/components/schemas/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"
              }
            }
          }
        }
      }
    },
    "add-comment-request": {
      "type": "object",
      "properties": {
        "description": {
          "description": "The description of the comment. Max-length [2000]",
          "type": "string",
          "example": "comment added"
        },
        "payment_expected_date": {
          "$ref": "#/components/schemas/payment_expected_date"
        },
        "show_comment_to_clients": {
          "$ref": "#/components/schemas/show_comment_to_clients"
        }
      }
    },
    "add-comment-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "Comments added.",
          "readOnly": true
        }
      }
    },
    "delete-a-comment-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "The comment has been deleted.",
          "readOnly": true
        }
      }
    },
    "update-comment-request": {
      "type": "object",
      "properties": {
        "description": {
          "description": "The comment on a retainer invoice",
          "type": "string",
          "example": "This is a comment."
        },
        "show_comment_to_clients": {
          "$ref": "#/components/schemas/show_comment_to_clients"
        }
      }
    },
    "update-comment-response": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "example": 0,
          "readOnly": true
        },
        "message": {
          "type": "string",
          "example": "The comment has been updated.",
          "readOnly": true
        },
        "comment": {
          "type": "object",
          "properties": {
            "comment_id": {
              "$ref": "#/components/schemas/comment_id"
            },
            "retainerinvoice_id": {
              "$ref": "#/components/schemas/retainerinvoice_id"
            },
            "description": {
              "$ref": "#/components/schemas/description"
            },
            "commented_by_id": {
              "$ref": "#/components/schemas/commented_by_id"
            },
            "commented_by": {
              "$ref": "#/components/schemas/commented_by"
            },
            "date": {
              "$ref": "#/components/schemas/date"
            },
            "date_description": {
              "$ref": "#/components/schemas/date_description"
            },
            "time": {
              "$ref": "#/components/schemas/time"
            },
            "comment_type": {
              "$ref": "#/components/schemas/comment_type"
            }
          }
        }
      }
    }
  }
}