{
  "openapi": "3.0.1",
  "info": {
    "title": "SwipeAPI",
    "version": "2.0",
    "description": "The Swipe Partner API — invoicing, payments, and GST compliance for your application. Create GST invoices and other documents, manage customers, vendors, products and inventory, record payments, and generate e-invoices and e-way bills.\n\n- Docs & guides: https://developers.getswipe.in\n- Quickstart: https://developers.getswipe.in/quickstart\n- Rate limit: 1 request/second per API key\n- All dates are DD-MM-YYYY"
  },
  "servers": [
    {
      "url": "https://app.getswipe.in/api/partner"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/v1/customer": {
      "post": {
        "summary": "Add a customer",
        "operationId": "post_customer",
        "tags": [
          "Customer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseCustomer"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Creates a customer keyed by your own `id`. Sending an ID that already exists fails with `CUSTOMER_ALREADY_EXISTS` — use Update a customer to change an existing record. Customers are also created automatically when a document references an unknown `party.id`."
      },
      "put": {
        "summary": "Update a customer",
        "operationId": "put_customer",
        "tags": [
          "Customer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseCustomer"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Updates an existing customer's details. Changes propagate to the documents linked to this customer."
      }
    },
    "/v1/customer/ledger": {
      "get": {
        "summary": "Get payment ledger",
        "operationId": "get_customer_ledger",
        "tags": [
          "Customer"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the ledger, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "01-01-2024"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the ledger, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "31-12-2024"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching payment details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "200": {
            "description": "Payment details fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payment_GET_Response"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Returns a customer's payment ledger over a required date range — documents, payments, and the running balance."
      }
    },
    "/v1/customer/list": {
      "get": {
        "summary": "Get list of customers",
        "operationId": "get_customer_list",
        "tags": [
          "Customer"
        ],
        "parameters": [
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch (max 100), default : 25 customers will be sent in response",
            "schema": {
              "type": "string",
              "default": 25
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching Customer List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "200": {
            "description": "Customer List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCustomersResponseV1"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Lists your customers with their basic details."
      },
      "post": {
        "summary": "Update customer mapping",
        "operationId": "post_customer_list",
        "tags": [
          "Customer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListCustomerMapModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "409": {
            "description": "Error in mapping Customer List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCustomerMapErrorModel"
                }
              }
            }
          },
          "400": {
            "description": "Error in mapping Customer List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "200": {
            "description": "Updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Re-links your customer IDs to existing Swipe records in bulk. Use this after changing IDs in your own system, so future calls don't create duplicate customers."
      }
    },
    "/v1/customer/{customer_id}": {
      "get": {
        "summary": "Get a customer",
        "operationId": "get_customer",
        "tags": [
          "Customer"
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The customer ID to be fetched",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "404": {
            "description": "Customer not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerGET_Response"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Returns one customer's details by your `customer_id`."
      },
      "delete": {
        "summary": "Delete a customer",
        "operationId": "delete_customer",
        "tags": [
          "Customer"
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The customer ID to be deleted",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "400": {
            "description": "Customer not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerError"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Deletes a customer by your `customer_id`. Deleted customers move to the Deleted tab in the dashboard."
      }
    },
    "/v1/doc": {
      "post": {
        "summary": "Create a document",
        "operationId": "post_invoice_resource",
        "tags": [
          "Document"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Creates a document — an invoice, purchase, estimate, return, delivery challan, or subscription — based on `document_type`. Unknown `party` and `items` IDs are created automatically from the details you send; existing IDs are reused. Returns the document's `hash_id`, which addresses the document in every subsequent call, plus the IRN and QR code when `einvoice` is set. Send your own `serial_number` to make retries safe — a duplicate fails with `DUPLICATE_DOC_SERIAL_NUMBER` instead of creating a second document."
      }
    },
    "/v1/doc/pdf/{doc_hash_id}": {
      "parameters": [
        {
          "name": "doc_hash_id",
          "in": "path",
          "description": "The hash id of the document to be fetched",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Get document PDF",
        "operationId": "get_pdf",
        "tags": [
          "Document"
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Document Hash ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "File will be downloaded"
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Returns the rendered PDF file for a document. The PDF uses the invoice templates and document settings configured on your Swipe account. Pass `delivery_challan=1` to get a delivery-challan copy instead."
      }
    },
    "/v1/doc/{doc_hash_id}": {
      "parameters": [
        {
          "name": "doc_hash_id",
          "in": "path",
          "description": "The hash id of the document to be cancelled",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "cancel_einvoice",
          "in": "query",
          "description": "Set to 1 if you want to cancel a document with e-invoice",
          "schema": {
            "type": "integer",
            "default": 0
          }
        }
      ],
      "delete": {
        "summary": "Cancel a document",
        "operationId": "delete_cancel_invoice",
        "tags": [
          "Document"
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Cancels an active document by its `hash_id`. The document remains in your account with a cancelled status."
      }
    },
    "/v1/payment": {
      "post": {
        "summary": "Record payment",
        "operationId": "post_payment",
        "tags": [
          "Payment"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordPayment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentError"
                }
              }
            }
          },
          "400": {
            "description": "Error in recording payment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentError"
                }
              }
            }
          },
          "200": {
            "description": "Payment recorded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Records a payment received from a customer. Optionally settle specific documents by pairing each `hash_id` with an `amount_paying` — partial settlement is supported and the document's payment status tracks what remains. Non-cash payment modes need a bank account configured on your account, otherwise the request fails with `MISSING_BANK_ACCOUNT`. Set `send_sms` or `send_email` to notify the customer."
      }
    },
    "/v1/product": {
      "post": {
        "summary": "Add an item",
        "operationId": "post_product",
        "tags": [
          "Product"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemV1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Creates an item in your catalog keyed by your own `id`. Sending an ID that already exists fails with `PRODUCT_ALREADY_EXISTS` — use Update an item to change the catalog record. Items are also created automatically when a document references an unknown item `id`."
      },
      "put": {
        "summary": "Update an item",
        "operationId": "put_product",
        "tags": [
          "Product"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemV1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Updates an item's master record in the catalog. This is the only way to change catalog details — item fields sent inside a document apply to that document only."
      }
    },
    "/v1/product/list": {
      "get": {
        "summary": "Get list of items",
        "operationId": "get_item_list",
        "tags": [
          "Product"
        ],
        "parameters": [
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch (max 100), default : 25 items will be sent in response",
            "schema": {
              "type": "string",
              "default": 25
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching Item List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "200": {
            "description": "Item List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListItemsResponseV1"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Lists the items in your catalog."
      },
      "post": {
        "summary": "Update items mapping",
        "operationId": "post_item_list",
        "tags": [
          "Product"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListItemMapModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "409": {
            "description": "Error in mapping Item List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListItemMapErrorModel"
                }
              }
            }
          },
          "400": {
            "description": "Error in mapping Item List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "200": {
            "description": "Updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Re-links your item IDs to existing Swipe records in bulk. Use this after changing IDs in your own system, so future calls don't create duplicate items."
      }
    },
    "/v1/product/{item_id}": {
      "get": {
        "summary": "Get item details",
        "operationId": "get_product",
        "tags": [
          "Product"
        ],
        "parameters": [
          {
            "name": "item_id",
            "in": "path",
            "description": "Item ID to be fetched",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "404": {
            "description": "Item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGET_Response"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Returns one item's catalog details by your `item_id`."
      },
      "delete": {
        "summary": "Delete an item",
        "operationId": "delete_product",
        "tags": [
          "Product"
        ],
        "parameters": [
          {
            "name": "item_id",
            "in": "path",
            "description": "The item ID to be deleted",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "400": {
            "description": "Item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductError"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Deletes an item by your `item_id`. Deleted items move to the Deleted tab in the dashboard."
      }
    },
    "/v1/subscriptions/list": {
      "get": {
        "summary": "List of subscriptions",
        "operationId": "get_transactions",
        "tags": [
          "Subscriptions"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "01-01-2024"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "31-12-2024"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter list based on status of the document",
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "active",
                "expired",
                "error",
                "cancelled"
              ],
              "default": "all"
            }
          },
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch (max 100)",
            "schema": {
              "type": "string",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching subscription list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "Subscription List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSubscriptions"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Lists subscriptions within a required date range, filterable by `status` and `customer_id`. Subscriptions are created through Create a document with `document_type=subscription`."
      }
    },
    "/v1/subscriptions/{subscription_hash_id}": {
      "parameters": [
        {
          "name": "subscription_hash_id",
          "in": "path",
          "description": "The hash id of the document",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Get subscription details",
        "operationId": "get_subscription",
        "tags": [
          "Subscriptions"
        ],
        "parameters": [
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch(max 100)",
            "schema": {
              "type": "string",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "Subscription fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscriptionInvoices"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Returns one subscription's details, including the invoices generated from it so far."
      }
    },
    "/v1/utils/gstin/{gstin}": {
      "parameters": [
        {
          "name": "gstin",
          "in": "path",
          "description": "GSTIN Number",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Get GSTIN details",
        "operationId": "get_utils",
        "tags": [
          "Utility"
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTErrorModel"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTErrorModel"
                }
              }
            }
          },
          "400": {
            "description": "error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTErrorModel"
                }
              }
            }
          },
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTResponseModel"
                }
              }
            }
          }
        },
        "description": "**v1 is deprecated — use the v2 endpoint instead.** Looks up a GSTIN on the GST portal and returns the registered business's details. Useful for validating a party's GSTIN and prefilling their name and address."
      }
    },
    "/v2/customer": {
      "post": {
        "summary": "Add a customer",
        "operationId": "post_customer",
        "tags": [
          "Customer V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseCustomerV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          }
        },
        "description": "Creates a customer keyed by your own `id`. Sending an ID that already exists fails with `CUSTOMER_ALREADY_EXISTS` — use Update a customer to change an existing record. Customers are also created automatically when a document references an unknown `party.id`."
      },
      "put": {
        "summary": "Update a customer",
        "operationId": "put_customer",
        "tags": [
          "Customer V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseCustomerV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          }
        },
        "description": "Updates an existing customer's details. Changes propagate to the documents linked to this customer."
      }
    },
    "/v2/customer/ledger": {
      "get": {
        "summary": "Get payment ledger",
        "operationId": "get_customer_ledger",
        "tags": [
          "Customer V2"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the ledger, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "01-01-2024"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the ledger, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "31-12-2024"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching payment details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Payment details fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerDataResponseV2"
                }
              }
            }
          }
        },
        "description": "Returns a customer's payment ledger over a required date range — documents, payments, and the running balance."
      }
    },
    "/v2/customer/list": {
      "get": {
        "summary": "Get list of customers",
        "operationId": "get_customer_list",
        "tags": [
          "Customer V2"
        ],
        "parameters": [
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch(max 100), default : 25 customers will be sent in response",
            "schema": {
              "type": "string",
              "default": 25
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching Customer List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Customer List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListGETResponse"
                }
              }
            }
          }
        },
        "description": "Lists your customers with their basic details."
      },
      "post": {
        "summary": "Update customer mapping",
        "operationId": "post_customer_list",
        "tags": [
          "Customer V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListCustomerMapModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "409": {
            "description": "Error in mapping Customer List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerMappingResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in mapping Customer List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          }
        },
        "description": "Re-links your customer IDs to existing Swipe records in bulk. Use this after changing IDs in your own system, so future calls don't create duplicate customers."
      }
    },
    "/v2/customer/{customer_id}": {
      "get": {
        "summary": "Get customer details",
        "operationId": "get_customer",
        "tags": [
          "Customer V2"
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The customer ID to be fetched",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Customer not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDetailsResponseV2"
                }
              }
            }
          }
        },
        "description": "Returns one customer's details by your `customer_id`."
      },
      "delete": {
        "summary": "Delete a customer",
        "operationId": "delete_customer",
        "tags": [
          "Customer V2"
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The customer ID to be deleted",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Customer not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponseV2"
                }
              }
            }
          }
        },
        "description": "Deletes a customer by your `customer_id`. Deleted customers move to the Deleted tab in the dashboard."
      }
    },
    "/v2/doc": {
      "post": {
        "summary": "Create a document",
        "operationId": "post_invoice_resource",
        "tags": [
          "Document V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseDocumentV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          }
        },
        "description": "Creates a document — an invoice, purchase, estimate, return, delivery challan, or subscription — based on `document_type`. Unknown `party` and `items` IDs are created automatically from the details you send; existing IDs are reused. Returns the document's `hash_id`, which addresses the document in every subsequent call, plus the IRN and QR code when `einvoice` is set. Send your own `serial_number` to make retries safe — a duplicate fails with `DUPLICATE_DOC_SERIAL_NUMBER` instead of creating a second document."
      }
    },
    "/v2/doc/list": {
      "get": {
        "summary": "List of documents",
        "operationId": "get_transactions",
        "tags": [
          "Document V2"
        ],
        "parameters": [
          {
            "name": "document_type",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "invoice",
                "purchase",
                "pro_forma_invoice",
                "estimate",
                "sales_return",
                "purchase_return",
                "delivery_challan",
                "purchase_order"
              ],
              "default": "invoice"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "01-01-2024"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "31-12-2024"
            }
          },
          {
            "name": "payment_status",
            "in": "query",
            "description": "Filter list based on payment status of the document.",
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "pending",
                "paid",
                "cancelled"
              ],
              "default": "all"
            }
          },
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch max(100)",
            "schema": {
              "type": "string",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocListErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocListErrorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching documents list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocListErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "Documents List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTransactionsV2"
                }
              }
            }
          }
        },
        "description": "Lists documents of one `document_type` within a required date range. Filter by `payment_status` to track pending, partially paid, or fully paid documents."
      }
    },
    "/v2/doc/pdf/{doc_hash_id}": {
      "parameters": [
        {
          "name": "doc_hash_id",
          "in": "path",
          "description": "The hash id of the document to be fetched",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "delivery_challan",
          "in": "query",
          "description": "Set to 1 if you want to get a delivery challan copy of the document",
          "schema": {
            "type": "integer",
            "default": 0
          }
        }
      ],
      "get": {
        "summary": "Get document PDF",
        "operationId": "get_pdf",
        "tags": [
          "Document V2"
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Document Hash ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "File will be downloaded"
          }
        },
        "description": "Returns the rendered PDF file for a document. The PDF uses the invoice templates and document settings configured on your Swipe account. Pass `delivery_challan=1` to get a delivery-challan copy instead."
      }
    },
    "/v2/doc/{doc_hash_id}": {
      "get": {
        "summary": "Get a document",
        "operationId": "get_invoice",
        "tags": [
          "Document V2"
        ],
        "parameters": [
          {
            "name": "doc_hash_id",
            "in": "path",
            "description": "The hash id of the document to be fetched",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetInvoice"
                }
              }
            }
          }
        },
        "description": "Returns the full details of a document by its `hash_id` — party, items, amounts, and status."
      },
      "put": {
        "summary": "Edit a document",
        "operationId": "put_invoice",
        "tags": [
          "Document V2"
        ],
        "parameters": [
          {
            "name": "doc_hash_id",
            "in": "path",
            "description": "The hash ID of the document that needs to be updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseDocumentEditV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocCreateResponseV2"
                }
              }
            }
          }
        },
        "description": "Replaces the contents of an existing document. Send the complete payload with every field's updated value — this is a full replacement, not a partial update. The document keeps its `hash_id`."
      },
      "delete": {
        "summary": "Cancel a document",
        "operationId": "delete_invoice",
        "tags": [
          "Document V2"
        ],
        "parameters": [
          {
            "name": "doc_hash_id",
            "in": "path",
            "description": "The hash id of the document to be cancelled",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cancel_einvoice",
            "in": "query",
            "description": "Set to 1 if you want to cancel a document with e-invoice",
            "schema": {
              "type": "integer",
              "default": 0
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocResponseV2"
                }
              }
            }
          }
        },
        "description": "Cancels an active document by its `hash_id`. The document remains in your account with a cancelled status."
      }
    },
    "/v2/ewaybill/pdf/{doc_hash_id}": {
      "parameters": [
        {
          "name": "doc_hash_id",
          "in": "path",
          "description": "The hash id of the document to be fetched",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Get e-way bill PDF",
        "operationId": "get_pdf",
        "tags": [
          "EwayBill"
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEwayBill"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEwayBill"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Document Hash ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEwayBill"
                }
              }
            }
          },
          "200": {
            "description": "File will be downloaded"
          }
        },
        "description": "Returns the e-way bill PDF for a document whose e-way bill has already been generated."
      }
    },
    "/v2/ewaybill/{doc_hash_id}": {
      "parameters": [
        {
          "name": "doc_hash_id",
          "in": "path",
          "description": "The hash id of the document",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "summary": "Create e-way bill",
        "operationId": "post_eway_bill",
        "tags": [
          "EwayBill"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EwayBillModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEwayBill"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEwayBill"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEwayBill"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseEwayBill"
                }
              }
            }
          }
        },
        "description": "Generates an e-way bill for an existing document, identified by its `hash_id`. Requires the transport details: supply type, transport mode, dispatch addresses, and transporter document date. Your account must be connected to the e-way bill portal; portal rejections are returned as `PORTAL_ERROR_{code}`. By default this points to the government sandbox portal."
      }
    },
    "/v2/inventory/stock": {
      "post": {
        "summary": "Update inventory stock",
        "operationId": "post_inventory",
        "tags": [
          "Inventory V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryV2Response"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryV2Response"
                }
              }
            }
          },
          "200": {
            "description": "Success Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryV2Response"
                }
              }
            }
          }
        },
        "description": "Records a manual stock movement for a product — `in` adds stock, `out` removes it. Use `warehouse_id` -1 for the default warehouse and `record_date` to backdate the movement. Sales and purchase documents also move stock automatically."
      }
    },
    "/v2/inventory/warehouses/list": {
      "get": {
        "summary": "Get all warehouses",
        "operationId": "get_warehouses",
        "tags": [
          "Inventory V2"
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WarehousesV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WarehousesV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WarehousesV2"
                }
              }
            }
          }
        },
        "description": "Returns all warehouses with their IDs, for use in stock operations."
      }
    },
    "/v2/payment": {
      "post": {
        "summary": "Record payment",
        "operationId": "post_payment",
        "tags": [
          "Payment V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordPayment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in recording payment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Payment recorded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponseV2"
                }
              }
            }
          }
        },
        "description": "Records a payment received from a customer. Optionally settle specific documents by pairing each `hash_id` with an `amount_paying` — partial settlement is supported and the document's payment status tracks what remains. Non-cash payment modes need a bank account configured on your account, otherwise the request fails with `MISSING_BANK_ACCOUNT`. Set `send_sms` or `send_email` to notify the customer."
      }
    },
    "/v2/payment/list": {
      "get": {
        "summary": "List of payments",
        "operationId": "get_timeline",
        "tags": [
          "Payment V2"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "01-01-2024"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "31-12-2024"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter list based on active status of the payment",
            "required": true,
            "schema": {
              "type": "string",
              "default": "success"
            }
          },
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentListErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentListErrorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching payment details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentListErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "Payment details fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTransactions"
                }
              }
            }
          }
        },
        "description": "Lists payments recorded within a required date range."
      }
    },
    "/v2/product": {
      "post": {
        "summary": "Add an item",
        "operationId": "post_product",
        "tags": [
          "Product V2"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Unique id for each item",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Name of the Product",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quantity",
            "in": "query",
            "description": "Opening Quantity",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "unit_price",
            "in": "query",
            "description": "Price per item without Tax",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "tax_rate",
            "in": "query",
            "description": "Tax percentage for each item",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "price_with_tax",
            "in": "query",
            "description": "Price per item with Tax",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "purchase_price_with_tax",
            "in": "query",
            "description": "Purchase Price per item with Tax",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "Item Description",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hsn_code",
            "in": "query",
            "description": "HSN Code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "item_type",
            "in": "query",
            "description": "Product or Service enum",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "unit",
            "in": "query",
            "description": "Item quantity unit",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cess_rate",
            "in": "query",
            "description": "Cess Percent of the Item",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "cess_amount",
            "in": "query",
            "description": "Cess Amount of the Item",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "barcode",
            "in": "query",
            "description": "Barcode",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "description": "Category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "alternative_units",
            "in": "query",
            "description": "JSON string of alternative units",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "custom_columns",
            "in": "query",
            "description": "JSON string of custom fields",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "preferences",
            "in": "query",
            "description": "JSON string of product preferences",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "product_images": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    },
                    "description": "Product images (multiple files supported)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductResponseV2"
                }
              }
            }
          }
        },
        "description": "Creates an item in your catalog keyed by your own `id`. Sending an ID that already exists fails with `PRODUCT_ALREADY_EXISTS` — use Update an item to change the catalog record. Items are also created automatically when a document references an unknown item `id`."
      },
      "put": {
        "summary": "Update an item",
        "operationId": "put_product",
        "tags": [
          "Product V2"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Unique id for each item",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Name of the Product",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quantity",
            "in": "query",
            "description": "Opening Quantity",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "unit_price",
            "in": "query",
            "description": "Price per item without Tax",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "tax_rate",
            "in": "query",
            "description": "Tax percentage for each item",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "price_with_tax",
            "in": "query",
            "description": "Price per item with Tax",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "purchase_price_with_tax",
            "in": "query",
            "description": "Purchase Price per item with Tax",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "Item Description",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hsn_code",
            "in": "query",
            "description": "HSN Code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "item_type",
            "in": "query",
            "description": "Product or Service enum",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "unit",
            "in": "query",
            "description": "Item quantity unit",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cess_rate",
            "in": "query",
            "description": "Cess Percent of the Item",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "cess_amount",
            "in": "query",
            "description": "Cess Amount of the Item",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "barcode",
            "in": "query",
            "description": "Barcode",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "description": "Category",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "alternative_units",
            "in": "query",
            "description": "JSON string of alternative units",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "custom_columns",
            "in": "query",
            "description": "JSON string of custom fields",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "preferences",
            "in": "query",
            "description": "JSON string of product preferences",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "product_images": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    },
                    "description": "Product images (multiple files supported)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          }
        },
        "description": "Updates an item's master record in the catalog. This is the only way to change catalog details — item fields sent inside a document apply to that document only."
      }
    },
    "/v2/product/list": {
      "get": {
        "summary": "Get list of items",
        "operationId": "get_item_list",
        "tags": [
          "Product V2"
        ],
        "parameters": [
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch(max 100), default : 25 items will be sent in response",
            "schema": {
              "type": "string",
              "default": 25
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching Item List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Item List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListGETResponseV2"
                }
              }
            }
          }
        },
        "description": "Lists the items in your catalog."
      },
      "post": {
        "summary": "Update items mapping",
        "operationId": "post_item_list",
        "tags": [
          "Product V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListItemMapModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "409": {
            "description": "Error in mapping Item List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductMappingResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in mapping Item List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          }
        },
        "description": "Re-links your item IDs to existing Swipe records in bulk. Use this after changing IDs in your own system, so future calls don't create duplicate items."
      }
    },
    "/v2/product/{item_id}": {
      "get": {
        "summary": "Get item details",
        "operationId": "get_product",
        "tags": [
          "Product V2"
        ],
        "parameters": [
          {
            "name": "item_id",
            "in": "path",
            "description": "Item ID to be fetched",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductResponseV2"
                }
              }
            }
          }
        },
        "description": "Returns one item's catalog details by your `item_id`."
      },
      "delete": {
        "summary": "Delete an item",
        "operationId": "delete_product",
        "tags": [
          "Product V2"
        ],
        "parameters": [
          {
            "name": "item_id",
            "in": "path",
            "description": "The item ID to be deleted",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseV2"
                }
              }
            }
          }
        },
        "description": "Deletes an item by your `item_id`. Deleted items move to the Deleted tab in the dashboard."
      }
    },
    "/v2/subscriptions/list": {
      "get": {
        "summary": "List of subscriptions",
        "operationId": "get_transactions",
        "tags": [
          "Subscriptions V2"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "01-01-2024"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the list, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "31-12-2024"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter list based on status of the document",
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "active",
                "expired",
                "error",
                "cancelled"
              ],
              "default": "all"
            }
          },
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch(max 100)",
            "schema": {
              "type": "string",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching subscription list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Subscription List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSubscriptionsV2"
                }
              }
            }
          }
        },
        "description": "Lists subscriptions within a required date range, filterable by `status` and `customer_id`. Subscriptions are created through Create a document with `document_type=subscription`."
      }
    },
    "/v2/subscriptions/{subscription_hash_id}": {
      "parameters": [
        {
          "name": "subscription_hash_id",
          "in": "path",
          "description": "The hash id of the document",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Get subscription details",
        "operationId": "get_subscription",
        "tags": [
          "Subscriptions V2"
        ],
        "parameters": [
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch(max 100)",
            "schema": {
              "type": "string",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionErrorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Subscription fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscriptionInvoicesV2"
                }
              }
            }
          }
        },
        "description": "Returns one subscription's details, including the invoices generated from it so far."
      }
    },
    "/v2/utils/gstin/{gstin}": {
      "parameters": [
        {
          "name": "gstin",
          "in": "path",
          "description": "GSTIN Number",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "summary": "Get GSTIN details",
        "operationId": "get_utils",
        "tags": [
          "Utility V2"
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTErrorModelV2"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTErrorModelV2"
                }
              }
            }
          },
          "400": {
            "description": "error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTErrorModelV2"
                }
              }
            }
          },
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GSTResponseModelV2"
                }
              }
            }
          }
        },
        "description": "Looks up a GSTIN on the GST portal and returns the registered business's details. Useful for validating a party's GSTIN and prefilling their name and address."
      }
    },
    "/v2/vendor": {
      "post": {
        "summary": "Add a vendor",
        "operationId": "post_vendor",
        "tags": [
          "Vendor V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseVendorV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          }
        },
        "description": "Creates a vendor keyed by your own `id`. Vendors are the parties on purchase-side documents. They are also created automatically when a document references an unknown vendor `party.id`."
      },
      "put": {
        "summary": "Update a vendor",
        "operationId": "put_vendor",
        "tags": [
          "Vendor V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseVendorV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          }
        },
        "description": "Updates an existing vendor's details. Changes propagate to the documents linked to this vendor."
      }
    },
    "/v2/vendor/ledger": {
      "get": {
        "summary": "Get payment ledger",
        "operationId": "get_vendor_ledger",
        "tags": [
          "Vendor V2"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the ledger, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "01-01-2024"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the ledger, [DD-MM-YYYY]",
            "required": true,
            "schema": {
              "type": "string",
              "default": "31-12-2024"
            }
          },
          {
            "name": "vendor_id",
            "in": "query",
            "description": "Vendor ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching payment details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Payment details fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerDataResponseV2"
                }
              }
            }
          }
        },
        "description": "Returns a vendor's payment ledger over a required date range — documents, payments, and the running balance."
      }
    },
    "/v2/vendor/list": {
      "get": {
        "summary": "Get list of vendors",
        "operationId": "get_vendor_list",
        "tags": [
          "Vendor V2"
        ],
        "parameters": [
          {
            "name": "num_records",
            "in": "query",
            "description": "Number of records to fetch, default : all vendors will be sent in response",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in fetching Vendor List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Vendor List fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListGETResponseVendor"
                }
              }
            }
          }
        },
        "description": "Lists your vendors with their basic details."
      },
      "post": {
        "summary": "Update vendor mapping",
        "operationId": "post_vendor_list",
        "tags": [
          "Vendor V2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListVendorMapModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "409": {
            "description": "Error in mapping Vendor List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorMappingResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Error in mapping Vendor List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          }
        },
        "description": "Re-links your vendor IDs to existing Swipe records in bulk. Use this after changing IDs in your own system, so future calls don't create duplicate vendors."
      }
    },
    "/v2/vendor/{vendor_id}": {
      "get": {
        "summary": "Get vendor details",
        "operationId": "get_vendor",
        "tags": [
          "Vendor V2"
        ],
        "parameters": [
          {
            "name": "vendor_id",
            "in": "path",
            "description": "The vendor ID to be fetched",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "vendor not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorDetailsResponseV2"
                }
              }
            }
          }
        },
        "description": "Returns one vendor's details by your `vendor_id`."
      },
      "delete": {
        "summary": "Delete a vendor",
        "operationId": "delete_vendor",
        "tags": [
          "Vendor V2"
        ],
        "parameters": [
          {
            "name": "vendor_id",
            "in": "path",
            "description": "The vendor ID to be deleted",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Vendor not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorResponseV2"
                }
              }
            }
          }
        },
        "description": "Deletes a vendor by your `vendor_id`. Deleted vendors move to the Deleted tab in the dashboard."
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Bearer authentication header of the form `Bearer <token>`, where `<token>` is an API key from the [API Integration](https://app.getswipe.in/user?tab=api_integration) section of your dashboard. Keys are scoped to the company they are generated in — for testing, [add a separate test company](https://community.getswipe.in/t/how-to-add-new-company-on-web/1191) and generate the key there, so requests never touch your real books."
      }
    },
    "schemas": {
      "AdditionalChargesDeductionsV2": {
        "required": [
          "amount",
          "id",
          "name",
          "tax_rate",
          "type"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique ID for the charge/deduction. 0 < id <= 999999",
            "example": 1
          },
          "name": {
            "type": "string",
            "description": "Name of the charge/deduction.",
            "example": "Delivery Charge"
          },
          "amount": {
            "type": "number",
            "description": "Total Amount",
            "example": 100.0
          },
          "tax_rate": {
            "type": "number",
            "description": "Tax Rate",
            "example": 18.0
          },
          "sac_code": {
            "type": "string",
            "description": "SAC Code",
            "example": "1234"
          },
          "type": {
            "type": "string",
            "description": "Type",
            "example": "charge",
            "enum": [
              "charge",
              "deduction"
            ]
          }
        },
        "type": "object"
      },
      "Address": {
        "required": [
          "state"
        ],
        "properties": {
          "address_line1": {
            "type": "string",
            "description": "Address line 1",
            "example": ""
          },
          "address_line2": {
            "type": "string",
            "description": "Address line 2",
            "example": ""
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "500075"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": ""
          },
          "state": {
            "type": "string",
            "description": "State. You can copy the state details from https://developers.getswipe.in/api-reference/references#state-details",
            "example": "State Name",
            "enum": [
              "JAMMU AND KASHMIR",
              "HIMACHAL PRADESH",
              "PUNJAB",
              "CHANDIGARH",
              "UTTARAKHAND",
              "HARYANA",
              "DELHI",
              "RAJASTHAN",
              "UTTAR PRADESH",
              "BIHAR",
              "SIKKIM",
              "ARUNACHAL PRADESH",
              "NAGALAND",
              "MANIPUR",
              "MIZORAM",
              "TRIPURA",
              "MEGHALAYA",
              "ASSAM",
              "WEST BENGAL",
              "JHARKHAND",
              "ODISHA",
              "CHHATTISGARH",
              "MADHYA PRADESH",
              "GUJARAT",
              "DADRA & NAGAR HAVELI & DAMAN & DIU",
              "MAHARASHTRA",
              "ANDHRAPRADESH(BEFOREADDED)",
              "KARNATAKA",
              "GOA",
              "LAKSHWADEEP",
              "KERALA",
              "TAMIL NADU",
              "PUDUCHERRY",
              "ANDAMAN & NICOBAR",
              "TELANGANA",
              "ANDHRA PRADESH",
              "LADAKH(NEWLYADDED)",
              "LADAKH(NEWLY ADDED)",
              "OTHER TERRITORY"
            ]
          },
          "country": {
            "type": "string",
            "description": "Country. You can copy the country details from https://developers.getswipe.in/api-reference/references#country-array",
            "example": "India",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo, Democratic Republic of the",
              "Congo, Republic of the",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Republic of Korea (South Korea)",
              "Kosovo",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ]
          }
        },
        "type": "object"
      },
      "AddressV2": {
        "required": [
          "country",
          "state"
        ],
        "properties": {
          "addr_id": {
            "type": "integer",
            "description": "Address ID. It will automatically update the existing address if the address ID already exists.",
            "example": 1
          },
          "addr_id_v2": {
            "type": "string",
            "description": "Address ID. It should be alphanumeric with length upto 16 characters.",
            "example": "addr1"
          },
          "address_line1": {
            "type": "string",
            "description": "Address line 1",
            "example": ""
          },
          "address_line2": {
            "type": "string",
            "description": "Address line 2",
            "example": ""
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "500075"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": ""
          },
          "state": {
            "type": "string",
            "description": "State. You can copy the state details from https://developers.getswipe.in/api-reference/references#state-details",
            "example": "State Name",
            "enum": [
              "JAMMU AND KASHMIR",
              "HIMACHAL PRADESH",
              "PUNJAB",
              "CHANDIGARH",
              "UTTARAKHAND",
              "HARYANA",
              "DELHI",
              "RAJASTHAN",
              "UTTAR PRADESH",
              "BIHAR",
              "SIKKIM",
              "ARUNACHAL PRADESH",
              "NAGALAND",
              "MANIPUR",
              "MIZORAM",
              "TRIPURA",
              "MEGHALAYA",
              "ASSAM",
              "WEST BENGAL",
              "JHARKHAND",
              "ODISHA",
              "CHHATTISGARH",
              "MADHYA PRADESH",
              "GUJARAT",
              "DADRA & NAGAR HAVELI & DAMAN & DIU",
              "MAHARASHTRA",
              "ANDHRAPRADESH(BEFOREADDED)",
              "KARNATAKA",
              "GOA",
              "LAKSHWADEEP",
              "KERALA",
              "TAMIL NADU",
              "PUDUCHERRY",
              "ANDAMAN & NICOBAR",
              "TELANGANA",
              "ANDHRA PRADESH",
              "LADAKH(NEWLYADDED)",
              "LADAKH(NEWLY ADDED)",
              "OTHER TERRITORY"
            ]
          },
          "country": {
            "type": "string",
            "description": "Country. You can copy the country details from https://developers.getswipe.in/api-reference/references#country-array",
            "example": "India",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo, Democratic Republic of the",
              "Congo, Republic of the",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Republic of Korea (South Korea)",
              "Kosovo",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ]
          }
        },
        "type": "object"
      },
      "AlternativeUnitsV2": {
        "properties": {
          "alternative_unit": {
            "type": "string",
            "description": "Alternative Unit",
            "example": "kg",
            "enum": [
              "LAD",
              "PET",
              "JARS",
              "HEGAR",
              "POCH",
              "BOR",
              "COIL",
              "FT",
              "IN",
              "PRT",
              "CASE",
              "EACH",
              "CPS",
              "PADS",
              "REEL",
              "BLISTER",
              "PAD",
              "PCS",
              "PRS",
              "QTL",
              "ROL",
              "SET",
              "SQF",
              "SQM",
              "SQY",
              "TBS",
              "TGM",
              "THD",
              "TON",
              "TUB",
              "UGS",
              "UNT",
              "YDS",
              "OTH",
              "HRS",
              "MINS",
              "LTR",
              "MTS",
              "MLG",
              "BCK",
              "GLS",
              "PLT",
              "CTS",
              "STRP",
              "CFT",
              "VIAL",
              "BAG",
              "BAL",
              "BDL",
              "BKL",
              "BOU",
              "BOX",
              "BTL",
              "BUN",
              "CAN",
              "CBM",
              "CCM",
              "CMS",
              "CTN",
              "DOZ",
              "DRM",
              "GGR",
              "GMS",
              "GRS",
              "GYD",
              "KGS",
              "KLR",
              "KME",
              "MLT",
              "MTR",
              "NOS",
              "PAC",
              "CNT",
              "RFT",
              "RIM",
              "TIN",
              "CHUDI",
              "PATTA",
              "KIT",
              "CUFT",
              "RMT",
              "MM",
              "AMP",
              "PAIR",
              "ANA",
              "CFM",
              "YRS",
              "MTH",
              "MAN-DAY",
              "NIGHT",
              "DAY",
              "SQIN",
              "WEEK",
              "PERSON",
              "LOT",
              "SAC",
              "REAM",
              "BRASS",
              "NONE",
              "COPY",
              "TKT",
              "KW",
              "W",
              "SEC",
              "BARREL",
              "SHEETS",
              "HOLES",
              "LINES",
              "LGTH",
              "TRIP",
              "LPSM",
              "WDTH",
              "SQCM",
              "SHFT",
              "AU",
              "SQKM",
              "JOBS",
              "CUIN",
              "IDIA",
              "INMT",
              "AC",
              "HA",
              "BARS",
              "PKTS"
            ]
          },
          "conversion_rate": {
            "type": "number",
            "description": "Conversion Rate",
            "example": 1.0
          }
        },
        "type": "object"
      },
      "BankDetails": {
        "required": [
          "account_number",
          "bank_name",
          "branch",
          "ifsc"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Account Number",
            "example": "1234567890"
          },
          "ifsc": {
            "type": "string",
            "description": "IFSC Code",
            "example": "SBIN0000001"
          },
          "bank_name": {
            "type": "string",
            "description": "Bank Name",
            "example": "State Bank of India"
          },
          "branch": {
            "type": "string",
            "description": "Branch",
            "example": "Mumbai"
          }
        },
        "type": "object"
      },
      "BaseCustomer": {
        "required": [
          "customer_id",
          "name"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Your Customer ID",
            "example": "123"
          },
          "name": {
            "type": "string",
            "description": "Customer name",
            "example": "TATA RATAN"
          },
          "phone": {
            "type": "string",
            "description": "Phone number",
            "example": 1234567890
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "example": "reddi@reddi.reddi"
          },
          "discount": {
            "type": "integer",
            "description": "Discount",
            "example": 10
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN",
            "example": "27AARCS7202C1ZD",
            "pattern": "^(|[0-9A-Z]{15})$"
          },
          "company_name": {
            "type": "string",
            "description": "Company name",
            "example": "GSTN"
          },
          "opening_balance": {
            "type": "string",
            "description": "Opening balance",
            "example": "1245"
          },
          "credit_limit": {
            "type": "integer",
            "description": "Credit limit",
            "example": 200
          },
          "billing_address": {
            "type": "array",
            "description": "List of billing addresses",
            "items": {
              "$ref": "#/components/schemas/Address"
            }
          },
          "shipping_address": {
            "type": "array",
            "description": "List of shipping addresses",
            "items": {
              "$ref": "#/components/schemas/Address"
            }
          },
          "opening_balance_type": {
            "type": "integer",
            "description": "Credit[0] / Debit[1]",
            "example": 1
          },
          "dial_code": {
            "type": "string",
            "description": "Dial code",
            "example": "91"
          },
          "profile_image": {
            "type": "string",
            "description": "Profile image URL",
            "example": ""
          },
          "pan": {
            "type": "string",
            "description": "PAN",
            "example": "ABCD1234F"
          },
          "notes": {
            "type": "string",
            "description": "Notes",
            "example": "Testing api"
          },
          "cc_emails": {
            "type": "string",
            "description": "CC email addresses",
            "example": "reddi@reddi.reddi,acb.a@bcd.con"
          }
        },
        "type": "object"
      },
      "BaseCustomerV2": {
        "required": [
          "customer_id",
          "name"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Your Customer ID",
            "example": "123"
          },
          "name": {
            "type": "string",
            "description": "Customer name",
            "example": "TATA RATAN"
          },
          "phone": {
            "type": "string",
            "description": "Phone number",
            "example": 1234567890
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "example": "reddi@reddi.reddi"
          },
          "cc_emails": {
            "type": "string",
            "description": "CC email addresses, comma-separated",
            "example": "a@example.com,b@example.com"
          },
          "discount": {
            "type": "integer",
            "description": "Discount",
            "example": 10
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN",
            "example": "27AARCS7202C1ZD"
          },
          "company_name": {
            "type": "string",
            "description": "Company name",
            "example": "GSTN"
          },
          "opening_balance": {
            "type": "string",
            "description": "Opening balance",
            "example": "1245"
          },
          "credit_limit": {
            "type": "integer",
            "description": "Credit limit",
            "example": 200
          },
          "billing_address": {
            "type": "array",
            "description": "List of billing addresses",
            "items": {
              "$ref": "#/components/schemas/AddressV2"
            }
          },
          "shipping_address": {
            "type": "array",
            "description": "List of shipping addresses",
            "items": {
              "$ref": "#/components/schemas/AddressV2"
            }
          },
          "opening_balance_type": {
            "type": "integer",
            "description": "Credit[0] / Debit[1]",
            "example": 1
          },
          "dial_code": {
            "type": "string",
            "description": "Dial code",
            "example": "91"
          },
          "profile_image": {
            "type": "string",
            "description": "Profile image URL",
            "example": ""
          },
          "pan": {
            "type": "string",
            "description": "PAN",
            "example": "ABCD1234F"
          },
          "notes": {
            "type": "string",
            "description": "Notes",
            "example": "Testing api"
          },
          "tags": {
            "type": "array",
            "description": "List of tags",
            "items": {
              "type": "string"
            }
          },
          "custom_fields": {
            "type": "array",
            "description": "Customer Custom Fields. Custom fields should already be added in Swipe Portal.",
            "example": [
              {
                "label": "Custom Field 1",
                "value": "Value 1"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFields"
            }
          },
          "visibility": {
            "type": "integer",
            "description": "Customer visibility status: If the value is 1, the customer will be visible to all branches; otherwise, it will only be visible in the main branch.",
            "example": 1
          }
        },
        "type": "object"
      },
      "BaseDocument": {
        "required": [
          "document_date",
          "document_type",
          "items"
        ],
        "properties": {
          "serial_number": {
            "type": "string",
            "description": "Serial Number, if not sent will be auto generated based on the default prefix.",
            "example": "INV123"
          },
          "document_type": {
            "type": "string",
            "description": "Type of document to create. One of the enum values listed below; use 'invoice' for a standard GST invoice.",
            "example": "invoice",
            "enum": [
              "invoice",
              "subscription",
              "pro_forma_invoice",
              "estimate",
              "sales_return",
              "purchase_return"
            ]
          },
          "document_date": {
            "type": "string",
            "description": "DD-MM-YYYY, Invoice date (Ex: 11-06-2024 Need not to the current date)",
            "example": "11-06-2024"
          },
          "customer": {
            "description": "Customer (deprecated, please use Party). If there are any changes made to the customer's details, we will update those details and any documents linked to this customer's ID will be updated to reflect the changes.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerV1"
              }
            ]
          },
          "party": {
            "description": "Party. If there are any changes made to the party details, we will update those details and any documents linked to this party ID will be updated to reflect the changes.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PartyV1"
              }
            ]
          },
          "due_date": {
            "type": "string",
            "description": "DD-MM-YYYY, Payment Due date for the invoice (Ex: 11-06-2024)",
            "example": "11-06-2024"
          },
          "reference": {
            "type": "string",
            "description": "Any references you want to add to the doc",
            "example": "Reference Text"
          },
          "notes": {
            "type": "string",
            "description": "Notes to show in invoice",
            "example": "Notes for the document"
          },
          "terms": {
            "type": "string",
            "description": "Terms to show in invoice",
            "example": "Terms and Conditions"
          },
          "items": {
            "type": "array",
            "description": "Array of Products/Services, refer Item Object below for parameters",
            "items": {
              "$ref": "#/components/schemas/DocItem"
            }
          },
          "extra_discount": {
            "type": "number",
            "description": "Adjustment on overall invoice, doesn’t effect any tax amounts.",
            "default": 0,
            "example": 20.0
          },
          "round_off": {
            "type": "boolean",
            "description": "Should Round Off total amount",
            "default": false,
            "example": true
          },
          "payments": {
            "type": "array",
            "description": "Array of Payments, refer Payment Object for parameters",
            "items": {
              "$ref": "#/components/schemas/Payment"
            }
          },
          "bank_details": {
            "description": "Bank Details, refer Bank Details Object below for parameters, If account_number, ifsc matched with existing bank details, it will be used, else new bank details will be added to your swipe account",
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDetails"
              }
            ]
          },
          "tds_id": {
            "type": "integer",
            "description": "You can check the tds id and details mapping from https://developers.getswipe.in/api-reference/references#tds-tax-deducted-at-source"
          },
          "tcs_id": {
            "type": "integer",
            "description": "You can copy the tcs id and details mapping from https://developers.getswipe.in/api-reference/references#tcs-tax-collected-at-source"
          },
          "company_shipping_address": {
            "description": "Company shipping from Address, refer Shipping Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddress"
              }
            ]
          },
          "customer_shipping_address": {
            "description": "Customer shipping to Address, refer Shipping Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddress"
              }
            ]
          },
          "customer_billing_address": {
            "description": "Customer billing to Address, refer Shipping Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddress"
              }
            ]
          },
          "is_subscription": {
            "type": "boolean",
            "description": "Is Subscription",
            "example": false
          },
          "subscription_details": {
            "description": "Subscription Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/Subscription"
              }
            ]
          },
          "einvoice": {
            "type": "boolean",
            "description": "Generate einvoice",
            "example": false
          },
          "is_export": {
            "type": "boolean",
            "description": "Is Export",
            "example": false
          },
          "export_invoice_details": {
            "description": "Export Invoice Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/ExportInvoiceDetails"
              }
            ]
          }
        },
        "type": "object"
      },
      "BaseDocumentEditV2": {
        "required": [
          "document_date",
          "document_type",
          "items"
        ],
        "properties": {
          "serial_number": {
            "type": "string",
            "description": "Serial Number (deprecated, please use New Serial Number)",
            "example": "INV123"
          },
          "serial_number_v2": {
            "example": {
              "prefix": "INV",
              "doc_number": 1,
              "suffix": "2024"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SerialNumber"
              }
            ]
          },
          "document_type": {
            "type": "string",
            "description": "Type of document to create. One of the enum values listed below; use 'invoice' for a standard GST invoice.",
            "example": "invoice",
            "enum": [
              "invoice",
              "subscription",
              "pro_forma_invoice",
              "estimate",
              "sales_return",
              "purchase_return",
              "delivery_challan"
            ]
          },
          "document_date": {
            "type": "string",
            "description": "DD-MM-YYYY",
            "example": "11-06-2024"
          },
          "party": {
            "description": "Party. If there are any changes made to the party details, we will update those details and any documents linked to this party ID will be updated to reflect the changes.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "due_date": {
            "type": "string",
            "description": "DD-MM-YYYY",
            "example": "11-06-2024"
          },
          "reference": {
            "type": "string",
            "description": "Any references you want to add to the doc",
            "example": "Reference Text"
          },
          "notes": {
            "type": "string",
            "description": "Notes to show in invoice - please check template in swipe application to see where this is displayed",
            "example": "Notes for the document"
          },
          "terms": {
            "type": "string",
            "description": "Terms to show in invoice - please check template in swipe application to see where this is displayed",
            "example": "Terms and Conditions"
          },
          "items": {
            "type": "array",
            "description": "Array of Products/Services, refer Item Object below for parameters",
            "items": {
              "$ref": "#/components/schemas/DocItemV2"
            }
          },
          "extra_discount": {
            "type": "number",
            "description": "Adjustment on overall invoice, doesn’t effect any tax amounts.",
            "default": 0,
            "example": 20.0
          },
          "round_off": {
            "type": "boolean",
            "description": "Should Round Off total amount",
            "default": false,
            "example": true
          },
          "bank_details": {
            "description": "Bank Details, it is used to display bank details in document PDFs. No payments are associated with these bank details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDetails"
              }
            ]
          },
          "tds_id": {
            "type": "integer",
            "description": "You can check the tds id and details mapping from https://developers.getswipe.in/api-reference/references#tds-tax-deducted-at-source"
          },
          "tcs_id": {
            "type": "integer",
            "description": "You can check the tcs id and details mapping from https://developers.getswipe.in/api-reference/references#tcs-tax-collected-at-source"
          },
          "charges_and_deductions": {
            "type": "array",
            "description": "Array of Charges and Deductions, refer Additional Charges Deductions Object for parameters",
            "items": {
              "$ref": "#/components/schemas/AdditionalChargesDeductionsV2"
            }
          },
          "company_shipping_address": {
            "description": "Company shipping from Address, refer Shipping Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddressV2"
              }
            ]
          },
          "company_billing_address": {
            "description": "Company billing Address, refer Billing Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddressV2"
              }
            ]
          },
          "is_export": {
            "type": "boolean",
            "description": "Is Export",
            "example": false
          },
          "is_multi_currency": {
            "type": "boolean",
            "description": "Is Multi Currency",
            "example": false
          },
          "export_invoice_details": {
            "description": "Export Invoice Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/ExportInvoiceDetailsV2"
              }
            ]
          },
          "is_subscription": {
            "type": "boolean",
            "description": "Is Subscription",
            "example": false
          },
          "subscription_details": {
            "description": "Subscription Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/Subscription"
              }
            ]
          },
          "convert": {
            "description": "Convert Document. Needed only when the document is already created and you want to convert it to another document",
            "allOf": [
              {
                "$ref": "#/components/schemas/Convert"
              }
            ]
          },
          "custom_headers": {
            "type": "array",
            "description": "Document Custom Headers. Custom headers should already be added in Swipe Portal.",
            "example": [
              {
                "label": "Custom Header 1",
                "value": "Value 1"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/CustomHeaders"
            }
          }
        },
        "type": "object"
      },
      "BaseDocumentV2": {
        "required": [
          "document_date",
          "document_type",
          "items"
        ],
        "properties": {
          "serial_number": {
            "type": "string",
            "description": "Serial Number (deprecated, please use New Serial Number)",
            "example": "INV123"
          },
          "serial_number_v2": {
            "example": {
              "prefix": "INV",
              "doc_number": 1,
              "suffix": "2024"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SerialNumber"
              }
            ]
          },
          "document_type": {
            "type": "string",
            "description": "Type of document to create. One of the enum values listed below; use 'invoice' for a standard GST invoice.",
            "example": "invoice",
            "enum": [
              "invoice",
              "subscription",
              "pro_forma_invoice",
              "estimate",
              "sales_return",
              "purchase_return",
              "delivery_challan",
              "purchase"
            ]
          },
          "document_date": {
            "type": "string",
            "description": "DD-MM-YYYY",
            "example": "11-06-2024"
          },
          "party": {
            "description": "Party. If there are any changes made to the party details, we will update those details and any documents linked to this party ID will be updated to reflect the changes.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "due_date": {
            "type": "string",
            "description": "DD-MM-YYYY",
            "example": "11-06-2024"
          },
          "reference": {
            "type": "string",
            "description": "Any references you want to add to the doc",
            "example": "Reference Text"
          },
          "notes": {
            "type": "string",
            "description": "Notes to show in invoice - please check template in swipe application to see where this is displayed",
            "example": "Notes for the document"
          },
          "terms": {
            "type": "string",
            "description": "Terms to show in invoice - please check template in swipe application to see where this is displayed",
            "example": "Terms and Conditions"
          },
          "items": {
            "type": "array",
            "description": "Array of Products/Services, refer Item Object below for parameters",
            "items": {
              "$ref": "#/components/schemas/DocItemV2"
            }
          },
          "warehouse_id": {
            "type": "integer",
            "description": "Warehouse ID",
            "example": -1
          },
          "extra_discount": {
            "type": "number",
            "description": "Adjustment on overall invoice, doesn’t effect any tax amounts.",
            "default": 0,
            "example": 20.0
          },
          "round_off": {
            "type": "boolean",
            "description": "Should Round Off total amount",
            "default": false,
            "example": true
          },
          "payments": {
            "type": "array",
            "description": "Array of Payments, refer Payment Object for parameters",
            "items": {
              "$ref": "#/components/schemas/PaymentV2"
            }
          },
          "bank_details": {
            "description": "Bank Details, it is used to display bank details in document PDFs. No payments are associated with these bank details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDetails"
              }
            ]
          },
          "tds_id": {
            "type": "integer",
            "description": "You can check the tds id and details mapping from https://developers.getswipe.in/api-reference/references#tds-tax-deducted-at-source"
          },
          "tcs_id": {
            "type": "integer",
            "description": "You can check the tcs id and details mapping from https://developers.getswipe.in/api-reference/references#tcs-tax-collected-at-source"
          },
          "charges_and_deductions": {
            "type": "array",
            "description": "Array of Charges and Deductions, refer Additional Charges Deductions Object for parameters",
            "items": {
              "$ref": "#/components/schemas/AdditionalChargesDeductionsV2"
            }
          },
          "company_shipping_address": {
            "description": "Company shipping from Address, refer Shipping Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddressV2"
              }
            ]
          },
          "company_billing_address": {
            "description": "Company billing Address, refer Billing Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddressV2"
              }
            ]
          },
          "einvoice": {
            "type": "boolean",
            "description": "Generate einvoice",
            "example": false
          },
          "is_export": {
            "type": "boolean",
            "description": "Is Export",
            "example": false
          },
          "is_multi_currency": {
            "type": "boolean",
            "description": "Is Multi Currency",
            "example": false
          },
          "export_invoice_details": {
            "description": "Export Invoice Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/ExportInvoiceDetailsV2"
              }
            ]
          },
          "is_subscription": {
            "type": "boolean",
            "description": "Is Subscription",
            "example": false
          },
          "subscription_details": {
            "description": "Subscription Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/Subscription"
              }
            ]
          },
          "convert": {
            "description": "Convert Document. Needed only when the document is already created and you want to convert it to another document",
            "allOf": [
              {
                "$ref": "#/components/schemas/Convert"
              }
            ]
          },
          "custom_headers": {
            "type": "array",
            "description": "Document Custom Headers. Custom headers should already be added in Swipe Portal.",
            "example": [
              {
                "label": "Custom Header 1",
                "value": "Value 1"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/CustomHeaders"
            }
          }
        },
        "type": "object"
      },
      "BaseVendorV2": {
        "required": [
          "name",
          "vendor_id"
        ],
        "properties": {
          "vendor_id": {
            "type": "string",
            "description": "Your Vendor ID",
            "example": "123"
          },
          "name": {
            "type": "string",
            "description": "Vendor name",
            "example": "TATA RATAN"
          },
          "phone": {
            "type": "string",
            "description": "Phone number",
            "example": 1234567890
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "example": "reddi@reddi.reddi"
          },
          "discount": {
            "type": "integer",
            "description": "Discount",
            "example": 10
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN",
            "example": "27AARCS7202C1ZD",
            "pattern": "^(|[0-9A-Z]{15})$"
          },
          "company_name": {
            "type": "string",
            "description": "Company name",
            "example": "GSTN"
          },
          "opening_balance": {
            "type": "string",
            "description": "Opening balance",
            "example": "1245"
          },
          "credit_limit": {
            "type": "integer",
            "description": "Credit limit",
            "example": 200
          },
          "billing_address": {
            "$ref": "#/components/schemas/VendorAddressV2"
          },
          "opening_balance_type": {
            "type": "integer",
            "description": "Credit[0] / Debit[1]",
            "example": 1
          },
          "dial_code": {
            "type": "string",
            "description": "Dial code",
            "example": "91"
          },
          "profile_image": {
            "type": "string",
            "description": "Profile image URL",
            "example": ""
          },
          "pan": {
            "type": "string",
            "description": "PAN",
            "example": "ABCD1234F"
          },
          "notes": {
            "type": "string",
            "description": "Notes",
            "example": "Testing api"
          },
          "cc_emails": {
            "type": "string",
            "description": "CC email addresses",
            "example": "reddi@reddi.reddi,acb.a@bcd.con"
          },
          "status": {
            "type": "string",
            "description": "Status",
            "example": "Active"
          },
          "tags": {
            "type": "array",
            "description": "List of tags",
            "items": {
              "type": "string"
            }
          },
          "custom_fields": {
            "type": "array",
            "description": "Vendor Custom Fields. Custom fields should already be added in Swipe Portal.",
            "example": [
              {
                "label": "Custom Field 1",
                "value": "Value 1"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/VendorCustomFields"
            }
          },
          "visibility": {
            "type": "integer",
            "description": "Vendor visibility status: If the value is 1, the vendor will be visible to all branches; otherwise, it will only be visible in the main branch.",
            "example": 1
          }
        },
        "type": "object"
      },
      "BillingAddress": {
        "properties": {
          "address_1": {
            "type": "string",
            "description": "Address Line 1",
            "example": "123 Street"
          },
          "address_2": {
            "type": "string",
            "description": "Address Line 2",
            "example": "Apt 4B"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": "City Name"
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "123456"
          },
          "state": {
            "type": "string",
            "description": "State",
            "example": "State Name"
          }
        },
        "type": "object"
      },
      "BillingAddressV2": {
        "properties": {
          "address_1": {
            "type": "string",
            "description": "Address Line 1",
            "example": "123 Street"
          },
          "address_2": {
            "type": "string",
            "description": "Address Line 2",
            "example": "Apt 4B"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": "City Name"
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "123456"
          },
          "state": {
            "type": "string",
            "description": "State",
            "example": "State Name"
          }
        },
        "type": "object"
      },
      "Convert": {
        "required": [
          "convert_from",
          "hash_id"
        ],
        "properties": {
          "convert_from": {
            "type": "string",
            "description": "The document type which is being converted",
            "example": "invoice",
            "enum": [
              "invoice",
              "estimate",
              "pro_forma_invoice",
              "sales_return",
              "purchase_return"
            ]
          },
          "hash_id": {
            "type": "string",
            "description": "Hash ID",
            "example": "SL123"
          }
        },
        "type": "object"
      },
      "CustomHeaders": {
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Customer": {
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each customer. If a new id  is sent, a new Customer with the below details will be automatically created.",
            "example": "CUST123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Customer",
            "example": "John Doe"
          },
          "country_code": {
            "type": "string",
            "description": "Customer Phone Number Country code",
            "example": "91"
          },
          "phone_number": {
            "type": "string",
            "description": "Customer Phone Number",
            "example": "1234567890"
          },
          "email": {
            "type": "string",
            "description": "Customer Email",
            "example": "johndoe@example.com"
          }
        },
        "type": "object"
      },
      "CustomerCustomFields": {
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CustomerDetailsResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseCustomerV2"
            }
          }
        },
        "type": "object"
      },
      "CustomerError": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": false
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": "INVALID_CUSTOMER_ID"
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Error Message"
          },
          "errors": {
            "type": "object",
            "description": "Validation errors",
            "example": "List of errors"
          }
        },
        "type": "object"
      },
      "CustomerGET_Response": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "customer_details": {
            "$ref": "#/components/schemas/BaseCustomer"
          }
        },
        "type": "object"
      },
      "CustomerList": {
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerListRecord"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total Records available",
            "example": 10
          }
        },
        "type": "object"
      },
      "CustomerListRecord": {
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID",
            "example": "CUST-2"
          },
          "name": {
            "type": "string",
            "description": "Name of the Customer",
            "example": "Customer"
          },
          "phone": {
            "type": "string",
            "description": "Phone Number of the customer",
            "example": "1234567890"
          },
          "email": {
            "type": "string",
            "description": "Email of the customer",
            "example": "john@doe.com"
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN of the customer",
            "example": ""
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID assigned to the customer",
            "example": 1
          },
          "developer_note": {
            "type": "string",
            "description": "Developer Notes: This field is for internal use.",
            "example": "This is a developer note"
          }
        },
        "type": "object"
      },
      "CustomerListRecordV1": {
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID",
            "example": "CUST-2"
          },
          "name": {
            "type": "string",
            "description": "Name of the Customer",
            "example": "Customer"
          },
          "phone": {
            "type": "string",
            "description": "Phone Number of the customer",
            "example": "1234567890"
          },
          "email": {
            "type": "string",
            "description": "Email of the customer",
            "example": "john@doe.com"
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN of the customer",
            "example": ""
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID assigned to the customer",
            "example": 1
          }
        },
        "type": "object"
      },
      "CustomerMapModel": {
        "required": [
          "customer_id",
          "swipe_id"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID"
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID",
            "example": 1
          },
          "force_update": {
            "type": "boolean",
            "description": "Updates even if the customer id is already mapped with other swipe id, no customer details will be updated",
            "example": true
          }
        },
        "type": "object"
      },
      "CustomerMappingResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "CustomerResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Customer added successfully"
          }
        },
        "type": "object"
      },
      "CustomerResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/EmptyData"
          }
        },
        "type": "object"
      },
      "CustomerV1": {
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each customer. If a new id  is sent, a new Customer with the below details will be automatically created.\n                                                      If existing Customer id is sent the details will not override the original customer details.\n                                                      They will be applicable only to the current invoice",
            "example": "CUST123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Customer",
            "example": "John Doe"
          },
          "country_code": {
            "type": "string",
            "description": "Customer Phone Number Country code",
            "example": "91"
          },
          "phone_number": {
            "type": "string",
            "description": "Customer Phone Number",
            "example": "1234567890"
          },
          "company_name": {
            "type": "string",
            "description": "Company Name",
            "example": "Company Name"
          },
          "email": {
            "type": "string",
            "description": "Customer Email",
            "example": "johndoe@example.com"
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN",
            "example": "27AARCS7202C1ZD"
          }
        },
        "type": "object"
      },
      "CustomerV2": {
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each party.",
            "example": "CUST123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Party",
            "example": "John Doe"
          },
          "country_code": {
            "type": "string",
            "description": "Party Phone Number Country code",
            "example": "91"
          },
          "phone_number": {
            "type": "string",
            "description": "Party Phone Number",
            "example": "1234567890"
          },
          "company_name": {
            "type": "string",
            "description": "Company Name",
            "example": "Company Name"
          },
          "email": {
            "type": "string",
            "description": "Party Email",
            "example": "johndoe@example.com"
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN",
            "example": "27AARCS7202C1ZD"
          }
        },
        "type": "object"
      },
      "Data": {
        "properties": {
          "hash_id": {
            "type": "string",
            "description": "Hash ID",
            "example": "SL123"
          }
        },
        "type": "object"
      },
      "DocCreateData": {
        "properties": {
          "hash_id": {
            "type": "string",
            "description": "Hash ID",
            "example": "SL123"
          },
          "serial_number": {
            "type": "string",
            "description": "Serial Number",
            "example": "SL123"
          },
          "irn": {
            "type": "string",
            "description": "IRN"
          },
          "qr_code": {
            "type": "string",
            "description": "QR Code"
          }
        },
        "type": "object"
      },
      "DocCreateResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "default": true,
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Success Message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/DocCreateData"
          }
        },
        "type": "object"
      },
      "DocItem": {
        "required": [
          "id",
          "item_type",
          "name",
          "net_amount",
          "price_with_tax",
          "quantity",
          "total_amount",
          "unit_price"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each item. If a new id  is sent, a new Item with the below details will be automatically created. if existing Item id is sent the details will not override the original item details. They will be applicable only to the current documents. Use update item to actually update the item details in swipe",
            "example": "ITEM123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Product",
            "example": "Item Name"
          },
          "quantity": {
            "type": "number",
            "description": "Quantity",
            "example": 1.0
          },
          "unit_price": {
            "type": "number",
            "description": "Price per item without Tax",
            "example": 100.0
          },
          "tax_rate": {
            "type": "number",
            "description": "Tax percentage for each item . Only valid tax rates are accepted",
            "example": 18.0
          },
          "price_with_tax": {
            "type": "number",
            "description": "Price per item with Tax",
            "example": 118.0
          },
          "net_amount": {
            "type": "number",
            "description": "Net Amount",
            "example": 100.0
          },
          "total_amount": {
            "type": "number",
            "description": "Item total amount (Net Amount + Tax)",
            "example": 118.0
          },
          "discount_percent": {
            "type": "number",
            "description": "Discount Percent",
            "default": 0,
            "example": 10.0
          },
          "discount_amount": {
            "type": "number",
            "description": "Discount Amount, will be ignored if discount_percent is provided",
            "default": 0,
            "example": 10.0
          },
          "description": {
            "type": "string",
            "description": "Item Description",
            "example": "Item Description"
          },
          "hsn_code": {
            "type": "string",
            "description": "HSN Code",
            "example": "1234"
          },
          "item_type": {
            "type": "string",
            "description": "Product or Service enum",
            "example": "Product",
            "enum": [
              "Product",
              "Service"
            ]
          },
          "unit": {
            "type": "string",
            "description": "Item quantity unit. You can find the GST-approved units in the UQC Codes section at: https://einvoice1.gst.gov.in/Others/MasterCodes.",
            "example": "kg"
          },
          "category": {
            "type": "string",
            "description": "Category",
            "example": "Electronics"
          }
        },
        "type": "object"
      },
      "DocItemV2": {
        "required": [
          "id",
          "item_type",
          "name",
          "net_amount",
          "price_with_tax",
          "quantity",
          "total_amount",
          "unit_price"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each item. If a new id  is sent, a new Item with the below details will be automatically created. if existing Item id is sent the details will not override the original item details. They will be applicable only to the current documents. Use update item to actually update the item details in swipe",
            "example": "ITEM123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Product",
            "example": "Item Name"
          },
          "quantity": {
            "type": "number",
            "description": "Quantity",
            "example": 1.0
          },
          "unit_price": {
            "type": "number",
            "description": "Price per item without Tax",
            "example": 100.0
          },
          "tax_rate": {
            "type": "number",
            "description": "Tax percentage for each item . Only valid tax rates are accepted",
            "example": 18.0
          },
          "price_with_tax": {
            "type": "number",
            "description": "Price per item with Tax",
            "example": 118.0
          },
          "net_amount": {
            "type": "number",
            "description": "Net Amount",
            "example": 100.0
          },
          "total_amount": {
            "type": "number",
            "description": "Item total amount (Net Amount + Tax).\n                           We calculate the discount amount by multiplying the item's quantity, unit price, and discount percentage. If a discount amount is provided instead, we reverse-calculate the percentage. If no discount is given, it is set to 0.\n                        ",
            "example": 118.0
          },
          "discount_percent": {
            "type": "number",
            "description": "Discount Percent",
            "default": 0,
            "example": 10.0
          },
          "discount_amount": {
            "type": "number",
            "description": "Discount Amount, will be ignored if discount_percent is provided",
            "default": 0,
            "example": 10.0
          },
          "description": {
            "type": "string",
            "description": "Item Description",
            "example": "Item Description"
          },
          "hsn_code": {
            "type": "string",
            "description": "HSN Code. HSN Code can only be of length 4,6 & 8",
            "example": "1234"
          },
          "item_type": {
            "type": "string",
            "description": "Product or Service enum",
            "example": "Product",
            "enum": [
              "Product",
              "Service"
            ]
          },
          "unit": {
            "type": "string",
            "description": "Item quantity unit. You can find the GST-approved units in the UQC Codes section at: https://einvoice1.gst.gov.in/Others/MasterCodes.",
            "example": "kg"
          },
          "category": {
            "type": "string",
            "description": "Category",
            "example": "Electronics"
          },
          "custom_columns": {
            "type": "array",
            "description": "Item Custom Fields. Custom fields should already be added in Swipe Portal.",
            "example": [
              {
                "label": "Custom Field 1",
                "value": "Value 1"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/ItemCustomFields"
            }
          }
        },
        "type": "object"
      },
      "DocListErrorResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "default": true,
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Success Message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "DocResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "default": true,
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Success Message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/Data"
          }
        },
        "type": "object"
      },
      "DocumentsList": {
        "required": [
          "amount_paying",
          "hash_id"
        ],
        "properties": {
          "amount_paying": {
            "type": "number",
            "description": "Amount to be settled for the document",
            "example": 27
          },
          "hash_id": {
            "type": "string",
            "description": "Document Hash ID",
            "example": "SLascded"
          }
        },
        "type": "object"
      },
      "EmptyData": {
        "properties": {
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "No data found!"
          }
        },
        "type": "object"
      },
      "Error": {
        "properties": {
          "success": {
            "type": "boolean",
            "default": false,
            "example": false
          },
          "error_code": {
            "type": "string",
            "description": "Error Code unique for a specific error. For e-invoice portal errors, error_code will be PORTAL_ERROR_[einvoice_portal_errorcode] ex: PORTAL_ERROR_2247, we can refer description for error code from here https://einv-apisandbox.nic.in/api-error-codes-list.html",
            "example": "INVALID_HASH_ID"
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "example": "Some error occurred"
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          }
        },
        "type": "object"
      },
      "ErrorEwayBill": {
        "properties": {
          "success": {
            "type": "boolean",
            "default": false,
            "example": false
          },
          "error_code": {
            "type": "string",
            "description": "Error Code unique for a specific error. For ewaybill portal errors, error_code will be PORTAL_ERROR_[ewaybill_portal_errorcode] ex: PORTAL_ERROR_2247, we can refer description for error code from here https://einvoice1.gst.gov.in/others/geterrorcodes/EWB",
            "example": "INVALID_HASH_ID"
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "example": "Some error occurred"
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          }
        },
        "type": "object"
      },
      "EwayBillAddress": {
        "required": [
          "addr_id",
          "address_line1",
          "address_line2",
          "city",
          "country",
          "pincode",
          "state"
        ],
        "properties": {
          "addr_id": {
            "type": "integer",
            "description": "Address ID. Value should be n >= 0 and n <= 999999, It will automatically update the existing address if the address ID already exists.\n                                  ",
            "example": -1
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1",
            "example": "123 Street"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2",
            "example": "Apt 4B"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": "City Name"
          },
          "state": {
            "type": "string",
            "description": "State.\n                               Select OTHER TERRITORY for countries other than India.\n                               You can copy the state details from https://developers.getswipe.in/api-reference/references#state-details\n                               ",
            "example": "State Name",
            "enum": [
              "JAMMU AND KASHMIR",
              "HIMACHAL PRADESH",
              "PUNJAB",
              "CHANDIGARH",
              "UTTARAKHAND",
              "HARYANA",
              "DELHI",
              "RAJASTHAN",
              "UTTAR PRADESH",
              "BIHAR",
              "SIKKIM",
              "ARUNACHAL PRADESH",
              "NAGALAND",
              "MANIPUR",
              "MIZORAM",
              "TRIPURA",
              "MEGHALAYA",
              "ASSAM",
              "WEST BENGAL",
              "JHARKHAND",
              "ODISHA",
              "CHHATTISGARH",
              "MADHYA PRADESH",
              "GUJARAT",
              "DADRA & NAGAR HAVELI & DAMAN & DIU",
              "MAHARASHTRA",
              "ANDHRAPRADESH(BEFOREADDED)",
              "KARNATAKA",
              "GOA",
              "LAKSHWADEEP",
              "KERALA",
              "TAMIL NADU",
              "PUDUCHERRY",
              "ANDAMAN & NICOBAR",
              "TELANGANA",
              "ANDHRA PRADESH",
              "LADAKH(NEWLYADDED)",
              "LADAKH(NEWLY ADDED)",
              "OTHER TERRITORY"
            ]
          },
          "country": {
            "type": "string",
            "description": "Country. You can copy the country details from https://developers.getswipe.in/api-reference/references#country-array",
            "example": "Country Name",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo, Democratic Republic of the",
              "Congo, Republic of the",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Republic of Korea (South Korea)",
              "Kosovo",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ]
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "123456"
          }
        },
        "type": "object"
      },
      "EwayBillModel": {
        "required": [
          "dispatch_from",
          "dispatch_to",
          "sub_supply_type",
          "supply_type",
          "transport_mode",
          "transporter_doc_date"
        ],
        "properties": {
          "supply_type": {
            "type": "string",
            "description": "Supply Type",
            "example": "Outward",
            "enum": [
              "Outward",
              "Inward"
            ]
          },
          "sub_supply_type": {
            "type": "string",
            "description": "Sub Supply Type",
            "example": "Supply",
            "enum": [
              "Supply",
              "Export",
              "Job Work",
              "SKD/CKD/Lots",
              "Recipient Not Known",
              "For Own Use",
              "Job Work Returns",
              "Sales Returns",
              "Exhibition or fairs",
              "Line Sales",
              "Others"
            ]
          },
          "transporter_doc_date": {
            "type": "string",
            "description": "DD-MM-YYYY",
            "example": "05-03-2025"
          },
          "dispatch_from": {
            "description": "Dispatch From Address",
            "allOf": [
              {
                "$ref": "#/components/schemas/EwayBillAddress"
              }
            ]
          },
          "dispatch_to": {
            "description": "Dispatch To Address",
            "allOf": [
              {
                "$ref": "#/components/schemas/EwayBillAddress"
              }
            ]
          },
          "vehicle_type": {
            "type": "string",
            "description": "Vehicle Type",
            "example": "Regular",
            "enum": [
              "Regular",
              "Over Dimensional Cargo"
            ]
          },
          "transaction_type": {
            "type": "string",
            "description": "Transaction Type",
            "example": "Regular",
            "enum": [
              "Regular",
              "Bill To - Ship To",
              "Bill From - Dispatch From",
              "Combination of 2 and 3"
            ]
          },
          "transport_mode": {
            "type": "string",
            "description": "Transport Mode",
            "example": "Road",
            "enum": [
              "Road",
              "Rail",
              "Air",
              "Ship or Ship Cum Road/Rail"
            ]
          },
          "ship_to_gstin": {
            "type": "string",
            "description": "Ship To GSTIN of the consignee, or 'URP' if unregistered. Required for 'Bill To - Ship To' and 'Combination of 2 and 3' transaction types.",
            "example": "29ABCDE1234F1Z5"
          },
          "sub_supply_type_description": {
            "type": "string",
            "description": "Sub Supply Type Description",
            "example": "Supply of goods"
          },
          "transporter_id": {
            "type": "string",
            "description": "Transporter ID",
            "example": "123456"
          },
          "transporter_name": {
            "type": "string",
            "description": "Transporter Name",
            "example": "Transporter Name"
          },
          "vehicle_number": {
            "type": "string",
            "description": "Vehicle Number",
            "example": "KA01AB1234"
          },
          "transporter_doc_number": {
            "type": "string",
            "description": "Transporter Document Number",
            "example": "123456"
          }
        },
        "type": "object"
      },
      "ExportInvoiceDetails": {
        "required": [
          "conversion_factor",
          "export_type"
        ],
        "properties": {
          "shipping_bill_date": {
            "type": "string"
          },
          "shipping_bill_number": {
            "type": "string"
          },
          "shipping_port_code": {
            "type": "string"
          },
          "export_type": {
            "type": "string",
            "description": "Export Type",
            "example": "With Payment of Tax",
            "enum": [
              "Export under bond/LUT",
              "Export with IGST",
              "SEZ with IGST Payment",
              "SEZ without IGST Payment",
              "Deemed Export"
            ]
          },
          "conversion_factor": {
            "type": "number"
          },
          "country_id": {
            "type": "string",
            "description": "Country ID",
            "example": "Afghanistan",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo, Democratic Republic of the",
              "Congo, Republic of the",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Republic of Korea (South Korea)",
              "Kosovo",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ]
          }
        },
        "type": "object"
      },
      "ExportInvoiceDetailsV2": {
        "required": [
          "conversion_factor",
          "export_type"
        ],
        "properties": {
          "shipping_bill_date": {
            "type": "string",
            "description": "Shipping Bill Date [DD-MM-YYYY]",
            "example": "14-02-2024"
          },
          "shipping_bill_number": {
            "type": "string",
            "description": "Shipping Bill Number",
            "example": "123456"
          },
          "shipping_port_code": {
            "type": "string",
            "description": "Shipping Port Code",
            "example": "123456"
          },
          "export_type": {
            "type": "string",
            "description": "Export Type",
            "example": "With Payment of Tax",
            "enum": [
              "Export under bond/LUT",
              "Export with IGST",
              "SEZ with IGST Payment",
              "SEZ without IGST Payment",
              "Deemed Export",
              "Multi Currency"
            ]
          },
          "conversion_factor": {
            "type": "number",
            "description": "The conversion factor represents the rate used to convert foreign currencies into Indian rupees. For example, if you're invoicing in dollars, and 1 dollar equals 84 rupees, the conversion factor would be 84"
          },
          "country_id": {
            "type": "string",
            "description": "Country ID",
            "example": "Afghanistan",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo, Democratic Republic of the",
              "Congo, Republic of the",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Republic of Korea (South Korea)",
              "Kosovo",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ]
          },
          "currency_id": {
            "type": "string",
            "description": "Currency ID, if not provided, the default country currency will be used, please refer to the currency list from https://developers.getswipe.in/api-reference/references#currency-details",
            "example": "AED",
            "enum": [
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ANG",
              "AOA",
              "ARS",
              "AUD",
              "AWG",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BMD",
              "BND",
              "BOB",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYN",
              "BZD",
              "CAD",
              "CDF",
              "CHF",
              "CLP",
              "CNY",
              "COP",
              "CRC",
              "CUP",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EGP",
              "ERN",
              "ETB",
              "EUR",
              "FJD",
              "FKP",
              "FOK",
              "GBP",
              "GEL",
              "GGP",
              "GHS",
              "GIP",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HKD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "IMP",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JEP",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KID",
              "KMF",
              "KRW",
              "KWD",
              "KYD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MNT",
              "MOP",
              "MRU",
              "MUR",
              "MVR",
              "MWK",
              "MXN",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SHP",
              "SLE",
              "SLL",
              "SOS",
              "SRD",
              "SSP",
              "STN",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TVD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "USD",
              "UYU",
              "UZS",
              "VES",
              "VND",
              "VUV",
              "WST",
              "XAF",
              "XCD",
              "XDR",
              "XOF",
              "XPF",
              "YER",
              "ZAR",
              "ZMW",
              "ZWL"
            ]
          }
        },
        "type": "object"
      },
      "GSTErrorModel": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": false
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "GSTErrorModelV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": false
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "GSTGetResponse": {
        "properties": {
          "company_name": {
            "type": "string",
            "description": "Company Name",
            "example": "XYZ Company"
          },
          "trade_name": {
            "type": "string",
            "description": "Brand Name",
            "example": "XYZ Company"
          },
          "legal_name": {
            "type": "string",
            "description": "Legal Name",
            "example": "XYZ Company"
          },
          "status": {
            "type": "string",
            "description": "Status"
          },
          "is_sez": {
            "type": "boolean",
            "description": "Sez"
          },
          "is_ecom": {
            "type": "boolean",
            "description": "ECom"
          },
          "billing": {
            "$ref": "#/components/schemas/BillingAddress"
          }
        },
        "type": "object"
      },
      "GSTGetResponseV2": {
        "properties": {
          "company_name": {
            "type": "string",
            "description": "Company Name",
            "example": "XYZ Company"
          },
          "trade_name": {
            "type": "string",
            "description": "Brand Name",
            "example": "XYZ Company"
          },
          "legal_name": {
            "type": "string",
            "description": "Legal Name",
            "example": "XYZ Company"
          },
          "status": {
            "type": "string",
            "description": "Status"
          },
          "is_sez": {
            "type": "boolean",
            "description": "Sez"
          },
          "is_ecom": {
            "type": "boolean",
            "description": "ECom"
          },
          "billing": {
            "$ref": "#/components/schemas/BillingAddressV2"
          }
        },
        "type": "object"
      },
      "GSTResponseModel": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": false
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/GSTGetResponse"
          }
        },
        "type": "object"
      },
      "GSTResponseModelV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": false
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/GSTGetResponseV2"
          }
        },
        "type": "object"
      },
      "GetInvoice": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Details Fetched"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/GetTransaction"
          }
        },
        "type": "object"
      },
      "GetPaymentV2": {
        "required": [
          "amount",
          "method"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "description": "Payment Amount",
            "example": 100.0
          },
          "method": {
            "type": "string",
            "description": "Payment method, use only specified values",
            "example": "upi",
            "enum": [
              "cash",
              "card",
              "upi",
              "netBanking",
              "cheque",
              "emi"
            ]
          },
          "notes": {
            "type": "string",
            "description": "Any internal notes for payment",
            "example": "Payment notes"
          },
          "bank_details": {
            "description": "Bank Details, refer Bank Details Object below for parameters, If account_number, ifsc matched with existing bank details, it will be used, else new bank details will be added to your swipe account. It will link document payments to your company bank details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDetails"
              }
            ]
          },
          "payment_date": {
            "type": "string",
            "description": "Payment Date [DD-MM-YYYY]",
            "example": "14-02-2024"
          }
        },
        "type": "object"
      },
      "GetProductResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/Item"
          }
        },
        "type": "object"
      },
      "GetSubscriptionInvoices": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Details Fetched"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/SubscriptionData"
          }
        },
        "type": "object"
      },
      "GetSubscriptionInvoicesV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Details Fetched"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/SubscriptionDataV2"
          }
        },
        "type": "object"
      },
      "GetTransaction": {
        "properties": {
          "invoice_details": {
            "$ref": "#/components/schemas/TransactionModelV2"
          }
        },
        "type": "object"
      },
      "InventoryV2": {
        "required": [
          "action",
          "product_id",
          "quantity",
          "warehouse_id"
        ],
        "properties": {
          "product_id": {
            "type": "string",
            "description": "Product ID",
            "example": "123456"
          },
          "quantity": {
            "type": "number",
            "description": "Opening Quantity",
            "example": 1.0
          },
          "warehouse_id": {
            "type": "integer",
            "description": "Warehouse ID",
            "example": -1
          },
          "remarks": {
            "type": "string",
            "description": "Remarks",
            "example": "Remarks"
          },
          "record_date": {
            "type": "string",
            "description": "Record Date (DD-MM-YYYY)",
            "example": "06-05-2025"
          },
          "action": {
            "type": "string",
            "description": "Stock in or stock out",
            "example": "in",
            "enum": [
              "in",
              "out"
            ]
          }
        },
        "type": "object"
      },
      "InventoryV2Response": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": false
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": ""
          }
        },
        "type": "object"
      },
      "Invoice": {
        "properties": {
          "name": {
            "type": "string",
            "description": "Customer Name",
            "example": "CUST123"
          },
          "id": {
            "type": "string",
            "description": "Customer ID",
            "example": "Cust123"
          },
          "serial_number": {
            "type": "string",
            "description": "Serial Number",
            "example": "INV-123"
          },
          "status": {
            "type": "string",
            "description": "Status",
            "example": "active",
            "enum": [
              "paid",
              "pending",
              "cancelled"
            ]
          },
          "hash_id": {
            "type": "string",
            "description": "Hash ID",
            "example": "SUB123"
          },
          "record_time": {
            "type": "string",
            "description": "Record Time",
            "example": "10 June 2024"
          },
          "total_amount": {
            "type": "number",
            "description": "Total Amount",
            "example": 1000.0
          }
        },
        "type": "object"
      },
      "InvoiceV2": {
        "properties": {
          "name": {
            "type": "string",
            "description": "Customer Name",
            "example": "CUST123"
          },
          "id": {
            "type": "string",
            "description": "Customer ID",
            "example": "Cust123"
          },
          "serial_number": {
            "type": "string",
            "description": "Serial Number",
            "example": "INV-123"
          },
          "status": {
            "type": "string",
            "description": "Status",
            "example": "active",
            "enum": [
              "paid",
              "pending",
              "cancelled"
            ]
          },
          "hash_id": {
            "type": "string",
            "description": "Hash ID",
            "example": "SUB123"
          },
          "record_time": {
            "type": "string",
            "description": "Record Time",
            "example": "10 June 2024"
          },
          "total_amount": {
            "type": "number",
            "description": "Total Amount",
            "example": 1000.0
          }
        },
        "type": "object"
      },
      "Item": {
        "required": [
          "id",
          "item_type",
          "name",
          "price_with_tax",
          "quantity",
          "unit_price"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each item.",
            "example": "ITEM123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Product",
            "example": "Item Name"
          },
          "quantity": {
            "type": "number",
            "description": "Opening Quantity",
            "example": 1.0
          },
          "unit_price": {
            "type": "number",
            "description": "Price per item without Tax",
            "example": 100.0
          },
          "tax_rate": {
            "type": "number",
            "description": "Tax percentage for each item . Only valid tax rates are accepted",
            "example": 18.0
          },
          "price_with_tax": {
            "type": "number",
            "description": "Price per item with Tax",
            "example": 118.0
          },
          "purchase_price_with_tax": {
            "type": "number",
            "description": "Purchase Price per item with Tax",
            "example": 118.0
          },
          "description": {
            "type": "string",
            "description": "Item Description",
            "example": "Item Description"
          },
          "hsn_code": {
            "type": "string",
            "description": "HSN Code",
            "example": "1234"
          },
          "item_type": {
            "type": "string",
            "description": "Product or Service enum",
            "example": "Product",
            "enum": [
              "Product",
              "Service"
            ]
          },
          "unit": {
            "type": "string",
            "description": "Item quantity unit. You can find the GST-approved units in the UQC Codes section at: https://einvoice1.gst.gov.in/Others/MasterCodes.",
            "example": "kg"
          },
          "cess_rate": {
            "type": "number",
            "description": "Cess Percent of the Item",
            "default": 0,
            "example": 0,
            "maximum": 100
          },
          "cess_amount": {
            "type": "number",
            "description": "Cess Amount of the Item",
            "default": 0,
            "example": 0
          },
          "barcode": {
            "type": "string",
            "description": "Barcode",
            "example": "2273546838467"
          },
          "category": {
            "type": "string",
            "description": "Category",
            "example": "Electronics"
          },
          "alternative_units": {
            "type": "array",
            "description": "Alternative Units",
            "example": [
              {
                "alternative_unit": "g",
                "conversion_rate": 1000.0
              }
            ],
            "items": {
              "$ref": "#/components/schemas/AlternativeUnitsV2"
            }
          },
          "custom_columns": {
            "type": "array",
            "description": "Custom Fields",
            "example": [
              {
                "label": "Custom Label",
                "value": "Custom Value"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/ProductCustomFieldsV2"
            }
          },
          "preferences": {
            "description": "Product Preferences",
            "example": {
              "not_for_sale": false,
              "low_stock_alert": 0,
              "show_online": false,
              "discount_percent": 10.0
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductPreferencesV2"
              }
            ]
          },
          "visibility": {
            "type": "integer",
            "description": "Product visibility status: If the value is 1, the product will be visible to all branches; otherwise, it will only be visible in the main branch.",
            "example": 1
          }
        },
        "type": "object"
      },
      "ItemCustomFields": {
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ItemList": {
        "required": [
          "id",
          "item_type",
          "name",
          "price_with_tax",
          "quantity",
          "unit_price"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each item. If a new id  is sent, a new Item with the below details will be automatically created. if existing Item id is sent the details will not override the original item details. They will be applicable only to the current invoice",
            "example": "ITEM123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Product",
            "example": "Item Name"
          },
          "quantity": {
            "type": "number",
            "description": "Current Quantity",
            "example": 1.0
          },
          "unit_price": {
            "type": "number",
            "description": "Price per item without Tax",
            "example": 100.0
          },
          "tax_rate": {
            "type": "number",
            "description": "Tax percentage for each item . Only valid tax rates are accepted",
            "example": 18.0
          },
          "price_with_tax": {
            "type": "number",
            "description": "Price per item with Tax",
            "example": 118.0
          },
          "discount_percent": {
            "type": "number",
            "description": "Default Discount Percent",
            "default": 0,
            "example": 10.0
          },
          "description": {
            "type": "string",
            "description": "Item Description",
            "example": "Item Description"
          },
          "hsn_code": {
            "type": "string",
            "description": "HSN Code",
            "example": "1234"
          },
          "item_type": {
            "type": "string",
            "description": "Product or Service enum",
            "example": "Product"
          },
          "unit": {
            "type": "string",
            "description": "item quantity unit",
            "example": "kg"
          },
          "category": {
            "type": "string",
            "description": "Category",
            "example": "Electronics"
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID assigned to the item",
            "example": 1
          },
          "developer_note": {
            "type": "string",
            "description": "Developer Notes: This field is for internal use.",
            "example": "This is a developer note"
          }
        },
        "type": "object"
      },
      "ItemListV1": {
        "required": [
          "id",
          "item_type",
          "name",
          "price_with_tax",
          "quantity",
          "unit_price"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each item. If a new id  is sent, a new Item with the below details will be automatically created. if existing Item id is sent the details will not override the original item details. They will be applicable only to the current invoice",
            "example": "ITEM123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Product",
            "example": "Item Name"
          },
          "quantity": {
            "type": "number",
            "description": "Current Quantity",
            "example": 1.0
          },
          "unit_price": {
            "type": "number",
            "description": "Price per item without Tax",
            "example": 100.0
          },
          "tax_rate": {
            "type": "number",
            "description": "Tax percentage for each item . Only valid tax rates are accepted",
            "example": 18.0
          },
          "price_with_tax": {
            "type": "number",
            "description": "Price per item with Tax",
            "example": 118.0
          },
          "discount_percent": {
            "type": "number",
            "description": "Default Discount Percent",
            "default": 0,
            "example": 10.0
          },
          "description": {
            "type": "string",
            "description": "Item Description",
            "example": "Item Description"
          },
          "hsn_code": {
            "type": "string",
            "description": "HSN Code",
            "example": "1234"
          },
          "item_type": {
            "type": "string",
            "description": "Product or Service enum",
            "example": "Product"
          },
          "unit": {
            "type": "string",
            "description": "item quantity unit",
            "example": "kg"
          },
          "category": {
            "type": "string",
            "description": "Category",
            "example": "Electronics"
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID assigned to the item",
            "example": 1
          }
        },
        "type": "object"
      },
      "ItemMapModel": {
        "required": [
          "item_id",
          "swipe_id"
        ],
        "properties": {
          "item_id": {
            "type": "string",
            "description": "Item ID"
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID",
            "example": 1
          },
          "force_update": {
            "type": "boolean",
            "description": "Updates even if the item id is already mapped with other swipe id, no item details will be updated",
            "example": true
          }
        },
        "type": "object"
      },
      "ItemV1": {
        "required": [
          "id",
          "item_type",
          "name",
          "price_with_tax",
          "quantity",
          "unit_price"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each item.",
            "example": "ITEM123"
          },
          "name": {
            "type": "string",
            "description": "Name of the Product",
            "example": "Item Name"
          },
          "quantity": {
            "type": "number",
            "description": "Opening Quantity",
            "example": 1.0
          },
          "unit_price": {
            "type": "number",
            "description": "Price per item without Tax",
            "example": 100.0
          },
          "tax_rate": {
            "type": "number",
            "description": "Tax percentage for each item . Only valid tax rates are accepted",
            "example": 18.0
          },
          "price_with_tax": {
            "type": "number",
            "description": "Price per item with Tax",
            "example": 118.0
          },
          "discount_percent": {
            "type": "number",
            "description": "Default Discount Percent",
            "default": 0,
            "example": 10.0
          },
          "description": {
            "type": "string",
            "description": "Item Description",
            "example": "Item Description"
          },
          "hsn_code": {
            "type": "string",
            "description": "HSN Code",
            "example": "1234"
          },
          "item_type": {
            "type": "string",
            "description": "Product or Service enum",
            "example": "Product"
          },
          "unit": {
            "type": "string",
            "description": "Item quantity unit. You can find the GST-approved units in the UQC Codes section at: https://einvoice1.gst.gov.in/Others/MasterCodes.",
            "example": "kg"
          },
          "category": {
            "type": "string",
            "description": "Category",
            "example": "Electronics"
          },
          "status": {
            "type": "string",
            "description": "Status of the Item",
            "example": "Active"
          }
        },
        "type": "object"
      },
      "Ledger": {
        "properties": {
          "amount_pending": {
            "type": "number",
            "description": "Amount pending",
            "example": 0
          },
          "balance": {
            "type": "number",
            "description": "Balance as of this record",
            "example": -16795.8
          },
          "notes": {
            "type": "string",
            "description": "Notes",
            "example": ""
          },
          "created_time": {
            "type": "string",
            "description": "Created Time of the Payment [YYYY-MM-DD HH:MM:SS] GMT ",
            "example": "2024-06-13 10:08:13"
          },
          "mode": {
            "type": "string",
            "description": "Payment Mode",
            "example": "UPI"
          },
          "date": {
            "type": "string",
            "description": "Payment Date",
            "example": "13-06-2024"
          },
          "status": {
            "type": "string",
            "description": "Payment Status",
            "example": "Success"
          },
          "serial_number": {
            "type": "string",
            "description": "Serial Number",
            "example": "PAYIN-2"
          },
          "total_amount": {
            "type": "number",
            "description": "Total Amount",
            "example": 100
          }
        },
        "type": "object"
      },
      "LedgerData": {
        "properties": {
          "closing_balance": {
            "type": "number",
            "description": "Balance as of this record",
            "example": -16795.8
          },
          "is_paid": {
            "type": "integer",
            "description": "Paid",
            "example": 1
          },
          "total_records": {
            "type": "integer",
            "description": "Number of records",
            "example": 10
          },
          "ledger": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ledger"
            }
          }
        },
        "type": "object"
      },
      "LedgerDataResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/LedgerData"
          }
        },
        "type": "object"
      },
      "LedgerRecordV1": {
        "properties": {
          "serial_number": {
            "type": "string",
            "description": "Serial Number",
            "example": "PAYIN-2"
          },
          "total_amount": {
            "type": "number",
            "description": "Total Amount",
            "example": 100
          },
          "amount_pending": {
            "type": "number",
            "description": "Amount pending",
            "example": 0
          },
          "balance": {
            "type": "number",
            "description": "Balance as of this record",
            "example": -16795.8
          },
          "date": {
            "type": "string",
            "description": "Payment Date",
            "example": "13-06-2024"
          },
          "mode": {
            "type": "string",
            "description": "Payment Mode",
            "example": "UPI"
          },
          "bank_details": {
            "$ref": "#/components/schemas/BankDetails"
          },
          "created_time": {
            "type": "string",
            "description": "Created Time of the Payment [YYYY-MM-DD HH:MM:SS] GMT ",
            "example": "2024-06-13 10:08:13"
          },
          "notes": {
            "type": "string",
            "description": "Notes",
            "example": ""
          },
          "status": {
            "type": "string",
            "description": "Payment Status",
            "example": "Success"
          }
        },
        "type": "object"
      },
      "LinkedDocs": {
        "properties": {
          "amount_settled": {
            "type": "number",
            "description": "Amount settled for the document, from the payment",
            "example": 100
          },
          "serial_number": {
            "type": "string",
            "description": "Invoice number assigned to document",
            "example": "INV-12"
          },
          "document_type": {
            "type": "string",
            "description": "Type of document",
            "example": "invoice"
          }
        },
        "type": "object"
      },
      "ListCustomerMapErrorModel": {
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "customer_mapping": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerMapModel"
            }
          },
          "duplicate_customer_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerMapModel"
            }
          },
          "duplicate_swipe_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerMapModel"
            }
          },
          "not_found_swipe_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerMapModel"
            }
          },
          "message": {
            "type": "string",
            "example": "Customer ID already mapped !"
          }
        },
        "type": "object"
      },
      "ListCustomerMapModel": {
        "required": [
          "customer_mapping"
        ],
        "properties": {
          "customer_mapping": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerMapModel"
            }
          }
        },
        "type": "object"
      },
      "ListCustomersResponseV1": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerListRecordV1"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total Records available",
            "example": 10
          }
        },
        "type": "object"
      },
      "ListGETResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/CustomerList"
          }
        },
        "type": "object"
      },
      "ListGETResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/ProductListV2"
          }
        },
        "type": "object"
      },
      "ListGETResponseVendor": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/VendorList"
          }
        },
        "type": "object"
      },
      "ListItemMapErrorModel": {
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "item_mapping": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemMapModel"
            }
          },
          "duplicate_item_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemMapModel"
            }
          },
          "duplicate_swipe_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemMapModel"
            }
          },
          "not_found_swipe_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemMapModel"
            }
          },
          "message": {
            "type": "string",
            "example": "Item ID already mapped !"
          }
        },
        "type": "object"
      },
      "ListItemMapModel": {
        "required": [
          "item_mapping"
        ],
        "properties": {
          "item_mapping": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemMapModel"
            }
          }
        },
        "type": "object"
      },
      "ListItemsResponseV1": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemListV1"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total Records available",
            "example": 10
          }
        },
        "type": "object"
      },
      "ListSubscriptionData": {
        "properties": {
          "transactions": {
            "type": "array",
            "description": "List of subscriptions",
            "items": {
              "$ref": "#/components/schemas/SubscriptionDetails"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total number of records",
            "example": 10
          }
        },
        "type": "object"
      },
      "ListSubscriptionDataV2": {
        "properties": {
          "transactions": {
            "type": "array",
            "description": "List of subscriptions",
            "items": {
              "$ref": "#/components/schemas/SubscriptionDetailsV2"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total number of records",
            "example": 10
          }
        },
        "type": "object"
      },
      "ListSubscriptions": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Details Fetched"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/ListSubscriptionData"
          }
        },
        "type": "object"
      },
      "ListSubscriptionsV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Details Fetched"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/ListSubscriptionDataV2"
          }
        },
        "type": "object"
      },
      "ListTransactionData": {
        "properties": {
          "transactions": {
            "type": "array",
            "description": "List of transactions",
            "items": {
              "$ref": "#/components/schemas/TransactionListModelV2"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total number of records",
            "example": 10
          }
        },
        "type": "object"
      },
      "ListTransactions": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Subscription List fetched successfully"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/PaymentList"
          }
        },
        "type": "object"
      },
      "ListTransactionsV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Details Fetched"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "$ref": "#/components/schemas/ListTransactionData"
          }
        },
        "type": "object"
      },
      "ListVendorMapModel": {
        "required": [
          "vendor_mapping"
        ],
        "properties": {
          "vendor_mapping": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorMapModel"
            }
          }
        },
        "type": "object"
      },
      "Party": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each party.",
            "example": "CUST123"
          },
          "type": {
            "type": "string",
            "description": "Party type, use only specified values.\n                           Party type customer can be used for creating invoices, sales returns, estimates, pro forma invoices and delivery challans.\n                           Party type vendor can be used for creating purchases, purchase orders & purchase returns, .\n                           ",
            "example": "customer",
            "enum": [
              "customer",
              "vendor"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the Party",
            "example": "John Doe"
          },
          "country_code": {
            "type": "string",
            "description": "Party Phone Number Country code",
            "example": "91"
          },
          "phone_number": {
            "type": "string",
            "description": "Party Phone Number",
            "example": "1234567890"
          },
          "company_name": {
            "type": "string",
            "description": "Company Name",
            "example": "Company Name"
          },
          "email": {
            "type": "string",
            "description": "Party Email",
            "example": "johndoe@example.com"
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN",
            "example": "27AARCS7202C1ZD"
          },
          "shipping_address": {
            "description": "Party shipping to Address, refer Shipping Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddressV2"
              }
            ]
          },
          "billing_address": {
            "description": "Party billing to Address, refer Shipping Address Object for parameters",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShippingAddressV2"
              }
            ]
          }
        },
        "type": "object"
      },
      "PartyV1": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique id for each party.",
            "example": "CUST123"
          },
          "type": {
            "type": "string",
            "description": "Party type, use only specified values",
            "example": "customer",
            "enum": [
              "customer",
              "vendor"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the Party",
            "example": "John Doe"
          },
          "country_code": {
            "type": "string",
            "description": "Party Phone Number Country code",
            "example": "91"
          },
          "phone_number": {
            "type": "string",
            "description": "Party Phone Number",
            "example": "1234567890"
          },
          "company_name": {
            "type": "string",
            "description": "Company Name",
            "example": "Company Name"
          },
          "email": {
            "type": "string",
            "description": "Party Email",
            "example": "johndoe@example.com"
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN",
            "example": "27AARCS7202C1ZD"
          }
        },
        "type": "object"
      },
      "Payment": {
        "required": [
          "amount",
          "method"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "description": "Payment Amount",
            "example": 100.0
          },
          "method": {
            "type": "string",
            "description": "Payment method, use only specified values",
            "example": "upi",
            "enum": [
              "cash",
              "card",
              "upi",
              "netBanking",
              "cheque",
              "emi"
            ]
          },
          "notes": {
            "type": "string",
            "description": "Any internal notes for payment",
            "example": "Payment notes"
          }
        },
        "type": "object"
      },
      "PaymentError": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": false
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Error Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": "HASH_ID_MISSING"
          },
          "errors": {
            "type": "object",
            "description": "Validation errors",
            "example": {
              "customer_id": "Invalid ID."
            }
          }
        },
        "type": "object"
      },
      "PaymentList": {
        "properties": {
          "transactions": {
            "type": "array",
            "description": "List of transactions",
            "items": {
              "$ref": "#/components/schemas/PaymentTransactionModel"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total number of records",
            "example": 10
          }
        },
        "type": "object"
      },
      "PaymentListErrorResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": false
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "example": ""
          },
          "message": {
            "type": "string",
            "description": "Error message",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "PaymentResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Payment Recorded successfully"
          }
        },
        "type": "object"
      },
      "PaymentResponseData": {
        "properties": {
          "serial_number": {
            "type": "string",
            "description": "Serial Number",
            "example": "INV-123"
          }
        },
        "type": "object"
      },
      "PaymentResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/PaymentResponseData"
          }
        },
        "type": "object"
      },
      "PaymentTransactionModel": {
        "properties": {
          "total_amount": {
            "type": "number",
            "description": "Amount of Payment",
            "example": 1000
          },
          "amount_remaining": {
            "type": "string",
            "description": "Remaining amount after the settlement",
            "example": "900"
          },
          "bank_details": {
            "description": "Bank Details of payment for as document",
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDetails"
              }
            ]
          },
          "customer": {
            "description": "Customer Details for the document",
            "allOf": [
              {
                "$ref": "#/components/schemas/Customer"
              }
            ]
          },
          "payment_date": {
            "type": "string",
            "description": "Payment date [DD-MM-YYYY]",
            "example": "11-06-2024"
          },
          "exclusive_notes": {
            "type": "string",
            "description": "Internal notes for the payment"
          },
          "linked_docs": {
            "type": "array",
            "description": "List of documents linked to this payment",
            "items": {
              "$ref": "#/components/schemas/LinkedDocs"
            }
          },
          "notes": {
            "type": "string",
            "description": "Notes for the document"
          },
          "payment_mode": {
            "type": "string",
            "description": "Payment mode of the recorded payment",
            "example": "Cash"
          },
          "payment_type": {
            "type": "string",
            "description": "Payment flow of the recorded payment",
            "example": "in"
          },
          "status": {
            "type": "string",
            "description": "Active status of the payment",
            "example": "success"
          },
          "created_by": {
            "type": "string",
            "description": "Document created by",
            "example": "Manoj"
          }
        },
        "type": "object"
      },
      "PaymentV2": {
        "required": [
          "amount",
          "method"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "description": "Payment Amount",
            "example": 100.0
          },
          "method": {
            "type": "string",
            "description": "Payment method, use only specified values",
            "example": "upi",
            "enum": [
              "cash",
              "card",
              "upi",
              "netBanking",
              "cheque",
              "emi"
            ]
          },
          "notes": {
            "type": "string",
            "description": "Any internal notes for payment",
            "example": "Payment notes"
          },
          "bank_details": {
            "description": "Bank Details, refer Bank Details Object below for parameters, If account_number, ifsc matched with existing bank details, it will be used, else new bank details will be added to your swipe account. It will link document payments to your company bank details.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDetails"
              }
            ]
          }
        },
        "type": "object"
      },
      "Payment_GET_Response": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "ledger": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LedgerRecordV1"
            }
          },
          "closing_balance": {
            "type": "number",
            "description": "Closing Balance",
            "example": 100
          },
          "is_paid": {
            "type": "boolean",
            "description": "Is Fully paid",
            "example": true
          },
          "total_records": {
            "type": "integer",
            "description": "Total Records available",
            "example": 10
          }
        },
        "type": "object"
      },
      "ProductCustomFieldsV2": {
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductError": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": false
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": "INVALID_PRODUCT_ID"
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Error Message"
          },
          "errors": {
            "type": "object",
            "description": "Validation errors",
            "example": "List of errors"
          }
        },
        "type": "object"
      },
      "ProductGET_Response": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "item": {
            "$ref": "#/components/schemas/ItemV1"
          }
        },
        "type": "object"
      },
      "ProductListV2": {
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemList"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total Records available",
            "example": 10
          }
        },
        "type": "object"
      },
      "ProductMappingResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "ProductPreferencesV2": {
        "properties": {
          "not_for_sale": {
            "type": "boolean",
            "description": "Hides the item for sale and shows only while making a purchase. eg. Office equipment",
            "example": false
          },
          "low_stock_alert": {
            "type": "integer",
            "description": "Low stock alert for the item",
            "example": 0
          },
          "show_online": {
            "type": "boolean",
            "description": "Show or hide the product in catalogue/ online store",
            "example": false
          },
          "discount_percent": {
            "type": "number",
            "description": "Default Discount Percent",
            "default": 0,
            "example": 10.0
          }
        },
        "type": "object"
      },
      "ProductResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Product added successfully"
          }
        },
        "type": "object"
      },
      "ProductResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/EmptyData"
          }
        },
        "type": "object"
      },
      "RecordPayment": {
        "required": [
          "amount",
          "customer",
          "payment_date",
          "payment_mode"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "description": "Amount to be paid",
            "example": 27
          },
          "payment_date": {
            "type": "string",
            "description": "Payment date [DD-MM-YYYY]",
            "example": "13-06-2024"
          },
          "bank_details": {
            "$ref": "#/components/schemas/BankDetails"
          },
          "payment_mode": {
            "type": "string",
            "description": "Payment mode",
            "example": "UPI",
            "enum": [
              "Cash",
              "Cheque",
              "UPI",
              "Card",
              "Net Banking",
              "paylater",
              "cardless_emi",
              "EMI",
              "TDS",
              "Credits",
              "Opening Balance"
            ]
          },
          "notes": {
            "type": "string",
            "description": "Notes, will be shared with the customer",
            "example": ""
          },
          "send_sms": {
            "type": "boolean",
            "description": "Send SMS, customer will be notified through SMS",
            "example": true
          },
          "send_email": {
            "type": "boolean",
            "description": "Send Email, customer will be notified through Email",
            "example": true
          },
          "exclusive_notes": {
            "type": "string",
            "description": "Exclusive Notes for internal purpose",
            "example": ""
          },
          "customer": {
            "type": "string",
            "description": "Customer ID",
            "example": "CUST123"
          },
          "documents": {
            "type": "array",
            "description": "Documents to be settled, if any",
            "example": [
              {
                "amount_paying": 27,
                "hash_id": "SLascded"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/DocumentsList"
            }
          }
        },
        "type": "object"
      },
      "SerialNumber": {
        "properties": {
          "prefix": {
            "type": "string",
            "example": "INV-, INV/2024, INV-2024/25, INV/2024-25"
          },
          "doc_number": {
            "type": "integer",
            "example": 1
          },
          "suffix": {
            "type": "string",
            "example": "-suffix, /-suffix,-/suffix, /suffix"
          }
        },
        "type": "object"
      },
      "ShippingAddress": {
        "required": [
          "address_line1",
          "address_line2",
          "city",
          "country",
          "pincode",
          "state"
        ],
        "properties": {
          "address_line1": {
            "type": "string",
            "description": "Address Line 1",
            "example": "123 Street"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2",
            "example": "Apt 4B"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": "City Name"
          },
          "state": {
            "type": "string",
            "description": "State. You can copy the state details from https://developers.getswipe.in/api-reference/references#state-details",
            "example": "State Name",
            "enum": [
              "JAMMU AND KASHMIR",
              "HIMACHAL PRADESH",
              "PUNJAB",
              "CHANDIGARH",
              "UTTARAKHAND",
              "HARYANA",
              "DELHI",
              "RAJASTHAN",
              "UTTAR PRADESH",
              "BIHAR",
              "SIKKIM",
              "ARUNACHAL PRADESH",
              "NAGALAND",
              "MANIPUR",
              "MIZORAM",
              "TRIPURA",
              "MEGHALAYA",
              "ASSAM",
              "WEST BENGAL",
              "JHARKHAND",
              "ODISHA",
              "CHHATTISGARH",
              "MADHYA PRADESH",
              "GUJARAT",
              "DADRA & NAGAR HAVELI & DAMAN & DIU",
              "MAHARASHTRA",
              "ANDHRAPRADESH(BEFOREADDED)",
              "KARNATAKA",
              "GOA",
              "LAKSHWADEEP",
              "KERALA",
              "TAMIL NADU",
              "PUDUCHERRY",
              "ANDAMAN & NICOBAR",
              "TELANGANA",
              "ANDHRA PRADESH",
              "LADAKH(NEWLYADDED)",
              "LADAKH(NEWLY ADDED)",
              "OTHER TERRITORY"
            ]
          },
          "country": {
            "type": "string",
            "description": "Country. You can copy the country details from https://developers.getswipe.in/api-reference/references#country-array",
            "example": "Country Name"
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "123456"
          }
        },
        "type": "object"
      },
      "ShippingAddressV2": {
        "required": [
          "address_line1",
          "address_line2",
          "city",
          "country",
          "pincode",
          "state"
        ],
        "properties": {
          "addr_id": {
            "type": "integer",
            "description": "Address ID. Value should be between 0 and 999999.",
            "example": -1
          },
          "addr_id_v2": {
            "type": "string",
            "description": "Address ID. Value should be not be empty,  It should be alphanumeric with length upto 16 characters.",
            "example": "addr1"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1",
            "example": "123 Street"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2",
            "example": "Apt 4B"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": "City Name"
          },
          "state": {
            "type": "string",
            "description": "State.\n                               Select OTHER TERRITORY for countries other than India.\n                               You can copy the state details from https://developers.getswipe.in/api-reference/references#state-details\n                               ",
            "example": "State Name",
            "enum": [
              "JAMMU AND KASHMIR",
              "HIMACHAL PRADESH",
              "PUNJAB",
              "CHANDIGARH",
              "UTTARAKHAND",
              "HARYANA",
              "DELHI",
              "RAJASTHAN",
              "UTTAR PRADESH",
              "BIHAR",
              "SIKKIM",
              "ARUNACHAL PRADESH",
              "NAGALAND",
              "MANIPUR",
              "MIZORAM",
              "TRIPURA",
              "MEGHALAYA",
              "ASSAM",
              "WEST BENGAL",
              "JHARKHAND",
              "ODISHA",
              "CHHATTISGARH",
              "MADHYA PRADESH",
              "GUJARAT",
              "DADRA & NAGAR HAVELI & DAMAN & DIU",
              "MAHARASHTRA",
              "ANDHRAPRADESH(BEFOREADDED)",
              "KARNATAKA",
              "GOA",
              "LAKSHWADEEP",
              "KERALA",
              "TAMIL NADU",
              "PUDUCHERRY",
              "ANDAMAN & NICOBAR",
              "TELANGANA",
              "ANDHRA PRADESH",
              "LADAKH(NEWLYADDED)",
              "LADAKH(NEWLY ADDED)",
              "OTHER TERRITORY"
            ]
          },
          "country": {
            "type": "string",
            "description": "Country. You can copy the country details from https://developers.getswipe.in/api-reference/references#country-array",
            "example": "Country Name",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo, Democratic Republic of the",
              "Congo, Republic of the",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Republic of Korea (South Korea)",
              "Kosovo",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ]
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "123456"
          }
        },
        "type": "object"
      },
      "Subscription": {
        "properties": {
          "start_time": {
            "type": "string",
            "format": "date",
            "description": "Start Time [DD-MM-YYYY]",
            "example": "14-02-2024"
          },
          "end_time": {
            "type": "string",
            "format": "date",
            "description": "End Time [DD-MM-YYYY]",
            "example": "14-02-2025"
          },
          "repeat": {
            "type": "integer",
            "description": "Repeat in value, Frequency of the repetition ",
            "example": 1
          },
          "repeat_type": {
            "type": "string",
            "description": "Repeat type, Entity of the repetition",
            "example": "days",
            "enum": [
              "days",
              "weeks",
              "months",
              "years"
            ]
          },
          "send_email": {
            "type": "boolean"
          },
          "send_sms": {
            "type": "boolean"
          },
          "send_wtsp": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "SubscriptionData": {
        "properties": {
          "invoices": {
            "type": "array",
            "description": "List of invoices",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total number of records",
            "example": 10
          }
        },
        "type": "object"
      },
      "SubscriptionDataV2": {
        "properties": {
          "invoices": {
            "type": "array",
            "description": "List of invoices",
            "items": {
              "$ref": "#/components/schemas/InvoiceV2"
            }
          },
          "upcoming_date": {
            "type": "string",
            "description": "Upcoming Date",
            "example": "10 June 2024"
          },
          "repeat_every": {
            "type": "integer",
            "description": "Repeat Every",
            "example": 1
          },
          "repeat_unit": {
            "type": "string",
            "description": "Repeat Unit",
            "example": "months"
          },
          "last_created": {
            "type": "string",
            "description": "Last Created Date",
            "example": "10 June 2024"
          },
          "total_records": {
            "type": "integer",
            "description": "Total number of records",
            "example": 10
          }
        },
        "type": "object"
      },
      "SubscriptionDetails": {
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID",
            "example": "Cust123"
          },
          "customer_name": {
            "type": "string",
            "description": "Customer Name",
            "example": "CUST123"
          },
          "subscription_date": {
            "type": "string",
            "description": "Subscription Date",
            "example": "10 June 2024"
          },
          "subscription_start_time": {
            "type": "string",
            "description": "Subscription Start Time",
            "example": "10 June 2024"
          },
          "subscription_end_time": {
            "type": "string",
            "description": "Subscription End Time",
            "example": "10 Aug 2024"
          },
          "sub_serial_number": {
            "type": "string",
            "description": "Subscription Serial Number",
            "example": "SUB-123"
          },
          "repeat_every": {
            "type": "integer",
            "description": "Repeat Every",
            "example": 1
          },
          "repeat_unit": {
            "type": "string",
            "description": "Repeat Unit",
            "example": "months",
            "enum": [
              "days",
              "weeks",
              "months",
              "years"
            ]
          },
          "status": {
            "type": "string",
            "description": "Subscription Status",
            "example": "active",
            "enum": [
              "active",
              "expired",
              "cancelled"
            ]
          },
          "invoice_count": {
            "type": "integer",
            "description": "Invoices Count",
            "example": 1
          },
          "invoices": {
            "type": "array",
            "description": "List of invoices under this subscription",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "last_created_invoice": {
            "type": "string",
            "description": "Last Created Invoice Date",
            "example": "10 June 2024"
          },
          "upcoming_date": {
            "type": "string",
            "description": "Upcoming Date",
            "example": "10 June 2024"
          },
          "hash_id": {
            "type": "string",
            "description": "Hash ID",
            "example": "SUB123"
          },
          "total_amount": {
            "type": "number",
            "description": "Total Amount",
            "example": 1000.0
          }
        },
        "type": "object"
      },
      "SubscriptionDetailsV2": {
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID",
            "example": "Cust123"
          },
          "customer_name": {
            "type": "string",
            "description": "Customer Name",
            "example": "CUST123"
          },
          "subscription_date": {
            "type": "string",
            "description": "Subscription Date",
            "example": "10 June 2024"
          },
          "subscription_start_time": {
            "type": "string",
            "description": "Subscription Start Time",
            "example": "10 June 2024"
          },
          "subscription_end_time": {
            "type": "string",
            "description": "Subscription End Time",
            "example": "10 Aug 2024"
          },
          "sub_serial_number": {
            "type": "string",
            "description": "Subscription Serial Number",
            "example": "SUB-123"
          },
          "repeat_every": {
            "type": "integer",
            "description": "Repeat Every",
            "example": 1
          },
          "repeat_unit": {
            "type": "string",
            "description": "Repeat Unit",
            "example": "months",
            "enum": [
              "days",
              "weeks",
              "months",
              "years"
            ]
          },
          "status": {
            "type": "string",
            "description": "Subscription Status",
            "example": "active",
            "enum": [
              "active",
              "expired",
              "cancelled"
            ]
          },
          "invoice_count": {
            "type": "integer",
            "description": "Invoices Count",
            "example": 1
          },
          "invoices": {
            "type": "array",
            "description": "List of invoices under this subscription",
            "items": {
              "$ref": "#/components/schemas/InvoiceV2"
            }
          },
          "last_created_invoice": {
            "type": "string",
            "description": "Last Created Invoice Date",
            "example": "10 June 2024"
          },
          "upcoming_date": {
            "type": "string",
            "description": "Upcoming Date",
            "example": "10 June 2024"
          },
          "hash_id": {
            "type": "string",
            "description": "Hash ID",
            "example": "SUB123"
          },
          "total_amount": {
            "type": "number",
            "description": "Total Amount",
            "example": 1000.0
          }
        },
        "type": "object"
      },
      "SubscriptionErrorResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "default": true,
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Success Message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "SubscriptionErrorResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "default": true,
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Success Message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "SuccessResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Document created successfully"
          },
          "serialNumber": {
            "type": "string",
            "description": "Serial Number",
            "example": "SL123"
          },
          "hashId": {
            "type": "string",
            "description": "Hash ID",
            "example": "SL123"
          }
        },
        "type": "object"
      },
      "SuccessResponseEwayBill": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Eway Bill created successfully"
          }
        },
        "type": "object"
      },
      "TransactionListModelV2": {
        "properties": {
          "serial_number": {
            "type": "string",
            "description": "Invoice number assigned to document",
            "example": "INV-12"
          },
          "document_date": {
            "type": "string",
            "description": "Transaction date [DD-MM-YYYY]",
            "example": "11-06-2024"
          },
          "customer": {
            "description": "Customer Details for the document",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerV2"
              }
            ]
          },
          "due_date": {
            "type": "string",
            "description": "Transaction date [DD-MM-YYYY]",
            "example": "11-06-2024"
          },
          "amount_paid": {
            "type": "number",
            "description": "Amount Paid for the document",
            "example": 28
          },
          "amount_pending": {
            "type": "number",
            "description": "Remaining amount to be paid for the document",
            "example": 90
          },
          "reference": {
            "type": "string",
            "description": "Reference Text"
          },
          "notes": {
            "type": "string",
            "description": "Notes for the document"
          },
          "terms": {
            "type": "string",
            "description": "Terms and Conditions"
          },
          "is_created_by_recurring": {
            "type": "integer",
            "description": "Is the invoice created from subscriptions",
            "default": 0,
            "example": 0
          },
          "net_amount": {
            "type": "number",
            "description": "Net amount of the transaction",
            "example": 100
          },
          "hash_id": {
            "type": "string",
            "description": "Hash id for the document"
          },
          "payment_status": {
            "type": "string",
            "description": "Payment status of the document",
            "example": "paid",
            "enum": [
              "paid",
              "pending",
              "cancelled"
            ]
          },
          "payments": {
            "type": "array",
            "description": "List of payments recorded for this document",
            "items": {
              "$ref": "#/components/schemas/GetPaymentV2"
            }
          },
          "tax_amount": {
            "type": "number",
            "description": "Tax amount of the transaction",
            "example": 18
          },
          "total_amount": {
            "type": "number",
            "description": "Total amount of the transaction",
            "example": 118
          },
          "total_discount": {
            "type": "number",
            "description": "Discount given on this document",
            "example": 100
          }
        },
        "type": "object"
      },
      "TransactionModelV2": {
        "properties": {
          "serial_number": {
            "type": "string",
            "description": "Invoice number assigned to document",
            "example": "INV-12"
          },
          "document_type": {
            "type": "string",
            "description": "Document type",
            "example": "invoice"
          },
          "document_date": {
            "type": "string",
            "description": "Transaction date [DD-MM-YYYY]",
            "example": "11-06-2024"
          },
          "party": {
            "description": "Party Details for the document",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "due_date": {
            "type": "string",
            "description": "Transaction date [DD-MM-YYYY]",
            "example": "11-06-2024"
          },
          "amount_paid": {
            "type": "number",
            "description": "Amount Paid for the document",
            "example": 28
          },
          "amount_pending": {
            "type": "number",
            "description": "Remaining amount to be paid for the document",
            "example": 90
          },
          "reference": {
            "type": "string",
            "description": "Reference Text"
          },
          "notes": {
            "type": "string",
            "description": "Notes for the document"
          },
          "terms": {
            "type": "string",
            "description": "Terms and Conditions"
          },
          "items": {
            "type": "array",
            "description": "List of items in the document",
            "items": {
              "$ref": "#/components/schemas/DocItemV2"
            }
          },
          "is_created_by_recurring": {
            "type": "integer",
            "description": "Is the invoice created from subscriptions",
            "default": 0,
            "example": 0
          },
          "net_amount": {
            "type": "number",
            "description": "Net amount of the transaction",
            "example": 100
          },
          "hash_id": {
            "type": "string",
            "description": "Hash id for the document"
          },
          "payment_status": {
            "type": "string",
            "description": "Payment status of the document",
            "example": "paid",
            "enum": [
              "paid",
              "pending",
              "cancelled"
            ]
          },
          "payments": {
            "type": "array",
            "description": "List of payments recorded for this document",
            "items": {
              "$ref": "#/components/schemas/PaymentV2"
            }
          },
          "tax_amount": {
            "type": "number",
            "description": "Tax amount of the transaction",
            "example": 18
          },
          "total_amount": {
            "type": "number",
            "description": "Total amount of the transaction",
            "example": 118
          },
          "total_discount": {
            "type": "number",
            "description": "Discount given on this document",
            "example": 100
          },
          "document_custom_headers": {
            "type": "array",
            "description": "List of custom headers added for this document",
            "items": {
              "$ref": "#/components/schemas/CustomHeaders"
            }
          },
          "record_time": {
            "type": "string",
            "description": "Epoch Timestamp when the document was created",
            "example": "1764141027"
          }
        },
        "type": "object"
      },
      "VendorAddressV2": {
        "properties": {
          "addr_id": {
            "type": "integer",
            "description": "Address ID.  It will automatically update the existing address if the address ID already exists.",
            "example": -1
          },
          "addr_id_v2": {
            "type": "string",
            "description": "Address ID. It should be alphanumeric with length upto 16 characters.",
            "example": "addr1"
          },
          "address_line1": {
            "type": "string",
            "description": "Address line 1",
            "example": ""
          },
          "address_line2": {
            "type": "string",
            "description": "Address line 2",
            "example": ""
          },
          "pincode": {
            "type": "string",
            "description": "Pincode",
            "example": "500075"
          },
          "city": {
            "type": "string",
            "description": "City",
            "example": ""
          },
          "state": {
            "type": "string",
            "description": "State. You can copy the state details from https://developers.getswipe.in/api-reference/references#state-details",
            "example": "State Name",
            "enum": [
              "JAMMU AND KASHMIR",
              "HIMACHAL PRADESH",
              "PUNJAB",
              "CHANDIGARH",
              "UTTARAKHAND",
              "HARYANA",
              "DELHI",
              "RAJASTHAN",
              "UTTAR PRADESH",
              "BIHAR",
              "SIKKIM",
              "ARUNACHAL PRADESH",
              "NAGALAND",
              "MANIPUR",
              "MIZORAM",
              "TRIPURA",
              "MEGHALAYA",
              "ASSAM",
              "WEST BENGAL",
              "JHARKHAND",
              "ODISHA",
              "CHHATTISGARH",
              "MADHYA PRADESH",
              "GUJARAT",
              "DADRA & NAGAR HAVELI & DAMAN & DIU",
              "MAHARASHTRA",
              "ANDHRAPRADESH(BEFOREADDED)",
              "KARNATAKA",
              "GOA",
              "LAKSHWADEEP",
              "KERALA",
              "TAMIL NADU",
              "PUDUCHERRY",
              "ANDAMAN & NICOBAR",
              "TELANGANA",
              "ANDHRA PRADESH",
              "LADAKH(NEWLYADDED)",
              "LADAKH(NEWLY ADDED)",
              "OTHER TERRITORY"
            ]
          },
          "country": {
            "type": "string",
            "description": "Country. You can copy the country details from https://developers.getswipe.in/api-reference/references#country-array",
            "example": "India",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "Andorra",
              "Angola",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bhutan",
              "Bolivia",
              "Bosnia and Herzegovina",
              "Botswana",
              "Brazil",
              "Brunei",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Colombia",
              "Comoros",
              "Congo, Democratic Republic of the",
              "Congo, Republic of the",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Fiji",
              "Finland",
              "France",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Greece",
              "Grenada",
              "Guatemala",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Honduras",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran",
              "Iraq",
              "Ireland",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Republic of Korea (South Korea)",
              "Kosovo",
              "Kuwait",
              "Kyrgyzstan",
              "Laos",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Mauritania",
              "Mauritius",
              "Mexico",
              "Micronesia",
              "Moldova",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "North Macedonia",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Romania",
              "Russia",
              "Rwanda",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Sweden",
              "Switzerland",
              "Syria",
              "Taiwan",
              "Tajikistan",
              "Tanzania",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkey",
              "Turkmenistan",
              "Tuvalu",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Vatican City",
              "Venezuela",
              "Vietnam",
              "Yemen",
              "Zambia",
              "Zimbabwe"
            ]
          }
        },
        "type": "object"
      },
      "VendorCustomFields": {
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "VendorDetailsResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseVendorV2"
            }
          }
        },
        "type": "object"
      },
      "VendorList": {
        "properties": {
          "vendors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorListRecord"
            }
          },
          "total_records": {
            "type": "integer",
            "description": "Total Records available",
            "example": 10
          }
        },
        "type": "object"
      },
      "VendorListRecord": {
        "properties": {
          "vendor_id": {
            "type": "string",
            "description": "vendor ID",
            "example": "CUST-2"
          },
          "name": {
            "type": "string",
            "description": "Name of the vendor",
            "example": "vendor"
          },
          "phone": {
            "type": "string",
            "description": "Phone Number of the vendor",
            "example": "1234567890"
          },
          "email": {
            "type": "string",
            "description": "Email of the vendor",
            "example": "john@doe.com"
          },
          "gstin": {
            "type": "string",
            "description": "GSTIN of the vendor",
            "example": ""
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID assigned to the vendor",
            "example": 1
          }
        },
        "type": "object"
      },
      "VendorMapModel": {
        "required": [
          "swipe_id",
          "vendor_id"
        ],
        "properties": {
          "vendor_id": {
            "type": "string",
            "description": "Vendor ID"
          },
          "swipe_id": {
            "type": "string",
            "description": "Swipe ID",
            "example": 1
          },
          "force_update": {
            "type": "boolean",
            "description": "Updates even if the vendor id is already mapped with other swipe id, no vendor details will be updated",
            "example": true
          }
        },
        "type": "object"
      },
      "VendorMappingResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": "Message"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "type": "object",
            "description": "Data"
          }
        },
        "type": "object"
      },
      "VendorResponseV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success flag",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Response message",
            "example": ""
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          },
          "data": {
            "$ref": "#/components/schemas/EmptyData"
          }
        },
        "type": "object"
      },
      "WarehousesGetV2": {
        "properties": {
          "warehouse_id": {
            "type": "integer",
            "description": "Warehouse ID",
            "example": 1
          },
          "name": {
            "type": "string",
            "description": "Warehouse Name",
            "example": "Main Warehouse"
          }
        },
        "type": "object"
      },
      "WarehousesV2": {
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success",
            "example": false
          },
          "errors": {
            "type": "object",
            "description": "Error details"
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "example": ""
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": ""
          },
          "warehouses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WarehousesGetV2"
            }
          }
        },
        "type": "object"
      }
    }
  }
}
